Skylicht Engine
Loading...
Searching...
No Matches
irr::scene::CMeshBuffer< T > Class Template Reference

Implementation of the IMeshBuffer interface. More...

#include <C:/Projects/skylicht-engine/Projects/Irrlicht/Include/CMeshBuffer.h>

Inheritance diagram for irr::scene::CMeshBuffer< T >:
irr::scene::IMeshBuffer irr::IReferenceCounted

Public Member Functions

 CMeshBuffer (video::IVertexDescriptor *vertexDescriptor, video::E_INDEX_TYPE type=video::EIT_16BIT)
 Constructor.
 CMeshBuffer (const CMeshBuffer &meshBuffer)
virtual ~CMeshBuffer ()
 Destructor.
virtual video::IVertexDescriptorgetVertexDescriptor () const
virtual bool setVertexDescriptor (video::IVertexDescriptor *vertexDescriptor)
virtual bool addVertexBuffer (IVertexBuffer *vertexBuffer)
virtual IVertexBuffergetVertexBuffer (u32 id=0) const
virtual u32 getVertexBufferCount () const
virtual void removeVertexBuffer (u32 id)
virtual bool setVertexBuffer (IVertexBuffer *vertexBuffer, u32 id=0)
virtual IIndexBuffergetIndexBuffer () const
virtual bool setIndexBuffer (IIndexBuffer *indexBuffer)
virtual const video::SMaterialgetMaterial () const
 Get material of this meshbuffer.
virtual video::SMaterialgetMaterial ()
 Get material of this meshbuffer.
virtual video::E_VERTEX_TYPE getVertexType () const
virtual const core::aabbox3d< f32 > & getBoundingBox () const
 Get the axis aligned bounding box.
virtual core::aabbox3d< f32 > & getBoundingBox ()
 Get the axis aligned bounding box.
virtual void boundingBoxNeedsRecalculated ()
 Call this after changing the positions of any vertex.
virtual void recalculateBoundingBox ()
 Recalculate the bounding box.
virtual void append (IVertexBuffer *vertexBuffer, u32 vertexBufferID, IIndexBuffer *indexBuffer)
 Append the vertices and indices to the current buffer.
virtual void append (IMeshBuffer *meshBuffer)
 Append the meshbuffer to the current buffer.
virtual E_HARDWARE_MAPPING getHardwareMappingHint_Vertex (u32 id=0) const
 get the current hardware mapping hint
virtual E_HARDWARE_MAPPING getHardwareMappingHint_Index () const
 get the current hardware mapping hint
virtual void setHardwareMappingHint (E_HARDWARE_MAPPING pMappingHint, E_BUFFER_TYPE type=EBT_VERTEX_AND_INDEX, u32 id=0)
 set the hardware mapping hint, for driver
virtual void setDirty (E_BUFFER_TYPE type=EBT_VERTEX_AND_INDEX, u32 id=0)
 flags the mesh as changed, reloads hardware buffers
virtual u32 getChangedID_Vertex (u32 id=0) const
 Get the currently used ID for identification of changes.
virtual u32 getChangedID_Index () const
 Get the currently used ID for identification of changes.
virtual core::matrix4getTransformation ()
virtual void setUseForHardwareInstancing (bool b)
virtual bool useForHardwareInstancing ()
Public Member Functions inherited from irr::scene::IMeshBuffer
 IMeshBuffer (video::IVertexDescriptor *vertexDescriptor)
bool isVertexBufferCompatible () const
 Inform if stored vertex buffers have the same vertex descriptors.
u32 getPrimitiveCount () const
 Get primitive count.
E_PRIMITIVE_TYPE getPrimitiveType () const
 Get primitive type.
void setPrimitiveType (E_PRIMITIVE_TYPE primitiveType)
 Set primitive type.
Public Member Functions inherited from irr::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 irr::IReferenceCounted
void setDebugName (const c8 *newName)
 Sets the debug name of the object.
