.. auto-generated by script ../../../../utils/nxdl2rst.py from the NXDL source NXcg_half_edge_data_structure.nxdl.xml .. index:: ! NXcg_half_edge_data_structure (base class) ! cg_half_edge_data_structure (base class) see: cg_half_edge_data_structure (base class); NXcg_half_edge_data_structure .. _NXcg_half_edge_data_structure: ============================= NXcg_half_edge_data_structure ============================= **Status**: base class, extends :ref:`NXobject` **Description**: Computational geeometry description of a half-edge data structure. Such a data structure can be used to efficiently circulate around faces and iterate over vertices of a planar graph. **Symbols**: The symbols used in the schema to specify e.g. dimensions of arrays. **d**: The dimensionality, which has to be at least 2. **n_v**: The number of vertices. **n_f**: The number of faces. **n_he**: The number of half-edges. **Groups cited**: none **Structure**: .. _/NXcg_half_edge_data_structure/dimensionality-field: .. index:: dimensionality (field) **dimensionality**: (optional) :ref:`NX_POSINT ` {units=\ :ref:`NX_UNITLESS `} .. _/NXcg_half_edge_data_structure/number_of_vertices-field: .. index:: number_of_vertices (field) **number_of_vertices**: (optional) :ref:`NX_POSINT ` {units=\ :ref:`NX_UNITLESS `} .. _/NXcg_half_edge_data_structure/number_of_faces-field: .. index:: number_of_faces (field) **number_of_faces**: (optional) :ref:`NX_POSINT ` {units=\ :ref:`NX_UNITLESS `} .. _/NXcg_half_edge_data_structure/number_of_half_edges-field: .. index:: number_of_half_edges (field) **number_of_half_edges**: (optional) :ref:`NX_POSINT ` {units=\ :ref:`NX_UNITLESS `} .. _/NXcg_half_edge_data_structure/vertex_identifier_offset-field: .. index:: vertex_identifier_offset (field) **vertex_identifier_offset**: (optional) :ref:`NX_INT ` {units=\ :ref:`NX_UNITLESS `} In this half-edge data structure vertex identifiers start at 1. Vertices are identified with consecutive integers up to number_of_vertices. This field can be used to document which constant integer has to be added to another set of vertex_identifier to assure that these other identifiers also start at 1. .. _/NXcg_half_edge_data_structure/face_identifier_offset-field: .. index:: face_identifier_offset (field) **face_identifier_offset**: (optional) :ref:`NX_INT ` {units=\ :ref:`NX_UNITLESS `} In this half-edge data structure face identifiers start at 1. Faces are identified with consecutive integers up to number_of_faces. This field can be used to document which constant integer has to be added to another set of face_identifier to assure that these other identifiers also start at 1. The face identifier zero is reserved for the NULL face ! .. _/NXcg_half_edge_data_structure/half_edge_identifier_offset-field: .. index:: half_edge_identifier_offset (field) **half_edge_identifier_offset**: (optional) :ref:`NX_INT ` {units=\ :ref:`NX_UNITLESS `} In this half-edge data structure half-edge identifiers start at 1. Half-edges are identified with consecutive integers up to number_of_half_edges. This field can be used to document which constant integer has to be added to another set of half_edge_identifier to assure that these other identifiers also start at 1. .. _/NXcg_half_edge_data_structure/position-field: .. index:: position (field) **position**: (optional) :ref:`NX_NUMBER ` (Rank: 2, Dimensions: [n_v, d]) {units=\ :ref:`NX_LENGTH `} The position of the vertices. .. _/NXcg_half_edge_data_structure/vertex_incident_half_edge-field: .. index:: vertex_incident_half_edge (field) **vertex_incident_half_edge**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_v]) {units=\ :ref:`NX_UNITLESS `} Identifier of the incident half-edge. .. _/NXcg_half_edge_data_structure/face_half_edge-field: .. index:: face_half_edge (field) **face_half_edge**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_f]) {units=\ :ref:`NX_UNITLESS `} Identifier of the (starting)/associated half-edge of the face. .. _/NXcg_half_edge_data_structure/half_edge_vertex_origin-field: .. index:: half_edge_vertex_origin (field) **half_edge_vertex_origin**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_he]) {units=\ :ref:`NX_UNITLESS `} The identifier of the vertex from which this half-edge is outwards pointing. .. _/NXcg_half_edge_data_structure/half_edge_twin-field: .. index:: half_edge_twin (field) **half_edge_twin**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_he]) {units=\ :ref:`NX_UNITLESS `} Identifier of the associated oppositely pointing half-edge. .. _/NXcg_half_edge_data_structure/half_edge_incident_face-field: .. index:: half_edge_incident_face (field) **half_edge_incident_face**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_he]) {units=\ :ref:`NX_UNITLESS `} If the half-edge is a boundary half-edge the incident face identifier is NULL, i.e. 0. .. _/NXcg_half_edge_data_structure/half_edge_next-field: .. index:: half_edge_next (field) **half_edge_next**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_he]) {units=\ :ref:`NX_UNITLESS `} Identifier of the next half-edge. .. _/NXcg_half_edge_data_structure/half_edge_prev-field: .. index:: half_edge_prev (field) **half_edge_prev**: (optional) :ref:`NX_UINT ` (Rank: 1, Dimensions: [n_he]) {units=\ :ref:`NX_UNITLESS `} Identifier of the previous half-edge. .. _/NXcg_half_edge_data_structure/weinberg_vector-field: .. index:: weinberg_vector (field) **weinberg_vector**: (optional) :ref:`NX_CHAR ` Users are referred to the literature for the background of L. Weinberg's work about topological characterization of planar graphs: * `L. Weinberg 1966a, `_ * `L. Weinberg, 1966b, `_ * `E. A. Lazar et al. `_ and how this work can e.g. be applied in space-filling tessellations of microstructural objects like crystals/grains. Hypertext Anchors ----------------- List of hypertext anchors for all groups, fields, attributes, and links defined in this class. * :ref:`/NXcg_half_edge_data_structure/dimensionality-field ` * :ref:`/NXcg_half_edge_data_structure/face_half_edge-field ` * :ref:`/NXcg_half_edge_data_structure/face_identifier_offset-field ` * :ref:`/NXcg_half_edge_data_structure/half_edge_identifier_offset-field ` * :ref:`/NXcg_half_edge_data_structure/half_edge_incident_face-field ` * :ref:`/NXcg_half_edge_data_structure/half_edge_next-field ` * :ref:`/NXcg_half_edge_data_structure/half_edge_prev-field ` * :ref:`/NXcg_half_edge_data_structure/half_edge_twin-field ` * :ref:`/NXcg_half_edge_data_structure/half_edge_vertex_origin-field ` * :ref:`/NXcg_half_edge_data_structure/number_of_faces-field ` * :ref:`/NXcg_half_edge_data_structure/number_of_half_edges-field ` * :ref:`/NXcg_half_edge_data_structure/number_of_vertices-field ` * :ref:`/NXcg_half_edge_data_structure/position-field ` * :ref:`/NXcg_half_edge_data_structure/vertex_identifier_offset-field ` * :ref:`/NXcg_half_edge_data_structure/vertex_incident_half_edge-field ` * :ref:`/NXcg_half_edge_data_structure/weinberg_vector-field ` **NXDL Source**: https://github.com/nexusformat/definitions/blob/main/base_classes/NXcg_half_edge_data_structure.nxdl.xml