Irrlicht 3D Engine
IMeshSceneNode.h
Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_MESH_SCENE_NODE_H_INCLUDED__
00006 #define __I_MESH_SCENE_NODE_H_INCLUDED__
00007 
00008 #include "ISceneNode.h"
00009 
00010 namespace irr
00011 {
00012 namespace scene
00013 {
00014 
00015 class IShadowVolumeSceneNode;
00016 class IMesh;
00017 
00018 
00020 class IMeshSceneNode : public ISceneNode
00021 {
00022 public:
00023 
00025 
00027     IMeshSceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id,
00028             const core::vector3df& position = core::vector3df(0,0,0),
00029             const core::vector3df& rotation = core::vector3df(0,0,0),
00030             const core::vector3df& scale = core::vector3df(1,1,1))
00031         : ISceneNode(parent, mgr, id, position, rotation, scale) {}
00032 
00034 
00035     virtual void setMesh(IMesh* mesh) = 0;
00036 
00038 
00039     virtual IMesh* getMesh(void) = 0;
00040 
00042 
00059     virtual IShadowVolumeSceneNode* addShadowVolumeSceneNode(const IMesh* shadowMesh=0,
00060         s32 id=-1, bool zfailmethod=true, f32 infinity=1000.0f) = 0;
00061 
00063 
00066     virtual void setReadOnlyMaterials(bool readonly) = 0;
00067 
00069 
00071     virtual bool isReadOnlyMaterials() const = 0;
00072 };
00073 
00074 } // end namespace scene
00075 } // end namespace irr
00076 
00077 
00078 #endif
00079