Protected Attributes inherited from irr::scene::IMeshBuffer
video::IVertexDescriptorVertexDescriptor
 Vertex descriptor.
bool VertexBufferCompatible
core::array< scene::IVertexBuffer * > VertexBuffer
 Vertex buffer array.
scene::IIndexBufferIndexBuffer
 Index buffer.
E_PRIMITIVE_TYPE PrimitiveType
video::SMaterial Material
 Material.
bool BoundingBoxNeedsRecalculated
core::aabbox3d< f32BoundingBox
 Bounding box.
core::matrix4 Transformation
bool UseForHardwareInstancing

Detailed Description

template<class T>
class irr::scene::CMeshBuffer< T >

Implementation of the IMeshBuffer interface.

Member Function Documentation

◆ addVertexBuffer()

template<class T>
virtual bool irr::scene::CMeshBuffer< T >::addVertexBuffer ( IVertexBuffer * vertexBuffer)
inlinevirtual

◆ append() [1/2]

template<class T>
virtual void irr::scene::CMeshBuffer< T >::append ( IMeshBuffer * meshBuffer)
inlinevirtual

Append the meshbuffer to the current buffer.

Only works for compatible types, i.e. either the same type or the main buffer is of standard type. Otherwise, behavior is undefined.

Parameters
otherMeshbuffer to be appended to this one.

Implements irr::scene::IMeshBuffer.

◆ append() [2/2]

template<class T>
virtual void irr::scene::CMeshBuffer< T >::append ( IVertexBuffer * vertexBuffer,
u32 vertexBufferID,
IIndexBuffer * indexBuffer )
inlinevirtual

Append the vertices and indices to the current buffer.

Only works for compatible types, i.e. either the same type or the main buffer is of standard type. Otherwise, behavior is undefined.

Implements irr::scene::IMeshBuffer.

◆ boundingBoxNeedsRecalculated()

template<class T>
virtual void irr::scene::CMeshBuffer< T >::boundingBoxNeedsRecalculated ( )
inlinevirtual

Call this after changing the positions of any vertex.

Implements irr::scene::IMeshBuffer.

◆ getBoundingBox() [1/2]

template<class T>
virtual core::aabbox3d< f32 > & irr::scene::CMeshBuffer< T >::getBoundingBox ( )
inlinevirtual

Get the axis aligned bounding box.

Returns
Axis aligned bounding box of this buffer.

Implements irr::scene::IMeshBuffer.

◆ getBoundingBox() [2/2]

template<class T>
virtual const core::aabbox3d< f32 > & irr::scene::CMeshBuffer< T >::getBoundingBox ( ) const
inlinevirtual

Get the axis aligned bounding box.

Returns
Axis aligned bounding box of this buffer.

Implements irr::scene::IMeshBuffer.

◆ getChangedID_Index()

template<class T>
virtual u32 irr::scene::CMeshBuffer< T >::getChangedID_Index ( ) const
inlinevirtual

Get the currently used ID for identification of changes.

This shouldn't be used for anything outside the VideoDriver.

Implements irr::scene::IMeshBuffer.

◆ getChangedID_Vertex()

template<class T>
virtual u32 irr::scene::CMeshBuffer< T >::getChangedID_Vertex ( u32 id = 0) const
inlinevirtual

Get the currently used ID for identification of changes.

This shouldn't be used for anything outside the VideoDriver.

Implements irr::scene::IMeshBuffer.

◆ getHardwareMappingHint_Index()

template<class T>
virtual E_HARDWARE_MAPPING irr::scene::CMeshBuffer< T >::getHardwareMappingHint_Index ( ) const
inlinevirtual

get the current hardware mapping hint

Implements irr::scene::IMeshBuffer.

◆ getHardwareMappingHint_Vertex()

template<class T>
virtual E_HARDWARE_MAPPING irr::scene::CMeshBuffer< T >::getHardwareMappingHint_Vertex ( u32 id = 0) const
inlinevirtual

