# 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

- `constructor`

Accessors

- `boundingBox`
- `indexArray`
- `primitiveCount`
- `primitiveType`
- `textureCoordinates`
- `vertexArray`
- `vertexCount`

Methods

- `getPrimitiveVertices`
- `rayIntersect`
- `constructPreserveSharpEdges`

## Constructors

`MeshIndexedTriangles.``constructor`(vertices, indices[, optionalVertexData])

  Arguments: | vertices (`ArrayLike`) – None indices (`ArrayLike`) – None optionalVertexData (`OptionalIndexedTriangleVertexData`) – optional None

  Creates an indexed triangle mesh with the given vertices and indices.

  Return type: | MeshIndexedTriangles

## Accessors

`MeshIndexedTriangles.``boundingBox`()

  Returns a copy of the `BoundingBox` of the mesh

  Return type: | BoundingBox

`MeshIndexedTriangles.``indexArray`()

  A readonly array containing the indices of the mesh

  Return type: | ArrayLike <number>

`MeshIndexedTriangles.``primitiveCount`()

  The number of primitives in the mesh.

  Return type: | number

`MeshIndexedTriangles.``primitiveType`()

  The type of primitives that are used in the mesh.

  Return type: | MeshPrimitiveType

`MeshIndexedTriangles.``textureCoordinates`()

  A readonly array containing the 2d texture coordinates of the mesh

  Return type: | ArrayLike <number>

`MeshIndexedTriangles.``vertexArray`()

  A readonly array containing the vertices of the mesh

  Return type: | ArrayLike <number>

`MeshIndexedTriangles.``vertexCount`()

  The number of vertices in the mesh.

  Return type: | number

## Methods

### getPrimitiveVertices

`MeshIndexedTriangles.``getPrimitiveVertices`(primitiveIndex)

  Arguments: | primitiveIndex (`number`) – None

  Returns a copy of the vertex indices of a given primitive.

  Return type: | [Vec3]

### rayIntersect

`MeshIndexedTriangles.``rayIntersect`(ray[, hitItem])

  Arguments: | ray (`Ray`) – None hitItem (`MeshHitItem`) – optional None

  Performs picking on the mesh.

  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.

  Return type: | boolean

### static constructPreserveSharpEdges

`MeshIndexedTriangles.``constructPreserveSharpEdges`(creaseAngleDegrees, vertices, indices[, optionalVertexData])

  Arguments: | creaseAngleDegrees (`number`) – None vertices (`ArrayLike`) – None indices (`ArrayLike`) – None optionalVertexData (`OptionalIndexedTriangleVertexData`) – optional None

  Creates an indexed triangle mesh with the given vertices and indices.

  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).

  Return type: | MeshIndexedTriangles

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your Docs generative AI assistant. Ask me anything about HOOPS Envision for Web or choose a sample question below to start a conversation:

What is HOOPS Envision for Web?
What are the latest release notes for HOOPS Envision for Web?
How do I start evaluating HOOPS Envision for Web?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...