MeshPrimitive

Please note that mesh primitives currently do not support permeation, as it's not guaranteed they will be a closed-loop mesh (e.g. heightmaps). In future this class will be split into HeightmapPrimitive and MeshPrimitive classes

public unsafe class MeshPrimitive : Primitive
{
    public MeshPrimitive(MaterialType material,
                         List<Vector3F> vertices,
                         Vector3F minBounds,
                         Vector3F maxBounds,
                         Matrix4F transform)
    {
    }
    
    public Matrix4F transform = Matrix4F.Identity;
}

Unlike other primitives, a MeshPrimitive must be initialised by its constructor, with all data already available.

Once created, only transform and material can be updated. The vertices will be processed into a BVH and cannot be updated.

After creation, the vertices list can be safely cleared/disposed, or used to create another MeshPrimitive.

minBounds and maxBounds must be the minimum and maximum bounds of the 3D model when at rest, i.e. Matrix4F.Identity.