Class hierarchy
The trigrid class represents the base class of
icosahedral grids, which in turn inherit from the
icosahedron class. The trigrid class normally
represents triangular grids (which its constructor creates), but
hexagonal grids are also derived from the trigrid
class.
Grid memberrs
Even though the constructors of both the trigrid and
hexagrid classes are currently (v0.12) implemented as a
mixture of RCpp and pure are code, and are represented by pure R S4
objects.
trigrid members
The constructed objects include a diverse set of member data that describe the grid as a 3D object and provide additional functionality.
Construction parameters
-
center: Numeric vector of three values, the xyz coordinates of the grid’s origin/center. Defaults to the origin of the Cartesian coordinate system: (0,0,0). -
r: Numeric value, the radius of the grid. Defaults to the R2 (authalic) radius of Earth, 6371.006. The value is given in kilometers. -
tessellation: Integer vector, the tessellation vector. Defaults to 1, which returns the icosahedron (icosisphere) as atrigrid. object. -
orientation: Numeric vector of three angles, the orientation in XYZ 3d space. Values in radian relative to the (0,0,0) direction. Three dimensional rotations are executed in the X->Y->Z order. Can be changed with therotatefunction.
3D object descriptors
-
vertices: Numeric matrix of the vertex XYZ coordinates. Itsrownamesattribute include vertex names (P<X>). -
faces: Character matrix of the vertices forming the faces. Itsrownamesattribute include face names (F<X>). Since normaltrigridclasses only have triangular faces, this object as three columns. -
edges: Character matrix of the vertices forming the edges. Itsrownamesattribute include edge names (F<X>). The object has two columns. -
faceCenters: Numeric matrix of the XYZ coordinates of the centers of the faces on the surface of the sphere. Itsrownamesattribute include face names (F<X>). -
belts: Integer vector indicating the belt the face belongs to, starting from1. The order of values matches the order of faces in@faces).
Additional attributes
-
edgeLengthNumeric vector, the mean length of an average edge in km and degrees. -
divInteger vector, contains the number of faces in a tessellation round (divison).c(20, @tessellation^2) -
lengthinteger vector of length=3. The number of vertices, edges and faces in this order. -
crsa CRS class object, by design this is the authalic sphere (ESRI:37008) skeleton data tables with sequential indexing for the C functions.
Functional entities
-
graphanigraph-class object, the horizontal graph representation of the grid. The grid faces are represented as graph nodes, connection patterns are edge-neighboring faces (rook neighborhood on a rectangular grid). If missing or needs to be updated, it can be recalculated withnewgraph. -
sf: Ansfprojection of the grid. If missing, it can be created withnewsf. -
sp: TheSpatialPolygonsprojection of the grid. If missing, it can be created withnewsp.
Grid skeleton
The skeleton component is a list that
includes basic three-dimensional descriptor data in a way that they are
used by many of the grid’s internal processes, such construction,
projection, plotting and coordinate lookup. The grid
skeleton is scheduled for factoring into the pure
C++ representation of the grid.
Components are ordered in a way that is logically derived from the
construction of the grid, representing an inner ordering
scheme in constrast to the outer/ui
(interface-level) ordering that users normally interact with.
-
$v: Vertices ininnerorder. Ordering by tessellation level (original icosahedron first), then those derived by subsequent levels of tessellation. Within rounds of tessellation, the vertices are grouped by faces. Includes the complete vertex structure of the grid, even when some faces are omitted. -
$uiV: UI vertex index. Used as a numeric subscript to reorder the vertices into the outer (UI) order. Also includes the names of vertices as anamesattribute. -
$aV: Active vertex index, subscript to reorder@verticesto the inner order in@skeleton$v. Indicates whether a vertex is present in the grid after subsetting.0values indicate that vertices are deactivated. -
$e: Edges made up by theinnervertex table. A two-column matrix, 0-indexed references to@skeleton@v. -
$aE: Active edge index. A logical vector indicating whether the edge is active in the grid instance. -
$f: Inner face representation, a numeric matrix, every row indicating a triangular face. Includes faces of the original icosahedron, as well as all subsequent tessellation rounds. Similar to@skeleton@v, this table is oragnized by tessellation rounds. The first 3 columns are the0-indexed references to@skeleton$v, making up the three vertices of the face. The fourth column represents the tessellation round, rows with-1include baseline icosahedron’s faces,0values indicate faces derived from the first tessellation round,1from the second, and so forth. The fifth column includes a reference to the parent face: its index in the same table in the previous tessellation round (0-indexed). For instance, The face that has a2in the fourth, and5in the fifth column, indicates that the face is derived in the third round of tessellation, and its parent is the sixth face that was derived in the second round of tessellation. -
$uiF: UI face index. Used to reorder the highest tessellation subset of the inner face table (@skeleton$f). Can be used as a subscript for reordering, when added with@skeleton$offset. Includes the face names as thenamesattribute. -
$aF: Active face index.
Grid construction
This is scheduled to be moved to standalone C++ implementation using the standard template library.
