Nirtcpp 2.1.0
Nirtcpp is a high-performance c++ graphics engine.
Loading...
Searching...
No Matches
IBoneSceneNode.hpp
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in nirtcpp/nirtcpp.hpp
4
5#ifndef NIRT_I_BONE_SCENE_NODE_HPP_INCLUDED
6#define NIRT_I_BONE_SCENE_NODE_HPP_INCLUDED
7
8#include <nirtcpp/core/engine/ISceneNode.hpp>
9
10namespace nirt
11{
12namespace scene
13{
14
31
33 {
36
39
40 EBSS_COUNT
41 };
42
44 const c8* const BoneAnimationModeNames[] =
45 {
46 "automatic",
47 "animated",
48 "unanimated",
49 0,
50 };
51
52
54
56 {
57 public:
58
59 IBoneSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id=-1) :
60 ISceneNode(parent, mgr, id),positionHint(-1),scaleHint(-1),rotationHint(-1) { }
61
63
64 NIRT_DEPRECATED virtual const c8* getBoneName() const { return getName(); }
65
67 virtual u32 getBoneIndex() const = 0;
68
70
72
75
77 virtual const core::aabbox3d<f32>& getBoundingBox() const override = 0;
78
80 //virtual core::matrix4 getRelativeTransformation() const = 0;
81
83 virtual void OnAnimate(u32 timeMs) override =0;
84
86
87 virtual void render() override { }
88
90 virtual void setSkinningSpace( E_BONE_SKINNING_SPACE space ) =0;
91
94
97
98 s32 positionHint;
99 s32 scaleHint;
100 s32 rotationHint;
101 };
102
103
104} // end namespace scene
105} // end namespace nirt
106
107#endif
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.hpp:22
Interface for bones used for skeletal animation.
Definition IBoneSceneNode.hpp:56
virtual void updateAbsolutePositionOfAllChildren()=0
Updates the absolute position based on the relative and the parents position.
virtual const core::aabbox3d< f32 > & getBoundingBox() const override=0
Get the axis aligned bounding box of this node.
virtual u32 getBoneIndex() const =0
Get the index of the bone.
virtual E_BONE_ANIMATION_MODE getAnimationMode() const =0
Gets the current animation mode of the bone.
virtual NIRT_DEPRECATED const c8 * getBoneName() const
Get the name of the bone.
Definition IBoneSceneNode.hpp:64
virtual void render() override
The render method.
Definition IBoneSceneNode.hpp:87
virtual void setSkinningSpace(E_BONE_SKINNING_SPACE space)=0
How the relative transformation of the bone is used.
virtual E_BONE_SKINNING_SPACE getSkinningSpace() const =0
How the relative transformation of the bone is used.
virtual void OnAnimate(u32 timeMs) override=0
Returns the relative transformation of the scene node.
virtual bool setAnimationMode(E_BONE_ANIMATION_MODE mode)=0
Sets the animation mode of the bone.
The Scene Manager manages scene nodes, mesh resources, cameras and all the other stuff.
Definition ISceneManager.hpp:160
Scene node interface.
Definition ISceneNode.hpp:43
virtual const c8 * getName() const
Returns the name of the node.
Definition ISceneNode.hpp:149
const c8 *const BoneAnimationModeNames[]
Names for bone animation modes.
Definition IBoneSceneNode.hpp:44
E_BONE_ANIMATION_MODE
Enumeration for different bone animation modes.
Definition IBoneSceneNode.hpp:17
@ EBAM_COUNT
Not an animation mode, just here to count the available modes.
Definition IBoneSceneNode.hpp:28
@ EBAM_AUTOMATIC
The bone is usually animated, unless it's parent is not animated.
Definition IBoneSceneNode.hpp:19
@ EBAM_ANIMATED
The bone is animated by the skin, if it's parent is not animated then animation will resume from this...
Definition IBoneSceneNode.hpp:22
@ EBAM_UNANIMATED
The bone is not animated by the skin.
Definition IBoneSceneNode.hpp:25
E_BONE_SKINNING_SPACE
Definition IBoneSceneNode.hpp:33
@ EBSS_LOCAL
local skinning, standard
Definition IBoneSceneNode.hpp:35
@ EBSS_GLOBAL
global skinning
Definition IBoneSceneNode.hpp:38
As of Nirtcpp 1.6, position2d is a synonym for vector2d.
Definition vector3d.hpp:11
signed int s32
32 bit signed variable.
Definition irrTypes.hpp:72
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.hpp:64
char c8
8 bit character variable.
Definition irrTypes.hpp:37

Nirtcpp    @cppfx.xyz

Esvcpp    esv::print