|
CeresEngine 0.2.0
A game development framework
|
A base class for all mesh implementations. More...
#include <CeresEngine/Mesh/Mesh.hpp>
Public Member Functions | |
| 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. | |
| virtual ConstRawVertexBufferView | getRawVertexBufferView () const =0 |
| Gets a raw view of the vertex buffer data. | |
| template<typename T > | |
| VertexBufferView< const T > | getVertexBufferView () const |
| Gets a structured view of the vertex buffer data. | |
| virtual ConstRawIndexBufferView | getRawIndexBufferView () const =0 |
| Gets a raw view of the index buffer data. | |
| template<typename T > | |
| IndexBufferView< const T > | getIndexBufferView () const |
| Gets a structured view of the index buffer data. | |
| const MeshProperties & | getProperties () 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 VertexDeclaration & | getVertexDeclaration () const |
| The vertex declaration format used by the mesh. | |
| const IndexType & | getIndexType () 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< Mesh > | getResourceHandle () const noexcept |
| Generates a hash for the provided type. | |
| SPtr< Mesh > | getShared () noexcept |
| Gets a shared pointer to the resource. | |
| SPtr< const Mesh > | getShared () const noexcept |
| Gets a shared pointer to the resource. | |
| const ResourceTypeInfo & | getResourceType () 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. | |
| ResourceManager * | getResourceManager () 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< ResourceMetadata > | getResourceMetadata () const noexcept |
| A pointer to the user-defined resource metadata. | |
| const PackagePtr & | getPackage () const noexcept |
| The package from which the resource was loaded from. | |
| template<typename T = Resource> | |
| SPtr< T > | getShared () noexcept |
| Gets a shared pointer to the resource. | |
| template<typename T = Resource> | |
| SPtr< const T > | getShared () 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 |
Static Public Member Functions | |
| 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 | |
| MeshProperties | mProperties |
| A structure that contains a set of properties for the mesh. | |
Protected Member Functions | |
| 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. | |
Private Types | |
| using | super = TResource< Mesh > |
Friends | |
| class | TUserTypeInfo< Mesh > |
A base class for all mesh implementations.
A polygon mesh is a collection of vertices, edges and faces that defines the shape of a polyhedral object. The faces usually consist of triangles (triangle mesh), quadrilaterals (quads), or other simple convex polygons (n-gons), since this simplifies rendering.
|
private |
|
explicit |
Creates a new empty mesh.
|
explicit |
Creates a new Mesh by constructing a new MeshProperties object.
|
override |
Destroys the mesh object.
|
inline |
The mesh axis-aligned bounding box, can be used to perform culling.
|
inline |
The mesh bounding sphere, can be used to perform culling.
|
inline |
Gets a structured view of the index buffer data.
| T | The index data type. |
The format used by the mesh index buffer, if an index buffer is available.
|
inlinenoexcept |
A structure that contains a set of properties for the mesh.
|
pure virtual |
Gets a raw view of the index buffer data.
Implemented in CeresEngine::MemoryMesh, CeresEngine::StreamingMesh, and CeresEngine::GPUMesh.
|
pure virtual |
Gets a raw view of the vertex buffer data.
Implemented in CeresEngine::MemoryMesh, CeresEngine::StreamingMesh, and CeresEngine::GPUMesh.
The sub meshes in the mesh.
|
inline |
Gets a structured view of the vertex buffer data.
| T | The vertex structure type. |
|
inline |
The vertex declaration format used by the mesh.
|
protected |
Recalculate the mesh bounds based on the sub-mesh bounds.
Executes the given processor for every field of the struct.
| RTTI | The processor to be ran for every field. |
|
friend |
| MeshProperties CeresEngine::Mesh::mProperties |
A structure that contains a set of properties for the mesh.