1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __I_MESH_SCENE_NODE_H_INCLUDED__
\r
6 #define __I_MESH_SCENE_NODE_H_INCLUDED__
\r
8 #include "ISceneNode.h"
\r
18 //! A scene node displaying a static mesh
\r
19 class IMeshSceneNode : public ISceneNode
\r
24 /** Use setMesh() to set the mesh to display.
\r
26 IMeshSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
\r
27 const core::vector3df& position = core::vector3df(0,0,0),
\r
28 const core::vector3df& rotation = core::vector3df(0,0,0),
\r
29 const core::vector3df& scale = core::vector3df(1,1,1))
\r
30 : ISceneNode(parent, mgr, id, position, rotation, scale) {}
\r
32 //! Sets a new mesh to display
\r
33 /** \param mesh Mesh to display. */
\r
34 virtual void setMesh(IMesh* mesh) = 0;
\r
36 //! Get the currently defined mesh for display.
\r
37 /** \return Pointer to mesh which is displayed by this node. */
\r
38 virtual IMesh* getMesh(void) = 0;
\r
40 //! Sets if the scene node should not copy the materials of the mesh but use them in a read only style.
\r
41 /** In this way it is possible to change the materials of a mesh
\r
42 causing all mesh scene nodes referencing this mesh to change, too.
\r
43 \param readonly Flag if the materials shall be read-only. */
\r
44 virtual void setReadOnlyMaterials(bool readonly) = 0;
\r
46 //! Check if the scene node should not copy the materials of the mesh but use them in a read only style
\r
47 /** This flag can be set by setReadOnlyMaterials().
\r
48 \return Whether the materials are read-only. */
\r
49 virtual bool isReadOnlyMaterials() const = 0;
\r
52 } // end namespace scene
\r
53 } // end namespace irr
\r