Skip to main content

TetrahedralMesh

Classes

TetrahedralMesh

Only keeps track of tetrahedra, actual point coordinates are stored outside. For most useful operations point coordinates are passed in as an extra argument.

Binary Layout: vertex_id_a :: uint32 vertex_id_b :: uint32 vertex_id_c :: uint32 vertex_id_d :: uint32 neighbour_a :: uint32 - neighbour tetrahedron, opposite to vertex A neighbour_b :: uint32 - neighbour tetrahedron, opposite to vertex B neighbour_c :: uint32 - neighbour tetrahedron, opposite to vertex C neighbour_d :: uint32 - neighbour tetrahedron, opposite to vertex D Layout is similar to [1], but is interleaved for better cache locality. Also note that sub-determinants are not included, these are only needed for building the mesh, we excluded them to keep structure clean and more compact.

Neighbours are encoded in the following manner: MSB -> [tet_id:30bit][opposite_corner_index:2bit] <- LSB Code to get tet index: encoded >> 2 Code to get corner index: encoded & 3

Constants

LAYOUT_TETRA_WORD_COUNT : number
LAYOUT_TETRA_BYTE_SIZE : number

Size in bytes of a single tetrahedron record

INVALID_NEIGHBOUR : number
MAX_TET_INDEX : number
DEFAULT_INITIAL_SIZE : number
CAPACITY_GROW_MULTIPLIER : number
CAPACITY_GROW_MIN_STEP : number

LAYOUT_TETRA_WORD_COUNT : number

Kind: global constant
Read only: true

LAYOUT_TETRA_BYTE_SIZE : number

Size in bytes of a single tetrahedron record

Kind: global constant
Read only: true

INVALID_NEIGHBOUR : number

Kind: global constant
Read only: true

MAX_TET_INDEX : number

Kind: global constant
Read only: true

DEFAULT_INITIAL_SIZE : number

Kind: global constant
Read only: true

CAPACITY_GROW_MULTIPLIER : number

Kind: global constant
Read only: true

CAPACITY_GROW_MIN_STEP : number

Kind: global constant
Read only: true