aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/include/IMeshSceneNode.h
diff options
context:
space:
mode:
authorDavid Walter Seikel2016-03-28 22:28:34 +1000
committerDavid Walter Seikel2016-03-28 22:28:34 +1000
commit7028cbe09c688437910a25623098762bf0fa592d (patch)
tree10b5af58277d9880380c2251f109325542c4e6eb /src/others/irrlicht-1.8.1/include/IMeshSceneNode.h
parentMove lemon to the src/others directory. (diff)
downloadSledjHamr-7028cbe09c688437910a25623098762bf0fa592d.zip
SledjHamr-7028cbe09c688437910a25623098762bf0fa592d.tar.gz
SledjHamr-7028cbe09c688437910a25623098762bf0fa592d.tar.bz2
SledjHamr-7028cbe09c688437910a25623098762bf0fa592d.tar.xz
Move Irrlicht to src/others.
Diffstat (limited to 'src/others/irrlicht-1.8.1/include/IMeshSceneNode.h')
-rw-r--r--src/others/irrlicht-1.8.1/include/IMeshSceneNode.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/include/IMeshSceneNode.h b/src/others/irrlicht-1.8.1/include/IMeshSceneNode.h
new file mode 100644
index 0000000..fdffc03
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/include/IMeshSceneNode.h
@@ -0,0 +1,79 @@
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_MESH_SCENE_NODE_H_INCLUDED__
6#define __I_MESH_SCENE_NODE_H_INCLUDED__
7
8#include "ISceneNode.h"
9
10namespace irr
11{
12namespace scene
13{
14
15class IShadowVolumeSceneNode;
16class IMesh;
17
18
19//! A scene node displaying a static mesh
20class IMeshSceneNode : public ISceneNode
21{
22public:
23
24 //! Constructor
25 /** Use setMesh() to set the mesh to display.
26 */
27 IMeshSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
28 const core::vector3df& position = core::vector3df(0,0,0),
29 const core::vector3df& rotation = core::vector3df(0,0,0),
30 const core::vector3df& scale = core::vector3df(1,1,1))
31 : ISceneNode(parent, mgr, id, position, rotation, scale) {}
32
33 //! Sets a new mesh to display
34 /** \param mesh Mesh to display. */
35 virtual void setMesh(IMesh* mesh) = 0;
36
37 //! Get the currently defined mesh for display.
38 /** \return Pointer to mesh which is displayed by this node. */
39 virtual IMesh* getMesh(void) = 0;
40
41 //! Creates shadow volume scene node as child of this node.
42 /** The shadow can be rendered using the ZPass or the zfail
43 method. ZPass is a little bit faster because the shadow volume
44 creation is easier, but with this method there occur ugly
45 looking artifacs when the camera is inside the shadow volume.
46 These error do not occur with the ZFail method.
47 \param shadowMesh: Optional custom mesh for shadow volume.
48 \param id: Id of the shadow scene node. This id can be used to
49 identify the node later.
50 \param zfailmethod: If set to true, the shadow will use the
51 zfail method, if not, zpass is used.
52 \param infinity: Value used by the shadow volume algorithm to
53 scale the shadow volume (for zfail shadow volume we support only
54 finite shadows, so camera zfar must be larger than shadow back cap,
55 which is depend on infinity parameter).
56 \return Pointer to the created shadow scene node. This pointer
57 should not be dropped. See IReferenceCounted::drop() for more
58 information. */
59 virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,
60 s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f) = 0;
61
62 //! Sets if the scene node should not copy the materials of the mesh but use them in a read only style.
63 /** In this way it is possible to change the materials of a mesh
64 causing all mesh scene nodes referencing this mesh to change, too.
65 \param readonly Flag if the materials shall be read-only. */
66 virtual void setReadOnlyMaterials(bool readonly) = 0;
67
68 //! Check if the scene node should not copy the materials of the mesh but use them in a read only style
69 /** This flag can be set by setReadOnlyMaterials().
70 \return Whether the materials are read-only. */
71 virtual bool isReadOnlyMaterials() const = 0;
72};
73
74} // end namespace scene
75} // end namespace irr
76
77
78#endif
79