Nirtcpp 2.1.0
Nirtcpp is a high-performance c++ graphics engine.
Loading...
Searching...
No Matches
nirt::scene::IMesh Class Referenceabstract

Class which holds the geometry of an object. More...

#include <nirtcpp/core/engine/IMesh.hpp>

Inheritance diagram for nirt::scene::IMesh:
Inheritance graph
Collaboration diagram for nirt::scene::IMesh:
Collaboration graph

Public Member Functions

virtual u32 getMeshBufferCount () const =0
 Get the amount of mesh buffers.
 
virtual IMeshBuffergetMeshBuffer (u32 nr) const =0
 Get pointer to a mesh buffer.
 
virtual IMeshBuffergetMeshBuffer (const video::SMaterial &material) const =0
 Get pointer to a mesh buffer which fits a material.
 
virtual const core::aabbox3d< f32 > & getBoundingBox () const =0
 Get an axis aligned bounding box of the mesh.
 
virtual void setBoundingBox (const core::aabbox3df &box)=0
 Set user-defined axis aligned bounding box.
 
virtual void setMaterialFlag (video::E_MATERIAL_FLAG flag, bool newvalue)=0
 Sets a flag of all contained materials to a new value.
 
virtual void setHardwareMappingHint (E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
 Set the hardware mapping hint.
 
virtual void setDirty (E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
 Flag the meshbuffer as changed, reloads hardware buffers.
 
virtual E_ANIMATED_MESH_TYPE getMeshType () const
 Returns the type of the meshes.
 
- Public Member Functions inherited from nirt::IReferenceCounted
 IReferenceCounted ()
 Constructor.
 
virtual ~IReferenceCounted ()
 Destructor.
 
void grab () const
 Grabs the object. Increments the reference counter by one.
 
bool drop () const
 Drops the object. Decrements the reference counter by one.
 
s32 getReferenceCount () const
 Get the reference count.
 
const c8getDebugName () const
 Returns the debug name of the object.
 

Additional Inherited Members

- Protected Member Functions inherited from nirt::IReferenceCounted
void setDebugName (const c8 *newName)
 Sets the debug name of the object.
 

Detailed Description

Class which holds the geometry of an object.

An IMesh is nothing more than a collection of some mesh buffers (IMeshBuffer). SMesh is a simple implementation of an IMesh. A mesh is usually added to an IMeshSceneNode in order to be rendered.

Member Function Documentation

◆ getBoundingBox()

virtual const core::aabbox3d< f32 > & nirt::scene::IMesh::getBoundingBox ( ) const
pure virtual

Get an axis aligned bounding box of the mesh.

Returns
Bounding box of this mesh.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ getMeshBuffer() [1/2]

virtual IMeshBuffer * nirt::scene::IMesh::getMeshBuffer ( const video::SMaterial material) const
pure virtual

Get pointer to a mesh buffer which fits a material.

Parameters
materialmaterial to search for
Returns
Pointer to the mesh buffer or 0 if there is no such mesh buffer.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ getMeshBuffer() [2/2]

virtual IMeshBuffer * nirt::scene::IMesh::getMeshBuffer ( u32  nr) const
pure virtual

Get pointer to a mesh buffer.

Parameters
nrZero based index of the mesh buffer. The maximum value is getMeshBufferCount() - 1;
Returns
Pointer to the mesh buffer or 0 if there is no such mesh buffer.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ getMeshBufferCount()

virtual u32 nirt::scene::IMesh::getMeshBufferCount ( ) const
pure virtual

Get the amount of mesh buffers.

Returns
Amount of mesh buffers (IMeshBuffer) in this mesh.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ getMeshType()

virtual E_ANIMATED_MESH_TYPE nirt::scene::IMesh::getMeshType ( ) const
inlinevirtual

Returns the type of the meshes.

This is useful for making a safe downcast. For example, if getMeshType() returns EAMT_MD2 it's safe to cast the IMesh to IAnimatedMeshMD2. Note: It's no longer just about animated meshes, that name has just historical reasons.

Returns
Type of the mesh

Reimplemented in nirt::scene::IAnimatedMesh, and nirt::scene::SAnimatedMesh.

◆ setBoundingBox()

virtual void nirt::scene::IMesh::setBoundingBox ( const core::aabbox3df box)
pure virtual

Set user-defined axis aligned bounding box.

Parameters
boxNew bounding box to use for the mesh.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ setDirty()

virtual void nirt::scene::IMesh::setDirty ( E_BUFFER_TYPE  buffer = EBT_VERTEX_AND_INDEX)
pure virtual

Flag the meshbuffer as changed, reloads hardware buffers.

This method has to be called every time the vertices or indices have changed. Otherwise, changes won't be updated on the GPU in the next render cycle.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ setHardwareMappingHint()

virtual void nirt::scene::IMesh::setHardwareMappingHint ( E_HARDWARE_MAPPING  newMappingHint,
E_BUFFER_TYPE  buffer = EBT_VERTEX_AND_INDEX 
)
pure virtual

Set the hardware mapping hint.

This methods allows to define optimization hints for the hardware. This enables, e.g., the use of hardware buffers on platforms that support this feature. This can lead to noticeable performance gains.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.

◆ setMaterialFlag()

virtual void nirt::scene::IMesh::setMaterialFlag ( video::E_MATERIAL_FLAG  flag,
bool  newvalue 
)
pure virtual

Sets a flag of all contained materials to a new value.

Parameters
flagFlag to set in all materials.
newvalueNew value to set in all materials.

Implemented in nirt::scene::SAnimatedMesh, and nirt::scene::SMesh.


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

Nirtcpp    @cppfx.xyz

Esvcpp    esv::print