GeoTessCPP  2.6.1
Software to facilitate storage and retrieval of 3D information about the Earth.
All Classes Namespaces Files Functions Variables Typedefs Friends Macros
geotess::Edge Struct Reference

Stores information about the connection between two adjacent vertices which separates two neighboring triangles. More...

#include <GeoTessGrid.h>

Public Attributes

int vj
 
int vk
 
int cornerj
 
int tLeft
 
int tRight
 
double normal [3]
 
Edgenext
 

Detailed Description

Stores information about the connection between two adjacent vertices which separates two neighboring triangles.

An Edge stores information about the connection between two adjacent vertices which separates two neighboring triangles. These Edge objects are used in two contexts: (1) every triangle in the grid has an array of three Edges, stored in variable edgeList. (2) at every level of the grid, each vertex has a circular linked list of Edges which define the Edges emanating from the vertex, in clockwise order. These Edges are stored in variable spokeLists. These two structures store references to the same set of Edge objects.

edgeList - For a triangle formed by vertices i, j and k, edge[i] is the edge opposite vertex i. Put another way, edge[i] is the edge that does not contain vertex i. edge[i]->vj and edge[i]->vk are the indices of the other two vertices of the triangle accessed, in clockwise order. edge->tLeft is the index of the triangle on the left side of the edge from vj to vk (the triangle that does not contain vertex i). edge->tRight is the index of the triangle on the right side of the edge from vj to vk (the triangle that contains vertex i). edge(i)->normal is the unit vector normal to edge from vj to vk, pointing toward vertex i (edge->vk cross edge->vj), edge->normal is NOT normalized to unit length.

Note that edgeList and spokeList contain pointers to the same instantiations of Edge objects. edgeList does not use the "Edge* next" field in the Edge objects but spokeList relies on those fields. Hence the 'next' pointers in Edge objects should not be manipulated via edgeList.

Definition at line 101 of file GeoTessGrid.h.

Member Data Documentation

◆ cornerj

int geotess::Edge::cornerj

Definition at line 113 of file GeoTessGrid.h.

◆ next

Edge* geotess::Edge::next

pointer to next edge in circular list of edges emanating from vertex vj. Used by spokeList but not by edgeList.

Definition at line 134 of file GeoTessGrid.h.

◆ normal

double geotess::Edge::normal[3]

vertex k cross vertex j, not normalized to unit length

Definition at line 128 of file GeoTessGrid.h.

◆ tLeft

int geotess::Edge::tLeft

lndex of triangle to the left of edge from vj to vk

Definition at line 118 of file GeoTessGrid.h.

◆ tRight

int geotess::Edge::tRight

index of triangle to the right of edge from vj to vk

Definition at line 123 of file GeoTessGrid.h.

◆ vj

int geotess::Edge::vj

vertex index j

Definition at line 106 of file GeoTessGrid.h.

◆ vk

int geotess::Edge::vk

vertex index k

Definition at line 111 of file GeoTessGrid.h.


The documentation for this struct was generated from the following file: