CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GPUMesh Class Referencefinal

A mesh that is backed directly by a GPU vertex (and optionally an index buffer). More...

#include <CeresEngine/Mesh/Mesh.hpp>

Inheritance diagram for CeresEngine::GPUMesh:
CeresEngine::TResource< GPUMesh, Mesh > CeresEngine::Mesh CeresEngine::TResource< Mesh > CeresEngine::Resource CeresEngine::IReflectable

Public Member Functions

 GPUMesh (const GPUVertexBuffer &vertexBuffer, VertexDeclaration vertexDeclaration, Vector< SubMesh > subMeshes)
 Creates a new GPUMesh from an existing vertex buffer.
 
 GPUMesh (const GPUVertexBuffer &vertexBuffer, VertexDeclaration vertexDeclaration, const GPUIndexBuffer &indexBuffer, IndexType indexType, Vector< SubMesh > subMeshes)
 Creates a new GPUMesh from an existing vertex and index buffers.
 
 GPUMesh (const GPUVertexBuffer &vertexBuffer, const VertexDeclaration &vertexDeclaration, const GPUIndexBuffer &indexBuffer, const Vector< SubMesh > subMeshes)
 Creates a new GPUMesh from an existing vertex and index buffers.
 
ConstRawVertexBufferView getRawVertexBufferView () const final
 Gets a raw view of the vertex buffer data.
 
ConstRawIndexBufferView getRawIndexBufferView () const final
 Gets a raw view of the index buffer data.
 
const GPUVertexBuffergetVertexBuffer () const noexcept
 The GPU vertex buffer.
 
const GPUIndexBuffergetIndexBuffer () const noexcept
 The GPU index buffer.
 
- Public Member Functions inherited from CeresEngine::TResource< GPUMesh, Mesh >
ResourceHandle< GPUMeshgetResourceHandle () const noexcept
 Generates a hash for the provided type.
 
SPtr< GPUMeshgetShared () noexcept
 Gets a shared pointer to the resource.
 
SPtr< const GPUMeshgetShared () const noexcept
 Gets a shared pointer to the resource.
 
const ResourceTypeInfogetResourceType () const noexcept override
 Returns the resource type information descriptor.
 
 TResource (ResourceData &data, InputStream &dataStream)
 
void serialize (OutputStream &dataStream) const override
 Serializes a resource by writing data to dataStream.
 
- Public Member Functions inherited from CeresEngine::Mesh
 Mesh ()
 Creates a new empty mesh.
 
 Mesh (MeshProperties &&properties)
 Creates a new Mesh by constructing a new MeshProperties object.
 
 ~Mesh () override
 Destroys the mesh object.
 
template<typename T >
VertexBufferView< const TgetVertexBufferView () const
 Gets a structured view of the vertex buffer data.
 
template<typename T >
IndexBufferView< const TgetIndexBufferView () const
 Gets a structured view of the index buffer data.
 
const MeshPropertiesgetProperties () const noexcept
 A structure that contains a set of properties for the mesh.
 
const Vector< SubMesh > & getSubMeshes () const
 The sub meshes in the mesh.
 
const VertexDeclarationgetVertexDeclaration () const
 The vertex declaration format used by the mesh.
 
const IndexTypegetIndexType () const
 The format used by the mesh index buffer, if an index buffer is available.
 
const Sphere & getBoundingSphere () const
 The mesh bounding sphere, can be used to perform culling.
 
const AABox & getBoundingBox () const
 The mesh axis-aligned bounding box, can be used to perform culling.
 
- Public Member Functions inherited from CeresEngine::TResource< Mesh >
ResourceHandle< MeshgetResourceHandle () const noexcept
 Generates a hash for the provided type.
 
SPtr< MeshgetShared () noexcept
 Gets a shared pointer to the resource.
 
SPtr< const MeshgetShared () const noexcept
 Gets a shared pointer to the resource.
 
const ResourceTypeInfogetResourceType () const noexcept override
 Returns the resource type information descriptor.
 
 TResource (ResourceData &data, InputStream &dataStream)
 
void serialize (OutputStream &dataStream) const override
 Serializes a resource by writing data to dataStream.
 
- Public Member Functions inherited from CeresEngine::Resource
 Resource ()
 Default constructor for the Resource class.
 
 Resource (ResourceData &data)
 Creates a new Resource instance by passing a ResourceData instance.
 
virtual ~Resource () noexcept=default
 Resource virtual destructor.
 
ResourceManagergetResourceManager () const noexcept
 
HResource getResourceHandle () const noexcept
 Generates a hash for the provided type.
 
UUID getResourceID () const noexcept
 
HResource getParentResource () const noexcept
 A parent resource to which this resource is attached to.
 
SPtr< ResourceMetadatagetResourceMetadata () const noexcept
 A pointer to the user-defined resource metadata.
 
const PackagePtrgetPackage () const noexcept
 The package from which the resource was loaded from.
 
template<typename T = Resource>
SPtr< TgetShared () noexcept
 Gets a shared pointer to the resource.
 
template<typename T = Resource>
SPtr< const TgetShared () const noexcept
 Gets a shared pointer to the resource.
 
 Resource (ResourceData &data, InputStream &dataStream)
 Creates a new resource by reading data from dataStream.
 
- Public Member Functions inherited from CeresEngine::IReflectable
virtual ~IReflectable () noexcept=default
 

Private Types

using super = TResource< GPUMesh, Mesh >
 

Private Attributes

GPUVertexBuffer mVertexBuffer
 The GPU vertex buffer.
 
GPUIndexBuffer mIndexBuffer
 The GPU index buffer.
 

Friends

class TUserTypeInfo< GPUMesh >
 

Additional Inherited Members

- Static Public Member Functions inherited from CeresEngine::Mesh
template<typename Processor >
static constexpr void reflect (Processor &&RTTI)
 Executes the given processor for every field of the struct.
 
- Static Public Member Functions inherited from CeresEngine::Resource
template<typename Processor >
static constexpr void reflect (Processor &&RTTI)
 Executes the given processor for every field of the struct.
 
- Public Attributes inherited from CeresEngine::Mesh
MeshProperties mProperties
 A structure that contains a set of properties for the mesh.
 
- Protected Member Functions inherited from CeresEngine::Mesh
void recalculateMeshBounds ()
 Recalculate the mesh bounds based on the sub-mesh bounds.
 
- Protected Member Functions inherited from CeresEngine::Resource
HResourceStream createStream (const ResourceStreamFlags &flags=ResourceStreamFlag::Default)
 Creates a new resource stream.
 
void destroyStream (HResourceStream &stream)
 Destroys a stream.
 
void markAsDirty ()
 Marks the resource as dirty.
 

Detailed Description

A mesh that is backed directly by a GPU vertex (and optionally an index buffer).

These meshes usually can't be serialized and are only used for runtime-generated meshes.

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ GPUMesh() [1/3]

CeresEngine::GPUMesh::GPUMesh ( const GPUVertexBuffer vertexBuffer,
VertexDeclaration  vertexDeclaration,
Vector< SubMesh subMeshes 
)
explicit

Creates a new GPUMesh from an existing vertex buffer.

Parameters
vertexBufferThe vertex buffer to create the mesh from.
vertexDeclarationThe format of the vertex buffer data.
subMeshesA vector of all sub-meshes contained in the buffer.

◆ GPUMesh() [2/3]

CeresEngine::GPUMesh::GPUMesh ( const GPUVertexBuffer vertexBuffer,
VertexDeclaration  vertexDeclaration,
const GPUIndexBuffer indexBuffer,
IndexType  indexType,
Vector< SubMesh subMeshes 
)
explicit

Creates a new GPUMesh from an existing vertex and index buffers.

Parameters
vertexBufferThe vertex buffer to create the mesh from.
vertexDeclarationThe format of the vertex buffer data.
indexBufferThe index buffer to create the mesh from.
indexTypeThe data type used for vertex indices.
subMeshesA vector of all sub-meshes contained in the buffer.

◆ GPUMesh() [3/3]

CeresEngine::GPUMesh::GPUMesh ( const GPUVertexBuffer vertexBuffer,
const VertexDeclaration vertexDeclaration,
const GPUIndexBuffer indexBuffer,
const Vector< SubMesh subMeshes 
)
inlineexplicit

Creates a new GPUMesh from an existing vertex and index buffers.

Parameters
vertexBufferThe vertex buffer to create the mesh from.
vertexDeclarationThe format of the vertex buffer data.
indexBufferThe index buffer to create the mesh from.
indexTypeThe data type used for vertex indices.
subMeshesA vector of all sub-meshes contained in the buffer.

Member Function Documentation

◆ getIndexBuffer()

const GPUIndexBuffer & CeresEngine::GPUMesh::getIndexBuffer ( ) const
inlinenoexcept

The GPU index buffer.

◆ getRawIndexBufferView()

ConstRawIndexBufferView CeresEngine::GPUMesh::getRawIndexBufferView ( ) const
inlinefinalvirtual

Gets a raw view of the index buffer data.

Implements CeresEngine::Mesh.

◆ getRawVertexBufferView()

ConstRawVertexBufferView CeresEngine::GPUMesh::getRawVertexBufferView ( ) const
inlinefinalvirtual

Gets a raw view of the vertex buffer data.

Implements CeresEngine::Mesh.

◆ getVertexBuffer()

const GPUVertexBuffer & CeresEngine::GPUMesh::getVertexBuffer ( ) const
inlinenoexcept

The GPU vertex buffer.

Friends And Related Symbol Documentation

◆ TUserTypeInfo< GPUMesh >

Member Data Documentation

◆ mIndexBuffer

GPUIndexBuffer CeresEngine::GPUMesh::mIndexBuffer
private

The GPU index buffer.

◆ mVertexBuffer

GPUVertexBuffer CeresEngine::GPUMesh::mVertexBuffer
private

The GPU vertex buffer.


The documentation for this class was generated from the following file: