esp::assets::GltfMeshData class

Mesh data storage and loading for gltf format assets. See ResourceManager::loadGeneralMeshData.

Base classes

class BaseMesh
Base class for storing mesh asset data including geometry and topology.

Public types

struct RenderingBuffer
Stores render data for the mesh necessary for gltf format.

Constructors, destructors, conversion operators

GltfMeshData(bool needsNormals = true)
Constructor. Sets SupportedMeshType::GLTF_MESH to identify the asset type.
~GltfMeshData() virtual
Destructor.

Public functions

void uploadBuffersToGPU(bool forceReload = false) override
Compile the renderingBuffer_ if first upload or forceReload is true.
void setMeshData(Magnum::Trade::AbstractImporter& importer, int meshID)
Load mesh data from a pre-parsed importer for a specific mesh component. Sets the collisionMeshData_ references.
auto getRenderingBuffer() -> RenderingBuffer* virtual
Returns a pointer to the compiled render data storage structure.
auto getMagnumGLMesh() -> Magnum::GL::Mesh* override
Returns a pointer to the compiled render mesh data stored in the renderingBuffer_.

Protected variables

std::unique_ptr<RenderingBuffer> renderingBuffer_
Storage structure for compiled render data. We will use a smart pointer here since each item within the structure (e.g., Magnum::GL::Mesh) does NOT have copy constructor. See uploadBuffersToGPU.
bool needsNormals_

Function documentation

void esp::assets::GltfMeshData::uploadBuffersToGPU(bool forceReload = false) override

Compile the renderingBuffer_ if first upload or forceReload is true.

Parameters
forceReload If true, recompiles the renderingBuffer_ (e.g. in the case of data change after initial compilation).

void esp::assets::GltfMeshData::setMeshData(Magnum::Trade::AbstractImporter& importer, int meshID)

Load mesh data from a pre-parsed importer for a specific mesh component. Sets the collisionMeshData_ references.

Parameters
importer The importer pre-loaded with asset data from file.
meshID The local identifier of a specific mesh component of the asset.

RenderingBuffer* esp::assets::GltfMeshData::getRenderingBuffer() virtual

Returns a pointer to the compiled render data storage structure.

Returns Pointer to the renderingBuffer_.

Magnum::GL::Mesh* esp::assets::GltfMeshData::getMagnumGLMesh() override

Returns a pointer to the compiled render mesh data stored in the renderingBuffer_.

Returns Pointer to the compiled render mesh data.