MeshIndexedTriangles
- class cee.geo.MeshIndexedTriangles()
This class implements a
Mesh
for indexed triangles.Rather than defining each triangle directly as an array of vertices, an array containing x, y and z values for each unique vertex in the part is defined. Then triangles are defined by arrays of indices that refer to elements of this vertex array. This allows triangles to share vertices, thus reducing the number of vertices, and enabling the computation of smooth shade normals.
Note that while the vertices array contains 3 elements per point (x, y and z), the elements in the indices array are interpreted as vertex indices. For example, if vertices contains 3 vertices A, B and C:
vertices = [Ax, Ay, Az, Bx, By, Bz, Cx, Cy, Cz];
Then vertex A is at index 0, vertex B and 1 and vertex C at 2. So the triangle containing these vertices would be defined with
indices = [0, 1, 2];
Constructors
Accessors
Constructors
constructor
- cee.geo.MeshIndexedTriangles.constructor(vertices, indices, optionalVertexData)
Creates an indexed triangle mesh with the given vertices and indices.
- Arguments
vertices (
ArrayLike[number]
) –indices (
ArrayLike[number]
) –optionalVertexData (
cee.geo.OptionalIndexedTriangleVertexData
) –
- Return type
cee.geo.MeshIndexedTriangles
Accessors
- cee.geo.MeshIndexedTriangles.boundingBox
Returns a copy of the
BoundingBox
of the mesh
- cee.geo.MeshIndexedTriangles.indexArray
A readonly array containing the indices of the mesh
- cee.geo.MeshIndexedTriangles.primitiveCount
The number of primitives in the mesh.
- cee.geo.MeshIndexedTriangles.primitiveType
The type of primitives that are used in the mesh.
- cee.geo.MeshIndexedTriangles.textureCoordinates
A readonly array containing the 2d texture coordinates of the mesh
- cee.geo.MeshIndexedTriangles.vertexArray
A readonly array containing the vertices of the mesh
- cee.geo.MeshIndexedTriangles.vertexCount
The number of vertices in the mesh.
Methods
getPrimitiveVertices
- cee.geo.MeshIndexedTriangles.getPrimitiveVertices(primitiveIndex)
Returns a copy of the vertex indices of a given primitive.
- Arguments
primitiveIndex (
number
) –
- Return type
[cee.Vec3]
rayIntersect
- cee.geo.MeshIndexedTriangles.rayIntersect(ray, hitItem)
Performs picking on the mesh.
- Arguments
ray (
cee.Ray
) –hitItem (
cee.geo.MeshHitItem
) –
- Return type
boolean
If a primitive was hit, the function returns true and populates the passed hitItem object with information about this primitive. It nothing was hit, returns false.
constructPreserveSharpEdges
- cee.geo.MeshIndexedTriangles.constructPreserveSharpEdges(creaseAngleDegrees, vertices, indices, optionalVertexData)
Creates an indexed triangle mesh with the given vertices and indices.
- Arguments
creaseAngleDegrees (
number
) –vertices (
ArrayLike[number]
) –indices (
ArrayLike[number]
) –optionalVertexData (
cee.geo.OptionalIndexedTriangleVertexData
) –
- Return type
cee.geo.MeshIndexedTriangles
Preserve sharp edges by splitting vertices on edges where the surface normal of the two triangles sharing the edge is more than the given angle (in degrees).