]> git.lizzy.rs Git - irrlicht.git/blob - include/IMeshSceneNode.h
Unify quad drawing
[irrlicht.git] / include / IMeshSceneNode.h
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
4 \r
5 #ifndef __I_MESH_SCENE_NODE_H_INCLUDED__\r
6 #define __I_MESH_SCENE_NODE_H_INCLUDED__\r
7 \r
8 #include "ISceneNode.h"\r
9 \r
10 namespace irr\r
11 {\r
12 namespace scene\r
13 {\r
14 \r
15 class IMesh;\r
16 \r
17 \r
18 //! A scene node displaying a static mesh\r
19 class IMeshSceneNode : public ISceneNode\r
20 {\r
21 public:\r
22 \r
23         //! Constructor\r
24         /** Use setMesh() to set the mesh to display.\r
25         */\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
31 \r
32         //! Sets a new mesh to display\r
33         /** \param mesh Mesh to display. */\r
34         virtual void setMesh(IMesh* mesh) = 0;\r
35 \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
39 \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
45 \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
50 };\r
51 \r
52 } // end namespace scene\r
53 } // end namespace irr\r
54 \r
55 \r
56 #endif\r
57 \r