Enum identifying the various payloads that a TypedBlob can carry. See TypedBlob::GetData.
Signature
// Identifies the payload slots a TypedBlob can provide
enum DataSlot:
PositionsF32 = 10000
PositionsF64 = 10001
PositionsXYZ192_W192 = 10111
PositionsPlanesABC64_D128 = 10211
VertexToHalfedge = 11000
TrianglesF32 = 20000
TrianglesF64 = 20001
TrianglesXYZ192_W192 = 20111
TrianglesPlanesABC64_D128 = 20211
TrianglesIndexed = 29000
SegmentsIndexed = 39000
PrimitiveSize = 40001
HalfedgeToVertex = 50001
HalfedgeToEdge = 50002
HalfedgeToFace = 50003
HalfedgeToNextHalfedge = 50004
HalfedgeToPrevHalfedge = 50005
HalfedgeToOppositeHalfedge = 50006
HalfedgePlaneABC64_D128 = 50111
Defects = 80001
PrimitiveIDs = 90000
PrimitiveToHalfedge = 90050
PrimitiveSupportingPlaneABC64_D128 = 90111
QueryResultBool = 110001
QueryResultF64 = 110003
PositionsF32
A contiguous list of 3D positions. Each consecutive 3 floats defines a position (x, y, z).
This slot is for example used in Operation::ExportToIndexedTrianglesF32 or Operation::ExportDefectNetwork or Operation::Export.
PositionsF64
A contiguous list of 3D positions. Each consecutive 3 doubles defines a position (x, y, z).
This slot is for example used in Operation::Export.
PositionsXYZ192_W192
A contiguous list of homogeneous 3D integer positions. Each position is stored as (x, y, z, w) where each coordinate is stored in 192 bit two's complement (aka 3x u64, interpreted as i192).
This slot is for example used in Operation::Export.
PositionsPlanesABC64_D128
A contiguous list of 3D positions stored as the intersection of 3 homogeneous integer planes. Each position is stored as planes (p, q, r). A plane is stored as (a, b, c, d) where abc is the integer normal stored in i64 per component and d is the plane equation constant as i128 (stored as 2x u64).
This slot is for example used in Operation::Export.
VertexToHalfedge
A contiguous list of halfedge indices, one per position. The halfedge is some arbitrary halfedge that points to this vertex/position.
This slot is for example used in Operation::Export.
TrianglesF32
A contiguous list of individual triangles. Each consecutive 9 floats defines a triangle (3 x pos3).
This slot is for example used in Operation::ExportToTrianglesF32 or Operation::Export.
TrianglesF64
A contiguous list of individual triangles. Each consecutive 9 doubles defines a triangle (3 x pos3).
This slot is for example used in Operation::Export.
TrianglesXYZ192_W192
A contiguous list of individual triangles. Each consecutive 3 homogeneous 3D integer positions define a triangle. Each position is stored as (x, y, z, w) where each coordinate is stored in 192 bit two's complement (aka 3x u64, interpreted as i192).
This slot is for example used in Operation::Export.
TrianglesPlanesABC64_D128
A contiguous list of individual triangles consisting of 3 positions each. Each position is stored as 3 homogeneous integer planes (p, q, r). A plane is stored as (a, b, c, d) where abc is the integer normal stored in i64 per component and d is the plane equation constant as i128 (stored as 2x u64).
This slot is for example used in Operation::Export.
TrianglesIndexed
A contiguous list of indexed triangles. Each consecutive 3 int32_t define a triangle. The indices usually point into a position data slot like PositionsF32.
This slot is for example used in Operation::ExportToIndexedTrianglesF32 or Operation::Export.
SegmentsIndexed
A contiguous list of indexed segments. Each consecutive 2 int32_t define a segment. The indices usually point into a position data slot like PositionsF32.
This slot is for example used in Operation::ExportDefectNetwork or Operation::Export.
PrimitiveSize
A contiguous list of int32_t polygon sizes, i.e. the number of vertices/edges/halfedges per polygon.
This slot is for example used in Operation::Export.
HalfedgeToVertex
A contiguous list of int32_t vertex indices, one per halfedge. This array maps halfedge indices to vertex indices (with the intended semantic that the halfedge "points to" the given vertex).
This slot is for example used in Operation::Export.
HalfedgeToEdge
A contiguous list of int32_t edge indices, one per halfedge. This array maps halfedge indices to edge indices.
This slot is for example used in Operation::Export.
HalfedgeToFace
A contiguous list of int32_t face indices, one per halfedge. This array maps halfedge indices to face indices.
This slot is for example used in Operation::Export.
HalfedgeToNextHalfedge
A contiguous list of int32_t halfedge indices, one per halfedge. This array maps halfedge indices to halfedge indices that are the "next" in the halfedge relation.
This slot is for example used in Operation::Export.
HalfedgeToPrevHalfedge
A contiguous list of int32_t halfedge indices, one per halfedge. This array maps halfedge indices to halfedge indices that are the "prev" in the halfedge relation.
This slot is for example used in Operation::Export.
HalfedgeToOppositeHalfedge
A contiguous list of int32_t halfedge indices, one per halfedge. This array maps halfedge indices to halfedge indices that are the "opposite" in the halfedge relation.
This slot is for example used in Operation::Export.
HalfedgePlaneABC64_D128
A contiguous list of exact outward integer edge planes, one per halfedge. A plane is stored as (a, b, c, d) where abc is the integer normal stored in i64 per component and d is the plane equation constant as i128 (stored as 2x u64).
This slot is for example used in Operation::Export.
Defects
A contiguous list of integer defect numbers. Each uint32_t signifies an integer defect. These IDs correspond 1-to-1 to stored primitives, like SegmentsIndexed.
This slot is for example used in Operation::ExportDefectNetwork or Operation::Export.
PrimitiveIDs
A contiguous list of primitive IDs. Each uint64_t defines a primitive ID as specified in SurfaceBuilder::TrackID. These IDs correspond 1-to-1 to stored primitives, like TrianglesF32 or TrianglesIndexed.
This slot is for example used in Operation::ExportToTrianglesF32WithID or Operation::ExportToIndexedTrianglesF32WithID or Operation::Export.
PrimitiveToHalfedge
A contiguous list of halfedge indices. These halfedges correspond 1-to-1 to stored primitives and point to some arbitrary halfedge that belongs to the primitive.
This slot is for example used in Operation::Export.
PrimitiveSupportingPlaneABC64_D128
A contiguous list of primitive supporting planes, stored as exact integer coordinates. These planes correspond 1-to-1 to stored primitives, like TrianglesF32 or TrianglesIndexed. A plane is stored as (a, b, c, d) where abc is the integer normal stored in i64 per component and d is the plane equation constant as i128 (stored as 2x u64).
This slot is for example used in Operation::Export.
QueryResultBool
A single bool or array of bools, stored as 1 byte per bool. Usually found in BlobType::QueryResult, which results from Operation::QueryXYZ calls.
This slot is for example used in Operation::QueryIsSupersolid or Operation::QueryIsSolid.
QueryResultF64
A single 64 bit double or array of doubles. Usually found in BlobType::QueryResult, which results from Operation::QueryXYZ calls.