30template<
int vertexCount,
int triangleCount>
Defines the IStaticTriangleGroup interface for managing a collection of static 3D triangles.
Defines the ITriangleGroup interface for managing a collection of mutable 3D triangles.
Defines the IndexGroup class for handling a group of three unsigned integer indices.
Defines the Triangle3D class for representing and manipulating 3D triangles.
Interface for managing a static group of 3D triangles and associated data.
Interface for managing a dynamic group of 3D triangles and associated data.
Represents a group of three unsigned integer indices.
Represents a 3D triangle with support for UV mapping and ray intersection testing.
Represents a dynamic group of 3D triangles.
Triangle3D triangles[triangleCount]
Array of triangles in the group.
const IndexGroup * uvIndexGroup
Pointer to the UV index group defining texture coordinates.
const IndexGroup * GetIndexGroup() override
Gets the index group defining triangle vertices.
Vector3D * GetVertices() override
Gets the array of vertices in the group.
int GetTriangleCount() override
Gets the number of triangles in the group.
const Vector2D * GetUVVertices() override
Gets the array of UV vertices in the group.
Vector3D vertices[vertexCount]
Array of vertices in the group.
const IndexGroup * indexGroup
Pointer to the index group defining triangle vertices.
const IndexGroup * GetUVIndexGroup() override
Gets the UV index group defining texture coordinates.
bool hasUV
Indicates whether UV mapping is enabled.
const Vector2D * uvVertices
Pointer to the array of UV coordinates.
TriangleGroup(IStaticTriangleGroup *triangleGroup)
Constructs a TriangleGroup from a static triangle group.
Triangle3D * GetTriangles() override
Gets the array of triangles in the group.
int GetVertexCount() override
Gets the number of vertices in the group.
Represents a 2D vector (X, Y) and provides methods for vector arithmetic.
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.