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 irrlicht.h 4 5 #ifndef __I_DUMMY_TRANSFORMATION_SCENE_NODE_H_INCLUDED__ 6 #define __I_DUMMY_TRANSFORMATION_SCENE_NODE_H_INCLUDED__ 7 8 #include "ISceneNode.h" 9 10 namespace irr 11 { 12 namespace scene 13 { 14 15 //! Dummy scene node for adding additional transformations to the scene graph. 16 /** This scene node does not render itself, and does not respond to set/getPosition, 17 set/getRotation and set/getScale. Its just a simple scene node that takes a 18 matrix as relative transformation, making it possible to insert any transformation 19 anywhere into the scene graph. 20 This scene node is for example used by the IAnimatedMeshSceneNode for emulating 21 joint scene nodes when playing skeletal animations. 22 */ 23 class IDummyTransformationSceneNode : public ISceneNode 24 { 25 public: 26 27 //! Constructor IDummyTransformationSceneNode(ISceneNode * parent,ISceneManager * mgr,s32 id)28 IDummyTransformationSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id) 29 : ISceneNode(parent, mgr, id) {} 30 31 //! Returns a reference to the current relative transformation matrix. 32 /** This is the matrix, this scene node uses instead of scale, translation 33 and rotation. */ 34 virtual core::matrix4& getRelativeTransformationMatrix() = 0; 35 }; 36 37 } // end namespace scene 38 } // end namespace irr 39 40 41 #endif 42 43