Gets the size of the memory block in bytes.
The size of the memory block in bytes.
Retrieves the vertex data for a given BimProductMeshDescriptor.
The BimProductMeshDescriptor object.
The BimVertexData associated with the given mesh descriptor. undefined if the mesh descriptor is not found.
Checks if the given BimProductMeshDescriptor exists in the geometry memory block.
The BimProductMeshDescriptor to check.
true if the BimProductMeshDescriptor exists, false otherwise.
Imports packed vertex data into the geometry memory block.
The BimVertexDataReader used to read the vertex data.
The mesh descriptors containing information about the vertex data in BimVertexDataReader. Mesh descriptors that are already imported are ignored (so we never store duplicated data).
A Promise that resolves when the vertex data is imported.
Imports packed vertex data from V2 (.t8gd) format into the geometry memory block.
The T8gdReader for file-level operations (hash lookup).
The mesh descriptors containing information about which meshes to load. Mesh descriptors that are already imported are ignored (so we never store duplicated data).
A Promise that resolves when the vertex data is imported.
Lazily reads edge indices for a mesh from the retained V2 geometry buffer. Returns undefined if the mesh has no edges or was not loaded via V2 format.
Releases retained V2 geometry buffers used for lazy edge reads. Call after all edges have been read to free the underlying ArrayBuffer memory.
Releases V2 geometry buffer references for a specific set of mesh hashes only. Use this when several loader elements share one repository: each element should release only the meshes it consumed so concurrent peers can still resolve their edges.
Removes a cached vertex data entry by hash so it can be re-imported with better data. The old data remains allocated in the parent MemoryBlock buffer but becomes unreachable through the cache. This only happens during initial loading when welded geometry replaces unwelded geometry for the same hash, so the leaked allocations are bounded and small relative to the total geometry budget. Compacting the MemoryBlock is not worth the cost.
Resets the GeometryMemoryBlock freeing all the used memory. It is safe to call importPackedVertexData after calling this method.
Represents a memory block for storing geometry data. That is vertices, normals and indices.