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

Interface for an animated mesh. More...

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

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

Public Member Functions

virtual u32 getFrameCount () const =0
 Gets the frame count of the animated mesh.
 
virtual f32 getAnimationSpeed () const =0
 Gets the animation speed of the animated mesh.
 
virtual void setAnimationSpeed (f32 fps)=0
 Sets the animation speed of the animated mesh.
 
virtual IMeshgetMesh (s32 frame, s32 detailLevel=255, s32 startFrameLoop=-1, s32 endFrameLoop=-1)=0
 Returns the IMesh interface for a frame.
 
virtual E_ANIMATED_MESH_TYPE getMeshType () const override
 Returns the type of the animated mesh.
 
- Public Member Functions inherited from nirt::scene::IMesh
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.
 
- 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

Interface for an animated mesh.

There are already simple implementations of this interface available so you don't have to implement this interface on your own if you need to: You might want to use nirt::scene::SAnimatedMesh, nirt::scene::SMesh, nirt::scene::SMeshBuffer etc.

Member Function Documentation

◆ getAnimationSpeed()

virtual f32 nirt::scene::IAnimatedMesh::getAnimationSpeed ( ) const
pure virtual

Gets the animation speed of the animated mesh.

Returns
The number of frames per second to play the animation with by default. If the amount is 0, it is a static, non animated mesh.

Implemented in nirt::scene::SAnimatedMesh.

◆ getFrameCount()

virtual u32 nirt::scene::IAnimatedMesh::getFrameCount ( ) const
pure virtual

Gets the frame count of the animated mesh.

Note that the play-time is usually getFrameCount()-1 as it stops as soon as the last frame-key is reached.

Returns
The amount of frames. If the amount is 1, it is a static, non animated mesh.

Implemented in nirt::scene::SAnimatedMesh.

◆ getMesh()

virtual IMesh * nirt::scene::IAnimatedMesh::getMesh ( s32  frame,
s32  detailLevel = 255,
s32  startFrameLoop = -1,
s32  endFrameLoop = -1 
)
pure virtual

Returns the IMesh interface for a frame.

Parameters
frameFrame number as zero based index. The maximum frame number is getFrameCount() - 1;
detailLevelLevel of detail. 0 is the lowest, 255 the highest level of detail. Most meshes will ignore the detail level.
startFrameLoopBecause some animated meshes (.MD2) are blended between 2 static frames, and maybe animated in a loop, the startFrameLoop and the endFrameLoop have to be defined, to prevent the animation to be blended between frames which are outside of this loop. If startFrameLoop and endFrameLoop are both -1, they are ignored.
endFrameLoopsee startFrameLoop.
Returns
Returns the animated mesh based on a detail level.

Implemented in nirt::scene::SAnimatedMesh.

◆ getMeshType()

virtual E_ANIMATED_MESH_TYPE nirt::scene::IAnimatedMesh::getMeshType ( ) const
inlineoverridevirtual

Returns the type of the animated mesh.

In most cases it is not necessary to use this method. This is useful for making a safe downcast. For example, if getMeshType() returns EAMT_MD2 it's safe to cast the IAnimatedMesh to IAnimatedMeshMD2.

Returns
Type of the mesh.

Reimplemented from nirt::scene::IMesh.

Reimplemented in nirt::scene::SAnimatedMesh.

◆ setAnimationSpeed()

virtual void nirt::scene::IAnimatedMesh::setAnimationSpeed ( f32  fps)
pure virtual

Sets the animation speed of the animated mesh.

Parameters
fpsNumber of frames per second to play the animation with by default. If the amount is 0, it is not animated. The actual speed is set in the scene node the mesh is instantiated in.

Implemented in nirt::scene::SAnimatedMesh.


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

Nirtcpp    @cppfx.xyz

Utxcpp    utx::print