{
  "_id": "6a0f684dacfb0bcc41c5da79",
  "Package": "retistruct",
  "License": "CC BY-NC-SA 4.0",
  "Title": "Retinal Reconstruction Program",
  "Authors@R": "c(person(c(\"David\", \"C.\"), \"Sterratt\", role=c(\"aut\", \"cre\", \"cph\"),\nemail=\"david.c.sterratt@ed.ac.uk\"), person(\"Daniel\", \"Lyngholm\",\nrole=c(\"aut\", \"cph\")), person(\"Jan\", \"Okul\", role=c(\"aut\", \"cph\")))",
  "Description": "Reconstructs retinae by morphing a flat surface with cuts\n(a dissected flat-mount retina) onto a curvilinear surface (the\nstandard retinal shape). It can estimate the position of a\npoint on the intact adult retina to within 8 degrees of arc\n(3.6% of nasotemporal axis). The coordinates in reconstructed\nretinae can be transformed to visuotopic coordinates. For more\ndetails see Sterratt, D. C., Lyngholm, D., Willshaw, D. J. and\nThompson, I. D. (2013) <doi:10.1371/journal.pcbi.1002921>.",
  "Version": "0.8.2",
  "URL": "http://davidcsterratt.github.io/retistruct/",
  "BugReports": "https://github.com/davidcsterratt/retistruct/issues",
  "Date": "2025-06-07",
  "Language": "en-GB",
  "RoxygenNote": "7.3.2",
  "Encoding": "UTF-8",
  "Config/pak/sysreqs": "cmake libfreetype6-dev libglu1-mesa-dev make\ntexlive libjpeg-dev libpng-dev libtiff-dev libuv1-dev\nlibgl1-mesa-dev zlib1g-dev",
  "Repository": "https://davidcsterratt.r-universe.dev",
  "Date/Publication": "2025-06-08 21:52:34 UTC",
  "RemoteUrl": "https://github.com/davidcsterratt/retistruct",
  "RemoteRef": "HEAD",
  "RemoteSha": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
  "RemoteSubdir": "pkg/retistruct",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-05-21 09:23:45 UTC",
    "User": "root"
  },
  "Author": "David C. Sterratt [aut, cre, cph],\nDaniel Lyngholm [aut, cph],\nJan Okul [aut, cph]",
  "Maintainer": "David C. Sterratt <david.c.sterratt@ed.ac.uk>",
  "MD5sum": "e8b8769e193c924864da9b6e13eb2824",
  "_user": "davidcsterratt",
  "_type": "src",
  "_file": "retistruct_0.8.2.tar.gz",
  "_fileid": "ecbb545e88f00cdc697199cebc08ce1eeb47b424ed37d3fcc6e96b46da2c9176",
  "_filesize": 1485921,
  "_sha256": "ecbb545e88f00cdc697199cebc08ce1eeb47b424ed37d3fcc6e96b46da2c9176",
  "_created": "2026-05-21T09:23:45.000Z",
  "_published": "2026-05-21T20:17:17.663Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77260268065,
      "time": 226,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "7132117969"
    },
    {
      "job": 77260267893,
      "time": 246,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7132125497"
    },
    {
      "job": 77260268222,
      "time": 217,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7132115167"
    },
    {
      "job": 77260268298,
      "time": 239,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7132122080"
    },
    {
      "job": 77260268385,
      "time": 251,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7132114826"
    },
    {
      "job": 77260268103,
      "time": 470,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7132192528"
    },
    {
      "job": 77260268280,
      "time": 217,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7132105475"
    },
    {
      "job": 77260268200,
      "time": 313,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7132140165"
    },
    {
      "job": 77260267658,
      "time": 234,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7132036753"
    },
    {
      "job": 77260267439,
      "time": 154,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7146226860"
    },
    {
      "job": 77260268245,
      "time": 186,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7132104748"
    },
    {
      "job": 77260268231,
      "time": 140,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7132088676"
    },
    {
      "job": 77260267874,
      "time": 145,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7132090262"
    }
  ],
  "_buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/davidcsterratt/retistruct",
  "_commit": {
    "id": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
    "author": "David C Sterratt <david.c.sterratt@ed.ac.uk>",
    "committer": "David C Sterratt <david.c.sterratt@ed.ac.uk>",
    "message": "Merge branch 'v0.8.x'\n",
    "time": 1749419554
  },
  "_maintainer": {
    "name": "David C. Sterratt",
    "email": "david.c.sterratt@ed.ac.uk",
    "login": "davidcsterratt",
    "linkedin": "in/davidcsterratt",
    "description": "Senior Lecturer, School of Informatics, University of Edinburgh",
    "uuid": 4264803
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "foreign",
      "role": "Imports"
    },
    {
      "package": "RImageJROI",
      "role": "Imports"
    },
    {
      "package": "png",
      "role": "Imports"
    },
    {
      "package": "ttutils",
      "role": "Imports"
    },
    {
      "package": "sp",
      "role": "Imports"
    },
    {
      "package": "geometry",
      "version": ">= 0.4.3",
      "role": "Imports"
    },
    {
      "package": "RTriangle",
      "version": ">= 1.6-0.15",
      "role": "Imports"
    },
    {
      "package": "rgl",
      "role": "Imports"
    },
    {
      "package": "R.matlab",
      "role": "Imports"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "tiff",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "shinyjs",
      "role": "Imports"
    },
    {
      "package": "shinyFiles",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    }
  ],
  "_owner": "davidcsterratt",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-23",
      "n": 6
    }
  ],
  "_tags": [
    {
      "name": "v0.8.1",
      "date": "2025-06-08"
    }
  ],
  "_stars": 9,
  "_contributors": [
    {
      "user": "davidcsterratt",
      "count": 601,
      "uuid": 4264803
    },
    {
      "user": "janokul",
      "count": 25,
      "uuid": 95599985
    },
    {
      "user": "briancohn",
      "count": 4,
      "uuid": 4623063
    }
  ],
  "_userbio": {
    "uuid": 4264803,
    "type": "user",
    "name": "David C Sterratt",
    "description": "Senior Lecturer, School of Informatics, University of Edinburgh"
  },
  "_downloads": {
    "count": 238,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/retistruct"
  },
  "_devurl": "https://github.com/davidcsterratt/retistruct",
  "_searchresults": 90,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/retistruct.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/davidcsterratt/retistruct",
  "_realowner": "davidcsterratt",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.5.9",
      "date": "2014-12-02"
    },
    {
      "version": "0.5.10",
      "date": "2015-02-16"
    },
    {
      "version": "0.5.11",
      "date": "2017-07-15"
    },
    {
      "version": "0.5.12",
      "date": "2017-08-09"
    },
    {
      "version": "0.6.0",
      "date": "2019-07-10"
    },
    {
      "version": "0.6.1",
      "date": "2019-12-09"
    },
    {
      "version": "0.6.2",
      "date": "2019-12-14"
    },
    {
      "version": "0.6.3",
      "date": "2020-04-04"
    },
    {
      "version": "0.8.0",
      "date": "2025-03-10"
    },
    {
      "version": "0.8.1",
      "date": "2025-06-08"
    }
  ],
  "_exports": [
    "AnnotatedOutline",
    "azel.to.sphere.colatitude",
    "azimuthal.conformal",
    "azimuthal.equalarea",
    "azimuthal.equidistant",
    "bary.to.sphere.cart",
    "central.angle",
    "checkDatadir",
    "compute.kernel.estimate",
    "CountSet",
    "create.polar.cart.grid",
    "depthplot3D",
    "FeatureSet",
    "FeatureSetCommon",
    "flatplot",
    "identity.transform",
    "idt.read.dataset",
    "invert.sphere",
    "invert.sphere.to.hemisphere",
    "karcher.mean.sphere",
    "kde.compute.concentration",
    "kde.fhat",
    "kde.fhat.cart",
    "kde.L",
    "kr.compute.concentration",
    "kr.sscv",
    "kr.yhat",
    "kr.yhat.cart",
    "LandmarkSet",
    "line.line.intersection",
    "list.datasets",
    "lvsLplot",
    "morph.dataset.to.parabola",
    "normalise.angle",
    "orthographic",
    "panlabel",
    "PathOutline",
    "PointSet",
    "polar.cart.to.sphere.spherical",
    "polartext",
    "projection",
    "ReconstructedCountSet",
    "ReconstructedFeatureSet",
    "ReconstructedLandmarkSet",
    "ReconstructedOutline",
    "ReconstructedPointSet",
    "remove.intersections",
    "report",
    "RetinalOutline",
    "RetinalReconstructedOutline",
    "retistruct",
    "retistruct.batch",
    "retistruct.batch.export.matlab",
    "retistruct.batch.figures",
    "retistruct.batch.get.titrations",
    "retistruct.batch.plot.titrations",
    "retistruct.batch.summary",
    "retistruct.check.markup",
    "retistruct.cli",
    "retistruct.cli.figure",
    "retistruct.cli.process",
    "retistruct.export.matlab",
    "retistruct.read.dataset",
    "retistruct.read.markup",
    "retistruct.read.recdata",
    "retistruct.reconstruct",
    "retistruct.save.markup",
    "retistruct.save.recdata",
    "rotate.axis",
    "sinusoidal",
    "sphere.cart.to.sphere.dualwedge",
    "sphere.cart.to.sphere.spherical",
    "sphere.cart.to.sphere.wedge",
    "sphere.spherical.to.polar.cart",
    "sphere.tri.area",
    "sphere.wedge.to.sphere.cart",
    "sphericalplot",
    "StitchedOutline",
    "tri.area",
    "tri.area.signed",
    "TriangulatedFragment",
    "TriangulatedOutline",
    "vecnorm"
  ],
  "_help": [
    {
      "page": "AnnotatedOutline",
      "title": "Class containing functions and data relating to annotating outlines",
      "topics": [
        "AnnotatedOutline"
      ]
    },
    {
      "page": "azel.to.sphere.colatitude",
      "title": "Convert azimuth-elevation coordinates to spherical coordinates",
      "topics": [
        "azel.to.sphere.colatitude"
      ]
    },
    {
      "page": "azimuthal.conformal",
      "title": "Azimuthal conformal or stereographic or Wulff projection",
      "topics": [
        "azimuthal.conformal"
      ]
    },
    {
      "page": "azimuthal.equalarea",
      "title": "Lambert azimuthal equal area projection",
      "topics": [
        "azimuthal.equalarea"
      ]
    },
    {
      "page": "azimuthal.equidistant",
      "title": "Azimuthal equidistant projection",
      "topics": [
        "azimuthal.equidistant"
      ]
    },
    {
      "page": "bary.to.sphere.cart",
      "title": "Convert barycentric coordinates of points in mesh on sphere to cartesian coordinates",
      "topics": [
        "bary.to.sphere.cart"
      ]
    },
    {
      "page": "central.angle",
      "title": "Central angle between two points on a sphere",
      "topics": [
        "central.angle"
      ]
    },
    {
      "page": "checkDatadir",
      "title": "Check the whether directory contains valid data",
      "topics": [
        "checkDatadir"
      ]
    },
    {
      "page": "circle",
      "title": "Return points on the unit circle",
      "topics": [
        "circle"
      ]
    },
    {
      "page": "compute.intersections.sphere",
      "title": "Find the intersection of a plane with edges of triangles on a sphere",
      "topics": [
        "compute.intersections.sphere"
      ]
    },
    {
      "page": "compute.kernel.estimate",
      "title": "Kernel estimate over grid",
      "topics": [
        "compute.kernel.estimate"
      ]
    },
    {
      "page": "CountSet",
      "title": "Subclass of 'FeatureSet' to represent counts centred on points",
      "topics": [
        "CountSet"
      ]
    },
    {
      "page": "create.polar.cart.grid",
      "title": "Create grid on projection of hemisphere onto plane",
      "topics": [
        "create.polar.cart.grid"
      ]
    },
    {
      "page": "csv.read.dataset",
      "title": "Read a retinal dataset in CSV format",
      "topics": [
        "csv.read.dataset"
      ]
    },
    {
      "page": "dE",
      "title": "The deformation energy gradient function",
      "topics": [
        "dE"
      ]
    },
    {
      "page": "depthplot3D",
      "title": "Draw the \"flat\" outline in 3D with depth information",
      "topics": [
        "depthplot3D"
      ]
    },
    {
      "page": "directories",
      "title": "File system directories used by shinyFiles",
      "topics": [
        "directories"
      ]
    },
    {
      "page": "E",
      "title": "The deformation energy function",
      "topics": [
        "E"
      ]
    },
    {
      "page": "Ecart",
      "title": "The deformation energy function",
      "topics": [
        "Ecart"
      ]
    },
    {
      "page": "f",
      "title": "Piecewise smooth function used in area penalty",
      "topics": [
        "f"
      ]
    },
    {
      "page": "Fcart",
      "title": "The deformation energy gradient function",
      "topics": [
        "Fcart"
      ]
    },
    {
      "page": "FeatureSet",
      "title": "Superclass containing functions and data relating to sets of features in flat 'Outline's",
      "topics": [
        "FeatureSet"
      ]
    },
    {
      "page": "FeatureSetCommon",
      "title": "Class containing functionality common to 'FeatureSet's and 'ReconstructedFeatureSet's",
      "topics": [
        "FeatureSetCommon"
      ]
    },
    {
      "page": "fire",
      "title": "The FIRE algorithm",
      "topics": [
        "fire"
      ]
    },
    {
      "page": "flatplot",
      "title": "Plot \"flat\" (unreconstructed) representation of outline",
      "topics": [
        "flatplot"
      ]
    },
    {
      "page": "flatplot.AnnotatedOutline",
      "title": "Flat plot of AnnotatedOutline",
      "topics": [
        "flatplot.AnnotatedOutline"
      ]
    },
    {
      "page": "flatplot.Outline",
      "title": "Flat plot of outline",
      "topics": [
        "flatplot.Outline"
      ]
    },
    {
      "page": "flatplot.ReconstructedOutline",
      "title": "Flat plot of reconstructed outline",
      "topics": [
        "flatplot.ReconstructedOutline"
      ]
    },
    {
      "page": "flatplot.StitchedOutline",
      "title": "Flat plot of AnnotatedOutline",
      "topics": [
        "flatplot.StitchedOutline"
      ]
    },
    {
      "page": "flatplot.TriangulatedOutline",
      "title": "Plot flat 'TriangulatedOutline'.",
      "topics": [
        "flatplot.TriangulatedOutline"
      ]
    },
    {
      "page": "flipped.triangles",
      "title": "Determine indices of triangles that are flipped",
      "topics": [
        "flipped.triangles"
      ]
    },
    {
      "page": "flipped.triangles.cart",
      "title": "Determine indices of triangles that are flipped",
      "topics": [
        "flipped.triangles.cart"
      ]
    },
    {
      "page": "fp",
      "title": "Piecewise smooth function used in area penalty",
      "topics": [
        "fp"
      ]
    },
    {
      "page": "Fragment",
      "title": "Construct an outline object. This sanitises the input points 'P', as described below.",
      "topics": [
        "Fragment"
      ]
    },
    {
      "page": "identity.transform",
      "title": "The identity transformation",
      "topics": [
        "identity.transform"
      ]
    },
    {
      "page": "idt.read.dataset",
      "title": "Read one of the Thompson lab's retinal datasets",
      "topics": [
        "idt.read.dataset"
      ]
    },
    {
      "page": "ijroi.read.dataset",
      "title": "Read a retinal dataset in IJROI format",
      "topics": [
        "ijroi.read.dataset"
      ]
    },
    {
      "page": "ijroimulti.read.dataset",
      "title": "Read a retinal dataset in IJROI format",
      "topics": [
        "ijroimulti.read.dataset"
      ]
    },
    {
      "page": "interpolate.image",
      "title": "Interpolate values in image",
      "topics": [
        "interpolate.image"
      ]
    },
    {
      "page": "invert.sphere",
      "title": "Invert sphere about its centre",
      "topics": [
        "invert.sphere"
      ]
    },
    {
      "page": "invert.sphere.to.hemisphere",
      "title": "Invert sphere to hemisphere",
      "topics": [
        "invert.sphere.to.hemisphere"
      ]
    },
    {
      "page": "karcher.mean.sphere",
      "title": "Karcher mean on the sphere",
      "topics": [
        "karcher.mean.sphere"
      ]
    },
    {
      "page": "kde.compute.concentration",
      "title": "Find the optimal concentration for a set of data",
      "topics": [
        "kde.compute.concentration"
      ]
    },
    {
      "page": "kde.fhat",
      "title": "Kernel density estimate on sphere using Fisherian density with polar coordinates",
      "topics": [
        "kde.fhat"
      ]
    },
    {
      "page": "kde.fhat.cart",
      "title": "Kernel density estimate on sphere using Fisherian density with Cartesian coordinates",
      "topics": [
        "kde.fhat.cart"
      ]
    },
    {
      "page": "kde.L",
      "title": "Estimate of the log likelihood of the points mu given a particular value of the concentration kappa",
      "topics": [
        "kde.L"
      ]
    },
    {
      "page": "kr.compute.concentration",
      "title": "Find the optimal concentration for a set of data",
      "topics": [
        "kr.compute.concentration"
      ]
    },
    {
      "page": "kr.sscv",
      "title": "Cross validation estimate of the least squares error of the points mu given a particular value of the concentration kappa",
      "topics": [
        "kr.sscv"
      ]
    },
    {
      "page": "kr.yhat",
      "title": "Kernel regression on sphere using Fisherian density with polar coordinates",
      "topics": [
        "kr.yhat"
      ]
    },
    {
      "page": "kr.yhat.cart",
      "title": "Kernel regression on sphere using Fisherian density with Cartesian coordinates",
      "topics": [
        "kr.yhat.cart"
      ]
    },
    {
      "page": "LandmarkSet",
      "title": "Subclass of 'FeatureSet' to represent points",
      "topics": [
        "LandmarkSet"
      ]
    },
    {
      "page": "line.line.intersection",
      "title": "Determine intersection between two lines",
      "topics": [
        "line.line.intersection"
      ]
    },
    {
      "page": "list_to_R6",
      "title": "Convert an list created by R6_to_list() into an R6 object.",
      "topics": [
        "list_to_R6"
      ]
    },
    {
      "page": "list.datasets",
      "title": "List datasets underneath a directory",
      "topics": [
        "list.datasets"
      ]
    },
    {
      "page": "lvsLplot",
      "title": "Plot the fractional change in length of mesh edges",
      "topics": [
        "lvsLplot"
      ]
    },
    {
      "page": "morph.dataset.to.parabola",
      "title": "Morph a flat dataset to a parabola for testing purposes",
      "topics": [
        "morph.dataset.to.parabola"
      ]
    },
    {
      "page": "name.list",
      "title": "Return a new version of the list in which any unnamed elements have been given standardised names",
      "topics": [
        "name.list"
      ]
    },
    {
      "page": "normalise.angle",
      "title": "Bring angle into range",
      "topics": [
        "normalise.angle"
      ]
    },
    {
      "page": "orthographic",
      "title": "Orthographic projection",
      "topics": [
        "orthographic"
      ]
    },
    {
      "page": "Outline",
      "title": "Class containing basic information about flat outlines",
      "topics": [
        "Outline"
      ]
    },
    {
      "page": "OutlineCommon",
      "title": "Class containing functionality common to flat and reconstructed outlines",
      "topics": [
        "OutlineCommon"
      ]
    },
    {
      "page": "panlabel",
      "title": "Ancillary function to place labels",
      "topics": [
        "panlabel"
      ]
    },
    {
      "page": "parabola.arclength",
      "title": "Arc length of a parabola y=x^2/4f",
      "topics": [
        "parabola.arclength"
      ]
    },
    {
      "page": "parabola.invarclength",
      "title": "Inverse arc length of a parabola y=x^2/4f",
      "topics": [
        "parabola.invarclength"
      ]
    },
    {
      "page": "parse.dependencies",
      "title": "Parse dependencies",
      "topics": [
        "parse.dependencies"
      ]
    },
    {
      "page": "PathOutline",
      "title": "Add point fullcuts to the outline",
      "topics": [
        "PathOutline"
      ]
    },
    {
      "page": "PointSet",
      "title": "Subclass of 'FeatureSet' to represent points",
      "topics": [
        "PointSet"
      ]
    },
    {
      "page": "polar.cart.to.sphere.spherical",
      "title": "Convert polar projection in Cartesian coordinates to spherical coordinates on sphere",
      "topics": [
        "polar.cart.to.sphere.spherical"
      ]
    },
    {
      "page": "polartext",
      "title": "Put text on the polar plot",
      "topics": [
        "polartext"
      ]
    },
    {
      "page": "projection",
      "title": "Plot projection of a reconstructed outline",
      "topics": [
        "projection"
      ]
    },
    {
      "page": "projection.ReconstructedOutline",
      "title": "Projection of a reconstructed outline",
      "topics": [
        "projection.ReconstructedOutline"
      ]
    },
    {
      "page": "projection.RetinalReconstructedOutline",
      "title": "Plot projection of reconstructed dataset",
      "topics": [
        "projection.RetinalReconstructedOutline"
      ]
    },
    {
      "page": "R6_to_list",
      "title": "Convert an R6 object into a list, ignoring functions and environments",
      "topics": [
        "R6_to_list"
      ]
    },
    {
      "page": "Rcart",
      "title": "Restore points to spherical manifold",
      "topics": [
        "Rcart"
      ]
    },
    {
      "page": "read.datacounts",
      "title": "Read data counts in CSV format",
      "topics": [
        "read.datacounts"
      ]
    },
    {
      "page": "read.datapoints",
      "title": "Read data points in CSV format",
      "topics": [
        "read.datapoints"
      ]
    },
    {
      "page": "ReconstructedCountSet",
      "title": "Class containing functions and data to map CountSets to ReconstructedOutlines",
      "topics": [
        "ReconstructedCountSet"
      ]
    },
    {
      "page": "ReconstructedFeatureSet",
      "title": "Class containing functions and data to map FeatureSets to ReconstructedOutlines",
      "topics": [
        "ReconstructedFeatureSet"
      ]
    },
    {
      "page": "ReconstructedLandmarkSet",
      "title": "Class containing functions and data to map LandmarkSets to ReconstructedOutlines",
      "topics": [
        "ReconstructedLandmarkSet"
      ]
    },
    {
      "page": "ReconstructedOutline",
      "title": "Class containing functions to reconstruct StitchedOutlines and store the associated data",
      "topics": [
        "ReconstructedOutline"
      ]
    },
    {
      "page": "ReconstructedPointSet",
      "title": "Class containing functions and data to map PointSets to ReconstructedOutlines",
      "topics": [
        "ReconstructedPointSet"
      ]
    },
    {
      "page": "remove.identical.consecutive.rows",
      "title": "Remove identical consecutive rows from a matrix",
      "topics": [
        "remove.identical.consecutive.rows"
      ]
    },
    {
      "page": "remove.intersections",
      "title": "Remove intersections between adjacent segments in a closed path",
      "topics": [
        "remove.intersections"
      ]
    },
    {
      "page": "report",
      "title": "Reporting utility function",
      "topics": [
        "report"
      ]
    },
    {
      "page": "RetinalOutline",
      "title": "Class containing functions and data relating to retinal outlines",
      "topics": [
        "RetinalOutline"
      ]
    },
    {
      "page": "RetinalReconstructedOutline",
      "title": "A version of ReconstructedOutline that is specific to retinal datasets",
      "topics": [
        "RetinalReconstructedOutline"
      ]
    },
    {
      "page": "retistruct",
      "title": "Start the Retistruct GUI",
      "topics": [
        "retistruct"
      ]
    },
    {
      "page": "retistruct.batch",
      "title": "Batch operation using the parallel package",
      "topics": [
        "retistruct.batch"
      ]
    },
    {
      "page": "retistruct.batch.export.matlab",
      "title": "Export data from reconstruction data files to MATLAB",
      "topics": [
        "retistruct.batch.export.matlab"
      ]
    },
    {
      "page": "retistruct.batch.figures",
      "title": "Plot figures for a batch of reconstructions",
      "topics": [
        "retistruct.batch.figures"
      ]
    },
    {
      "page": "retistruct.batch.get.titrations",
      "title": "Get titrations from a directory of reconstructions",
      "topics": [
        "retistruct.batch.get.titrations"
      ]
    },
    {
      "page": "retistruct.batch.plot.titrations",
      "title": "Plot titrations",
      "topics": [
        "retistruct.batch.plot.titrations"
      ]
    },
    {
      "page": "retistruct.batch.summary",
      "title": "Extract summary data for a batch of reconstructions",
      "topics": [
        "retistruct.batch.summary"
      ]
    },
    {
      "page": "retistruct.check.markup",
      "title": "Retistruct check markup",
      "topics": [
        "retistruct.check.markup"
      ]
    },
    {
      "page": "retistruct.cli",
      "title": "Process a dataset with a time limit",
      "topics": [
        "retistruct.cli"
      ]
    },
    {
      "page": "retistruct.cli.figure",
      "title": "Print a figure to file",
      "topics": [
        "retistruct.cli.figure"
      ]
    },
    {
      "page": "retistruct.cli.process",
      "title": "Process a dataset, saving results to disk",
      "topics": [
        "retistruct.cli.process"
      ]
    },
    {
      "page": "retistruct.export.matlab",
      "title": "Save reconstruction data in MATLAB format",
      "topics": [
        "retistruct.export.matlab"
      ]
    },
    {
      "page": "retistruct.read.dataset",
      "title": "Read a retinal dataset",
      "topics": [
        "retistruct.read.dataset"
      ]
    },
    {
      "page": "retistruct.read.markup",
      "title": "Read the markup data",
      "topics": [
        "retistruct.read.markup"
      ]
    },
    {
      "page": "retistruct.read.recdata",
      "title": "Read the reconstruction data from file",
      "topics": [
        "retistruct.read.recdata"
      ]
    },
    {
      "page": "retistruct.reconstruct",
      "title": "Reconstruct a retina",
      "topics": [
        "retistruct.reconstruct"
      ]
    },
    {
      "page": "retistruct.save.markup",
      "title": "Save markup",
      "topics": [
        "retistruct.save.markup"
      ]
    },
    {
      "page": "retistruct.save.recdata",
      "title": "Save reconstruction data",
      "topics": [
        "retistruct.save.recdata"
      ]
    },
    {
      "page": "rotate.axis",
      "title": "Rotate axis of sphere",
      "topics": [
        "rotate.axis"
      ]
    },
    {
      "page": "server",
      "title": "Retistruct Shiny Server",
      "topics": [
        "server"
      ]
    },
    {
      "page": "simplifyFragment",
      "title": "Simplify an outline object by removing short edges",
      "topics": [
        "simplifyFragment"
      ]
    },
    {
      "page": "simplifyOutline",
      "title": "Simplify an outline object by removing short edges",
      "topics": [
        "simplifyOutline"
      ]
    },
    {
      "page": "sinusoidal",
      "title": "Sinusoidal projection",
      "topics": [
        "sinusoidal"
      ]
    },
    {
      "page": "sphere.cart.to.sphere.dualwedge",
      "title": "Convert from Cartesian to 'dual-wedge' coordinates",
      "topics": [
        "sphere.cart.to.sphere.dualwedge"
      ]
    },
    {
      "page": "sphere.cart.to.sphere.spherical",
      "title": "Convert from Cartesian to spherical coordinates",
      "topics": [
        "sphere.cart.to.sphere.spherical"
      ]
    },
    {
      "page": "sphere.cart.to.sphere.wedge",
      "title": "Convert from Cartesian to 'wedge' coordinates",
      "topics": [
        "sphere.cart.to.sphere.wedge"
      ]
    },
    {
      "page": "sphere.spherical.to.polar.cart",
      "title": "Convert spherical coordinates on sphere to polar projection in Cartesian coordinates",
      "topics": [
        "sphere.spherical.to.polar.cart"
      ]
    },
    {
      "page": "sphere.spherical.to.sphere.cart",
      "title": "Convert from spherical to Cartesian coordinates",
      "topics": [
        "sphere.spherical.to.sphere.cart"
      ]
    },
    {
      "page": "sphere.tri.area",
      "title": "Area of triangles on a sphere",
      "topics": [
        "sphere.tri.area"
      ]
    },
    {
      "page": "sphere.wedge.to.sphere.cart",
      "title": "Convert from 'wedge' to Cartesian coordinates",
      "topics": [
        "sphere.wedge.to.sphere.cart"
      ]
    },
    {
      "page": "spherical.to.polar.area",
      "title": "Convert latitude on sphere to radial variable in area-preserving projection",
      "topics": [
        "spherical.to.polar.area"
      ]
    },
    {
      "page": "sphericalplot",
      "title": "Spherical plot of reconstructed outline",
      "topics": [
        "sphericalplot"
      ]
    },
    {
      "page": "sphericalplot.ReconstructedOutline",
      "title": "Spherical plot of reconstructed outline",
      "topics": [
        "sphericalplot.ReconstructedOutline"
      ]
    },
    {
      "page": "StitchedOutline",
      "title": "Class containing functions and data relating to Stitching outlines",
      "topics": [
        "StitchedOutline"
      ]
    },
    {
      "page": "strain.colours",
      "title": "Generate colours for strain plots",
      "topics": [
        "strain.colours"
      ]
    },
    {
      "page": "stretchMesh",
      "title": "Stretch mesh",
      "topics": [
        "stretchMesh"
      ]
    },
    {
      "page": "tri.area",
      "title": "Area of triangles on a plane",
      "topics": [
        "tri.area"
      ]
    },
    {
      "page": "tri.area.signed",
      "title": "\"Signed area\" of triangles on a plane",
      "topics": [
        "tri.area.signed"
      ]
    },
    {
      "page": "TriangulatedFragment",
      "title": "Class to triangulate Fragments",
      "topics": [
        "TriangulatedFragment"
      ]
    },
    {
      "page": "TriangulatedOutline",
      "title": "Class containing functions and data relating to Triangulation",
      "topics": [
        "TriangulatedOutline"
      ]
    },
    {
      "page": "ui",
      "title": "Retistruct UI",
      "topics": [
        "ui"
      ]
    },
    {
      "page": "vecnorm",
      "title": "Vector norm",
      "topics": [
        "vecnorm"
      ]
    }
  ],
  "_readme": "https://github.com/davidcsterratt/retistruct/raw/HEAD/pkg/retistruct/README.md",
  "_rundeps": [
    "abind",
    "base64enc",
    "bslib",
    "cachem",
    "cli",
    "commonmark",
    "deldir",
    "digest",
    "evaluate",
    "fastmap",
    "fontawesome",
    "foreign",
    "fs",
    "geometry",
    "glue",
    "highr",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "jquerylib",
    "jsonlite",
    "knitr",
    "later",
    "lattice",
    "lifecycle",
    "linprog",
    "lpSolve",
    "magic",
    "magrittr",
    "Matrix",
    "memoise",
    "mime",
    "otel",
    "pillar",
    "pkgconfig",
    "png",
    "polyclip",
    "promises",
    "R.matlab",
    "R.methodsS3",
    "R.oo",
    "R.utils",
    "R6",
    "rappdirs",
    "Rcpp",
    "RcppProgress",
    "rgl",
    "RImageJROI",
    "rlang",
    "rmarkdown",
    "RTriangle",
    "sass",
    "shiny",
    "shinyFiles",
    "shinyjs",
    "sourcetools",
    "sp",
    "spatstat.data",
    "spatstat.geom",
    "spatstat.univar",
    "spatstat.utils",
    "tibble",
    "tiff",
    "tinytex",
    "ttutils",
    "utf8",
    "vctrs",
    "withr",
    "xfun",
    "xtable",
    "yaml"
  ],
  "_score": 4.9084850188786495,
  "_indexed": true,
  "_nocasepkg": "retistruct",
  "_universes": [
    "davidcsterratt"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.8.2",
      "date": "2026-05-21T09:27:08.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "d2873b356addd35d6c5e46f7263d563f1a7ef54d69e849bb124372efa1ce344a",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.8.2",
      "date": "2026-05-21T09:27:09.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "742b266d6bd661679f161fd1222a0d0ee4a51f54e0cfb6cb720637d77f415ece",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.8.2",
      "date": "2026-05-21T09:27:00.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "9c5fe9574fc11b09c0bae70a6ad60c1c84ffcea1ad258b2fb5a18c017d2ece42",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.8.2",
      "date": "2026-05-21T09:27:05.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "d392d1b41b144ea9a367142fc37e0183f377e1b1da970918074a64fed803130b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.8.2",
      "date": "2026-05-21T09:26:44.000Z",
      "arch": "aarch64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "3e3ec818e6ce6b986730755172133652ee6c3d5a91eb166c329c849806af3468",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.8.2",
      "date": "2026-05-21T09:28:48.000Z",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "c58af8a42b0082dd0a78afb8cad3bce6ff5367929e428ca99d511197a74186e0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.8.2",
      "date": "2026-05-21T09:26:25.000Z",
      "arch": "aarch64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "41ea6729cb918cb3a26bf59b00929b4ffafc6506c71c284afd8bbcb528c8b179",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.8.2",
      "date": "2026-05-21T09:27:24.000Z",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "c4edd7b8619a899d37b62fef681ed1d77d5a74dca0f28c127811b58bc5ec111f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.8.2",
      "date": "2026-05-21T20:16:55.000Z",
      "arch": "emscripten",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "26a498f07227fbfc37d33d7325c63d0034f87143f87e4c5adf55efd4399dd695",
      "status": "success",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.8.2",
      "date": "2026-05-21T09:25:49.000Z",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "e3dd59473c6971eec33a074f764080a01ea548fbab6ad7ea303886d6c0dffb37",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.8.2",
      "date": "2026-05-21T09:25:09.000Z",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "ac835e180f27cf434772f7cc6a98e4a20b49c6a28463b11154b87be32d285de4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.8.2",
      "date": "2026-05-21T09:25:11.000Z",
      "arch": "x86_64",
      "commit": "4b028b1bc5a4dd0206483be55905b6ded746eec1",
      "fileid": "c0ac0360518b3c16eb26ac4bc7de52266d92940cff6e7ea92339cdb0945c9845",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/davidcsterratt/actions/runs/26217202845"
    }
  ]
}