get the current hardware mapping hint

Implements irr::scene::IMeshBuffer.

◆ getIndexBuffer()

template<class T>
virtual IIndexBuffer * irr::scene::CMeshBuffer< T >::getIndexBuffer ( ) const
inlinevirtual

◆ getMaterial() [1/2]

template<class T>
virtual video::SMaterial & irr::scene::CMeshBuffer< T >::getMaterial ( )
inlinevirtual

Get material of this meshbuffer.

Returns
Material of this buffer

Implements irr::scene::IMeshBuffer.

◆ getMaterial() [2/2]

template<class T>
virtual const video::SMaterial & irr::scene::CMeshBuffer< T >::getMaterial ( ) const
inlinevirtual

Get material of this meshbuffer.

Returns
Material of this buffer

Implements irr::scene::IMeshBuffer.

◆ getTransformation()

template<class T>
virtual core::matrix4 & irr::scene::CMeshBuffer< T >::getTransformation ( )
inlinevirtual

◆ getVertexBuffer()

template<class T>
virtual IVertexBuffer * irr::scene::CMeshBuffer< T >::getVertexBuffer ( u32 id = 0) const
inlinevirtual

◆ getVertexBufferCount()

template<class T>
virtual u32 irr::scene::CMeshBuffer< T >::getVertexBufferCount ( ) const
inlinevirtual

◆ getVertexDescriptor()

template<class T>
virtual video::IVertexDescriptor * irr::scene::CMeshBuffer< T >::getVertexDescriptor ( ) const
inlinevirtual

◆ getVertexType()

template<class T>
virtual video::E_VERTEX_TYPE irr::scene::CMeshBuffer< T >::getVertexType ( ) const
inlinevirtual

◆ recalculateBoundingBox()

template<class T>
virtual void irr::scene::CMeshBuffer< T >::recalculateBoundingBox ( )
inlinevirtual

Recalculate the bounding box.

should be called if the mesh changed.

Implements irr::scene::IMeshBuffer.

◆ removeVertexBuffer()

template<class T>
virtual void irr::scene::CMeshBuffer< T >::removeVertexBuffer ( u32 id)
inlinevirtual

◆ setDirty()

template<class T>
virtual void irr::scene::CMeshBuffer< T >::setDirty ( E_BUFFER_TYPE type = EBT_VERTEX_AND_INDEX,
u32 id = 0 )
inlinevirtual

flags the mesh as changed, reloads hardware buffers

Implements irr::scene::IMeshBuffer.

◆ setHardwareMappingHint()

template<class T>
virtual void irr::scene::CMeshBuffer< T >::setHardwareMappingHint ( E_HARDWARE_MAPPING pMappingHint,
E_BUFFER_TYPE type = EBT_VERTEX_AND_INDEX,
u32 id = 0 )
inlinevirtual

set the hardware mapping hint, for driver

Implements irr::scene::IMeshBuffer.

◆ setIndexBuffer()

template<class T>
virtual bool irr::scene::CMeshBuffer< T >::setIndexBuffer ( IIndexBuffer * indexBuffer)
inlinevirtual

◆ setUseForHardwareInstancing()

template<class T>
virtual void irr::scene::CMeshBuffer< T >::setUseForHardwareInstancing ( bool b)
inlinevirtual

◆ setVertexBuffer()

template<class T>
virtual bool irr::scene::CMeshBuffer< T >::setVertexBuffer ( IVertexBuffer * vertexBuffer,
u32 id = 0 )
inlinevirtual

◆ setVertexDescriptor()

template<class T>
virtual bool irr::scene::CMeshBuffer< T >::setVertexDescriptor ( video::IVertexDescriptor * vertexDescriptor)
inlinevirtual

◆ useForHardwareInstancing()

template<class T>
virtual bool irr::scene::CMeshBuffer< T >::useForHardwareInstancing ( )
inlinevirtual

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