Shapemetry API / TriangleMesh
Class: TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:20
Level-0 mesh: every face is a triangle, stored as GPU-friendly flat arrays (positions/normals/indices). Implements Shell; knows no higher mesh type.
Implements
Shell
Constructors
Constructor
new TriangleMesh(
positions,indices,uvs?,normals?,groups?,quadGrids?):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:21
Parameters
positions
number[]
indices
number[]
uvs?
number[] = []
normals?
number[] = []
groups?
TriangleMeshGroup[] = []
quadGrids?
QuadGrid[] = []
Returns
TriangleMesh
Properties
positions
readonlypositions:number[]
Defined in: triangleMesh/TriangleMesh.ts:22
indices
readonlyindices:number[]
Defined in: triangleMesh/TriangleMesh.ts:23
uvs
readonlyuvs:number[] =[]
Defined in: triangleMesh/TriangleMesh.ts:24
normals
readonlynormals:number[] =[]
Defined in: triangleMesh/TriangleMesh.ts:25
groups
readonlygroups:TriangleMeshGroup[] =[]
Defined in: triangleMesh/TriangleMesh.ts:26
quadGrids
readonlyquadGrids:QuadGrid[] =[]
Defined in: triangleMesh/TriangleMesh.ts:27
fromPolygonMesh
staticfromPolygonMesh: (json) =>TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:41
Round-trip via Mesh: build a half-edge mesh from the polygon JSON (handles hole triangulation + T-junction stitch), then flatten to triangle arrays.
Wired from mesh/Mesh.ts at module load to avoid a circular import at the top of this file (Mesh already imports TriangleMesh).
Parameters
json
Returns
TriangleMesh
toPolygonMesh
toPolygonMesh: () =>
PolygonMeshJSON
Defined in: triangleMesh/TriangleMesh.ts:49
Round-trip via Mesh: rebuild half-edge topology, run the coplanar-merge pass, and serialize to wire format.
Wired from mesh/Mesh.ts at module load (see above).
Returns
Accessors
isSolid
Get Signature
get isSolid():
boolean
Defined in: triangleMesh/TriangleMesh.ts:166
Returns
boolean
Implementation of
Shell.isSolid
Methods
toJSON()
toJSON():
TriangleMeshJSON
Defined in: triangleMesh/TriangleMesh.ts:30
Returns
Implementation of
Shell.toJSON
fromJSON()
staticfromJSON(d):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:31
Parameters
d
Returns
TriangleMesh
toTriangleMesh()
toTriangleMesh():
TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:51
Returns
TriangleMesh
Implementation of
Shell.toTriangleMesh
clone()
clone():
TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:52
Returns
TriangleMesh
Implementation of
Shell.clone
quadGrid()
quadGrid():
QuadGrid[]
Defined in: triangleMesh/TriangleMesh.ts:54
Returns
QuadGrid[]
fromQuadGrids()
staticfromQuadGrids(grids):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:56
Parameters
grids
QuadGrid[]
Returns
TriangleMesh
boundingBox()
boundingBox():
BoundingBox
Defined in: triangleMesh/TriangleMesh.ts:73
Returns
Implementation of
Shell.boundingBox
surfaceArea()
surfaceArea():
number
Defined in: triangleMesh/TriangleMesh.ts:85
Returns
number
Implementation of
Shell.surfaceArea
volume()
volume():
number
Defined in: triangleMesh/TriangleMesh.ts:98
Returns
number
Implementation of
Shell.volume
uvMatrixAt()
uvMatrixAt(
faceIndex,normal?):Transformation|undefined
Defined in: triangleMesh/TriangleMesh.ts:112
Affine map from world position to (u,v) coords of the triangle at faceIndex. Undefined if the face has no UVs. Uses the face's plane frame; collapses to a planar projection if the triangle is UV-degenerate.
Parameters
faceIndex
number
normal?
Returns
Transformation | undefined
faceNormal()
faceNormal(
faceIndex):Vector
Defined in: triangleMesh/TriangleMesh.ts:156
Unit normal of the triangle at this.indices[faceIndex*3 .. faceIndex*3+2]. Zero vector if degenerate.
Parameters
faceIndex
number
Returns
transform()
transform(
m):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:216
Parameters
m
Returns
TriangleMesh
Implementation of
Shell.transform
reverse()
reverse():
TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:252
Returns
TriangleMesh
Implementation of
Shell.reverse
contains()
contains(
p):boolean
Defined in: triangleMesh/TriangleMesh.ts:262
Ray casting (Möller–Trumbore, ray direction +X). Odd intersection count = inside.
Parameters
p
Returns
boolean
Implementation of
Shell.contains
splitByPlane()
splitByPlane(
plane):SplitByPlaneResult<TriangleMesh>
Defined in: triangleMesh/TriangleMesh.ts:292
Clip by plane. Returns above/below halves plus the cut boundary as a PolyShape (rings live in the plane's local frame; PolyShape.transformation lifts back to 3D). Cap on above/below is filled via convex hull of cut points (correct only for convex sections); for concave sections use boundaries to retriangulate.
Parameters
plane
Returns
SplitByPlaneResult<TriangleMesh>
Implementation of
Shell.splitByPlane
union()
union(
other):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:552
Parameters
other
Shell
Returns
TriangleMesh
Implementation of
Shell.union
intersect()
intersect(
other):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:553
Parameters
other
Shell
Returns
TriangleMesh
Implementation of
Shell.intersect
subtract()
subtract(
other):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:554
Parameters
other
Shell
Returns
TriangleMesh
Implementation of
Shell.subtract
xor()
xor(
other):TriangleMesh
Defined in: triangleMesh/TriangleMesh.ts:555
Parameters
other
Shell
Returns
TriangleMesh
Implementation of
Shell.xor