Saga3D API Documentation  1.0-RC4
ISceneManager.h
Go to the documentation of this file.
1 
2 #ifndef __I_SCENE_MANAGER_H_INCLUDED__
3 #define __I_SCENE_MANAGER_H_INCLUDED__
4 
5 #include "SColor.h"
6 #include "IEventReceiver.h"
7 #include "ESceneNodeTypes.h"
9 #include "ISceneNode.h"
10 #include "IMesh.h"
11 #include "SRenderPass.h"
12 #include "SPipeline.h"
13 #include <vector>
14 #include <unordered_map>
15 
16 namespace saga
17 {
18 namespace video
19 {
20  class IVideoDriver;
21  class ITexture;
22 } // namespace video
23 
24 namespace scene
25 {
26  class IAnimatedMesh;
27  class ISkinnedMesh;
28  class IAnimatedMeshSceneNode;
29  class ICameraSceneNode;
30  class IMeshBuffer;
31  class IMeshLoader;
32  class IMeshSceneNode;
33  // class ISceneNodeAnimator;
34  // class ISceneNodeAnimatorCollisionResponse;
35  // class ISceneNodeAnimatorFactory;
36  // class ISceneNodeFactory;
37 
39  {
40  public:
41  using SceneNodeList = std::vector<std::shared_ptr<ISceneNode>>;
42  using PassSceneNodeList = std::unordered_map<video::RenderPassHandle, SceneNodeList>;
43 
44  virtual void resetID() = 0;
45  virtual ID getMeshID() = 0;
46  virtual ID getTextureID() = 0;
47  virtual ID getNodeID() = 0;
48 
49  virtual void onEvent(const SDL_Event& event) override {}
50 
52  /*
53  \param fileName: path to mesh file
54  */
55  virtual const std::shared_ptr<IMesh>& getMesh(const std::string& fileName) = 0;
56 
57  virtual const std::shared_ptr<IMesh>& getMesh(void* data, const std::size_t size,
58  const std::string& extension) = 0;
59 
60  virtual const std::shared_ptr<IMesh>& getMesh(const ID id) const = 0;
61 
62  virtual void removeMesh(const std::shared_ptr<IMesh>& mesh) = 0;
63 
64  virtual void removeMesh(const ID id) = 0;
65 
67 
77  virtual std::shared_ptr<ISceneNode> createSceneNode(
78  const std::shared_ptr<IMesh>& mesh, const std::shared_ptr<ISceneNode>& parent = nullptr,
79  const glm::vec3& position = glm::vec3(0,0,0),
80  const glm::vec3& rotation = glm::vec3(0,0,0),
81  const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f)) = 0;
82 
83  virtual void removeNode(const ID id) = 0;
84 
85  virtual void removeNode(const std::shared_ptr<ISceneNode>& node) = 0;
86 
88 
92 
95  virtual const std::shared_ptr<video::IVideoDriver>& getVideoDriver() const = 0;
96 
97  virtual void registerNode(const std::shared_ptr<ISceneNode>& node, video::RenderPassHandle pass) = 0;
98 
99  virtual const std::shared_ptr<ISceneNode>& getNode(const ID id) const = 0;
100 
101  virtual void unregisterNode(const std::shared_ptr<ISceneNode>& node, video::RenderPassHandle pass) = 0;
102 
103  virtual bool isEmptyPass(video::RenderPassHandle pass) const = 0;
104 
105  virtual void clearRegisteredNodes() = 0;
106 
107  virtual SceneNodeList& getNodeList(const video::RenderPassHandle pass) = 0;
108 
109  virtual PassSceneNodeList& getNodeList() = 0;
110 
112 
122  // virtual IMeshSceneNode* addCubeSceneNode(float size=10.0f, ISceneNode* parent= 0, std::int32_t id=-1,
123  // const glm::vec3& position = glm::vec3(0,0,0),
124  // const glm::vec3& rotation = glm::vec3(0,0,0),
125  // const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f)) = 0;
126 
128 
142  // virtual IMeshSceneNode* addSphereSceneNode(float radius=5.0f, std::int32_t polyCount=16,
143  // ISceneNode* parent= 0, std::int32_t id=-1,
144  // const glm::vec3& position = glm::vec3(0,0,0),
145  // const glm::vec3& rotation = glm::vec3(0,0,0),
146  // const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f)) = 0;
147 
149 
159  // virtual IAnimatedMeshSceneNode* addAnimatedMeshSceneNode(IAnimatedMesh* mesh,
160  // ISceneNode* parent= 0, std::int32_t id=-1,
161  // const glm::vec3& position = glm::vec3(0,0,0),
162  // const glm::vec3& rotation = glm::vec3(0,0,0),
163  // const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f),
164  // bool alsoAddIfMeshPointerZero=false) = 0;
165 
167 
181  // virtual ISceneNode* addWaterSurfaceSceneNode(IMesh* mesh,
182  // float waveHeight=2.0f, float waveSpeed=300.0f, float waveLength=10.0f,
183  // ISceneNode* parent= 0, std::int32_t id=-1,
184  // const glm::vec3& position = glm::vec3(0,0,0),
185  // const glm::vec3& rotation = glm::vec3(0,0,0),
186  // const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f)) = 0;
187 
188 
190 
202  // virtual IOctreeSceneNode* addOctreeSceneNode(IAnimatedMesh* mesh, ISceneNode* parent= 0,
203  // std::int32_t id=-1, std::int32_t minimalPolysPerNode=512, bool alsoAddIfMeshPointerZero=false) = 0;
204 
206 
218  // virtual IOctreeSceneNode* addOctreeSceneNode(IMesh* mesh, ISceneNode* parent= 0,
219  // std::int32_t id=-1, std::int32_t minimalPolysPerNode=256, bool alsoAddIfMeshPointerZero=false) = 0;
220 
222 
238  virtual const std::shared_ptr<ICameraSceneNode>& addCameraSceneNode(
239  const std::shared_ptr<ISceneNode>& parent = nullptr,
240  const glm::vec3& position = glm::vec3(0,0,0),
241  const glm::vec3& lookAt = glm::vec3(0,0,-1),
242  bool makeActive = true) = 0;
243 
245 
261  // virtual ICameraSceneNode* addCameraSceneNodeMaya(ISceneNode* parent= 0,
262  // float rotateSpeed=-1500.f, float zoomSpeed=200.f,
263  // float translationSpeed=1500.f, std::int32_t id=-1, float distance=70.f,
264  // bool makeActive=true) = 0;
265 
267 
302  virtual const std::shared_ptr<ICameraSceneNode>& addCameraSceneNodeFPS(
303  const std::shared_ptr<ISceneNode>& parent = nullptr,
304  float moveSpeed = 0.5f, float rotateSpeed = 1.f,
305  bool makeActive = true) = 0;
306 
308 
320  // virtual ILightSceneNode* addLightSceneNode(ISceneNode* parent = 0,
321  // const glm::vec3& position = glm::vec3(0,0,0),
322  // video::SColorf color = video::SColorf(1.0f, 1.0f, 1.0f),
323  // float radius=100.0f, std::int32_t id=-1) = 0;
324 
326 
344  // virtual IBillboardSceneNode* addBillboardSceneNode(ISceneNode* parent = 0,
345  // const glm::vec2& size = glm::vec2(10.0f, 10.0f),
346  // const glm::vec3& position = glm::vec3(0,0,0), std::int32_t id=-1,
347  // video::SColor colorTop = 0xFFFFFFFF, video::SColor colorBottom = 0xFFFFFFFF) = 0;
348 
350 
364  // virtual ISceneNode* addSkyBoxSceneNode(video::ITexture* top, video::ITexture* bottom,
365  // video::ITexture* left, video::ITexture* right, video::ITexture* front,
366  // video::ITexture* back, ISceneNode* parent = 0, std::int32_t id=-1) = 0;
367 
369 
386  // virtual ISceneNode* addSkyDomeSceneNode(video::ITexture* texture,
387  // std::uint32_t horiRes=16, std::uint32_t vertRes=8,
388  // float texturePercentage= 0.9, float spherePercentage=2.0,float radius = 1000.f,
389  // ISceneNode* parent= 0, std::int32_t id=-1) = 0;
390 
392 
404  // virtual IParticleSystemSceneNode* addParticleSystemSceneNode(
405  // bool withDefaultEmitter=true, ISceneNode* parent= 0, std::int32_t id=-1,
406  // const glm::vec3& position = glm::vec3(0,0,0),
407  // const glm::vec3& rotation = glm::vec3(0,0,0),
408  // const glm::vec3& scale = glm::vec3(1.0f, 1.0f, 1.0f)) = 0;
409 
411 
466  // virtual ITerrainSceneNode* addTerrainSceneNode(
467  // const std::string& heightMapFileName,
468  // ISceneNode* parent= 0, std::int32_t id=-1,
469  // const glm::vec3& position = glm::vec3(0.0f,0.0f,0.0f),
470  // const glm::vec3& rotation = glm::vec3(0.0f,0.0f,0.0f),
471  // const glm::vec3& scale = glm::vec3(1.0f,1.0f,1.0f),
472  // video::SColor vertexColor = video::SColor(255,255,255,255),
473  // std::int32_t maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=E_TERRAIN_PATCH_SIZE::SIZE_17, std::int32_t smoothFactor= 0,
474  // bool addAlsoIfHeightmapEmpty = false) = 0;
475 
477 
504  // virtual ITerrainSceneNode* addTerrainSceneNode(
505  // io::IReadFile* heightMapFile,
506  // ISceneNode* parent= 0, std::int32_t id=-1,
507  // const glm::vec3& position = glm::vec3(0.0f,0.0f,0.0f),
508  // const glm::vec3& rotation = glm::vec3(0.0f,0.0f,0.0f),
509  // const glm::vec3& scale = glm::vec3(1.0f,1.0f,1.0f),
510  // video::SColor vertexColor = video::SColor(255,255,255,255),
511  // std::int32_t maxLOD=5, E_TERRAIN_PATCH_SIZE patchSize=E_TERRAIN_PATCH_SIZE::SIZE_17, std::int32_t smoothFactor= 0,
512  // bool addAlsoIfHeightmapEmpty = false) = 0;
513 
515 
519  // virtual ISceneNode* addEmptySceneNode(ISceneNode* parent= 0, std::int32_t id=-1) = 0;
520 
522 
528  // virtual IDummyTransformationSceneNode* addDummyTransformationSceneNode(
529  // ISceneNode* parent= 0, std::int32_t id=-1) = 0;
530 
532  // virtual ITextSceneNode* addTextSceneNode(gui::IGUIFont* font, const char* text,
533  // video::SColor color=video::SColor(100,255,255,255),
534  // ISceneNode* parent = 0, const glm::vec3& position = glm::vec3(0,0,0),
535  // std::int32_t id=-1) = 0;
536 
538 
549  // virtual IBillboardTextSceneNode* addBillboardTextSceneNode(gui::IGUIFont* font, const char* text,
550  // ISceneNode* parent = 0,
551  // const glm::vec2& size = glm::vec2(10.0f, 10.0f),
552  // const glm::vec3& position = glm::vec3(0,0,0), std::int32_t id=-1,
553  // video::SColor colorTop = 0xFFFFFFFF, video::SColor colorBottom = 0xFFFFFFFF) = 0;
554 
556 
582  // virtual IAnimatedMesh* addHillPlaneMesh(const std::string& name,
583  // const glm::vec2& tileSize, const glm::uvec2& tileCount,
584  // video::SMaterial* material = 0, float hillHeight = 0.0f,
585  // const glm::vec2& countHills = glm::vec2(0.0f, 0.0f),
586  // const glm::vec2& textureRepeatCount = glm::vec2(1.0f, 1.0f)) = 0;
587 
589 
611  // virtual IAnimatedMesh* addTerrainMesh(const std::string& meshname,
612  // video::IImage* texture, video::IImage* heightmap,
613  // const glm::vec2& stretchSize = glm::vec2(10.0f,10.0f),
614  // float maxHeight=200.0f,
615  // const glm::uvec2& defaultVertexBlockSize = glm::uvec2(64,64)) = 0;
616 
618 
629  // virtual IAnimatedMesh* addArrowMesh(const std::string& name,
630  // video::SColor vtxColorCylinder= 0xFFFFFFFF,
631  // video::SColor vtxColorCone= 0xFFFFFFFF,
632  // std::uint32_t tesselationCylinder=4, std::uint32_t tesselationCone=8,
633  // float height=1.f, float cylinderHeight= 0.6f,
634  // float widthCylinder= 0.05f, float widthCone= 0.3f) = 0;
635 
637 
643  // virtual IAnimatedMesh* addSphereMesh(const std::string& name,
644  // float radius=5.f, std::uint32_t polyCountX = 16,
645  // std::uint32_t polyCountY = 16) = 0;
646 
648 
654  virtual const std::shared_ptr<ISceneNode>& getRootSceneNode() const = 0;
655 
657 
664  // virtual ISceneNode* getSceneNodeFromId(std::int32_t id, ISceneNode* start= 0) = 0;
665 
667 
674  // virtual ISceneNode* getSceneNodeFromName(const char* name, ISceneNode* start= 0) = 0;
675 
677 
684  // virtual ISceneNode* getSceneNodeFromType(scene::E_SCENE_NODE_TYPE type, ISceneNode* start= 0) = 0;
685 
687 
692  // virtual void getSceneNodesFromType(E_SCENE_NODE_TYPE type,
693  // std::vector<scene::ISceneNode*>& outNodes,
694  // ISceneNode* start= 0) = 0;
695 
697 
699  virtual const std::shared_ptr<ICameraSceneNode>& getActiveCamera() const = 0;
700 
702 
704  virtual void setActiveCamera(const std::shared_ptr<ICameraSceneNode>& camera) = 0;
705 
707 
715  // virtual std::uint32_t registerNodeForRendering(ISceneNode* node,
716  // E_SCENE_NODE_RENDER_PASS pass = E_SCENE_NODE_RENDER_PASS::AUTOMATIC) = 0;
717 
719 
722  // virtual void clearAllRegisteredNodesForRendering() = 0;
723 
725 
726  virtual void animate(const video::RenderPassHandle pass = video::NULL_GPU_RESOURCE_HANDLE) = 0;
727 
729 
734  // virtual ISceneNodeAnimator* createRotationAnimator(const glm::vec3& rotationSpeed) = 0;
735 
737 
749  // virtual ISceneNodeAnimator* createFlyCircleAnimator(
750  // const glm::vec3& center=glm::vec3(0.f,0.f,0.f),
751  // float radius=100.f, float speed= 0.001f,
752  // const glm::vec3& direction=glm::vec3(0.f, 1.f, 0.f),
753  // float startPosition = 0.f,
754  // float radiusEllipsoid = 0.f) = 0;
755 
757 
769  // virtual ISceneNodeAnimator* createFlyStraightAnimator(const glm::vec3& startPoint,
770  // const glm::vec3& endPoint, std::uint32_t timeForWay, bool loop=false, bool pingpong = false) = 0;
771 
773 
782  // virtual ISceneNodeAnimator* createTextureAnimator(const std::vector<video::ITexture*>& textures,
783  // std::int32_t timePerFrame, bool loop=true) = 0;
784 
786 
791  // virtual ISceneNodeAnimator* createDeleteAnimator(std::uint32_t timeMs) = 0;
792 
794 
824  // virtual ISceneNodeAnimatorCollisionResponse* createCollisionResponseAnimator(
825  // ITriangleSelector* world, ISceneNode* sceneNode,
826  // const glm::vec3& ellipsoidRadius = glm::vec3(30,60,30),
827  // const glm::vec3& gravityPerSecond = glm::vec3(0,-10.0f,0),
828  // const glm::vec3& ellipsoidTranslation = glm::vec3(0,0,0),
829  // float slidingValue = 0.0005f) = 0;
830 
832 
840  // virtual ISceneNodeAnimator* createFollowSplineAnimator(std::int32_t startTime,
841  // const std::vector< glm::vec3 >& points,
842  // float speed = 1.0f, float tightness = 0.5f, bool loop=true, bool pingpong=false) = 0;
843 
845 
865  // virtual ITriangleSelector* createTriangleSelector(IMesh* mesh, ISceneNode* node, bool separateMeshbuffers=false) = 0;
866 
868 
874  // virtual ITriangleSelector* createTriangleSelector(const IMeshBuffer* meshBuffer, std::uint32_t materialIndex, ISceneNode* node) = 0;
875 
877 
882  // virtual ITriangleSelector* createTriangleSelector(IAnimatedMeshSceneNode* node, bool separateMeshbuffers=false) = 0;
883 
884 
886 
894  // virtual ITriangleSelector* createTriangleSelectorFromBoundingBox(ISceneNode* node) = 0;
895 
897 
919  // virtual ITriangleSelector* createOctreeTriangleSelector(IMesh* mesh,
920  // ISceneNode* node, std::int32_t minimalPolysPerNode=32) = 0;
921 
923 
946  // virtual ITriangleSelector* createOctreeTriangleSelector(IMeshBuffer* meshBuffer, std::uint32_t materialIndex,
947  // ISceneNode* node, std::int32_t minimalPolysPerNode=32) = 0;
948 
949  // //! //! Creates a Triangle Selector, optimized by an octree.
950  // /**
951  // ITriangleSelector* createOctTreeTriangleSelector(IMesh* mesh,
952  // ISceneNode* node, std::int32_t minimalPolysPerNode=32)
953  // {
954  // return createOctreeTriangleSelector(mesh, node, minimalPolysPerNode);
955  // }
956 
958 
965  // virtual IMetaTriangleSelector* createMetaTriangleSelector() = 0;
966 
968 
973  // virtual ITriangleSelector* createTerrainTriangleSelector(
974  // ITerrainSceneNode* node, std::int32_t LOD= 0) = 0;
975 
977 
983  // virtual void addExternalMeshLoader(IMeshLoader* externalLoader) = 0;
984 
986  // virtual std::uint32_t getMeshLoaderCount() const = 0;
987 
989 
992  // virtual IMeshLoader* getMeshLoader(std::uint32_t index) const = 0;
993 
995 
1001  // virtual void addExternalSceneLoader(ISceneLoader* externalLoader) = 0;
1002 
1004  // virtual std::uint32_t getSceneLoaderCount() const = 0;
1005 
1007 
1010  // virtual ISceneLoader* getSceneLoader(std::uint32_t index) const = 0;
1011 
1013 
1015  // virtual ISceneCollisionManager* getSceneCollisionManager() = 0;
1016 
1018 
1020  // virtual IMeshManipulator* getMeshManipulator() = 0;
1021 
1023 
1031  // virtual void addToDeletionQueue(ISceneNode* node) = 0;
1032 
1034 
1035  virtual void clear() = 0;
1036 
1038 
1040  // virtual ISceneNodeFactory* getDefaultSceneNodeFactory() = 0;
1041 
1043 
1045  // virtual void registerNodeFactory(ISceneNodeFactory* factoryToAdd) = 0;
1046 
1048  // virtual std::uint32_t getRegisteredSceneNodeFactoryCount() const = 0;
1049 
1051 
1053  // virtual ISceneNodeFactory* getSceneNodeFactory(std::uint32_t index) = 0;
1054 
1056 
1058  // virtual ISceneNodeAnimatorFactory* getDefaultSceneNodeAnimatorFactory() = 0;
1059 
1061 
1063  // virtual void registerNodeAnimatorFactory(ISceneNodeAnimatorFactory* factoryToAdd) = 0;
1064 
1066  // virtual std::uint32_t getRegisteredSceneNodeAnimatorFactoryCount() const = 0;
1067 
1069 
1071  // virtual ISceneNodeAnimatorFactory* getSceneNodeAnimatorFactory(std::uint32_t index) = 0;
1072 
1074  // virtual const char* getSceneNodeTypeName(E_SCENE_NODE_TYPE type) = 0;
1075 
1077  // virtual const char* getAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type) = 0;
1078 
1080 
1082  // virtual ISceneNode* addSceneNode(const char* sceneNodeTypeName, ISceneNode* parent= 0) = 0;
1083 
1085 
1089  // virtual ISceneNodeAnimator* createSceneNodeAnimator(const char* typeName, ISceneNode* target= 0) = 0;
1090 
1092 
1094  // virtual IMeshWriter* createMeshWriter(EMESH_WRITER_TYPE type) = 0;
1095 
1097 
1099  // virtual ISkinnedMesh* createSkinnedMesh() = 0;
1100 
1102 
1104  // virtual const IGeometryCreator* getGeometryCreator(void) const = 0;
1105 
1107 
1115  // virtual bool isCulled(const ISceneNode* node) const = 0;
1116  };
1117 
1118 } // namespace scene
1119 } // namespace saga
1120 
1121 #endif
1122 
saga::video::NULL_GPU_RESOURCE_HANDLE
constexpr SGPUResource::HandleType NULL_GPU_RESOURCE_HANDLE
Definition: SGPUResource.h:17
saga::scene::ISceneManager::getNodeList
virtual PassSceneNodeList & getNodeList()=0
saga::scene::ISceneManager::addCameraSceneNode
virtual const std::shared_ptr< ICameraSceneNode > & addCameraSceneNode(const std::shared_ptr< ISceneNode > &parent=nullptr, const glm::vec3 &position=glm::vec3(0, 0, 0), const glm::vec3 &lookAt=glm::vec3(0, 0,-1), bool makeActive=true)=0
Adds a cube scene node.
saga::scene::ISceneManager::getVideoDriver
virtual const std::shared_ptr< video::IVideoDriver > & getVideoDriver() const =0
Get interface to the mesh cache which is shared between all existing scene managers.
saga::scene::ISceneManager::getRootSceneNode
virtual const std::shared_ptr< ISceneNode > & getRootSceneNode() const =0
Adds a dynamic light scene node to the scene graph.
saga::scene::ISceneManager::addCameraSceneNodeFPS
virtual const std::shared_ptr< ICameraSceneNode > & addCameraSceneNodeFPS(const std::shared_ptr< ISceneNode > &parent=nullptr, float moveSpeed=0.5f, float rotateSpeed=1.f, bool makeActive=true)=0
Adds a maya style user controlled camera scene node to the scene graph.
saga::scene::ISceneManager::onEvent
virtual void onEvent(const SDL_Event &event) override
Called when an SDL event is fired.
Definition: ISceneManager.h:49
SRenderPass.h
saga::scene::ISceneManager::getNodeID
virtual ID getNodeID()=0
saga::scene::ISceneManager::getActiveCamera
virtual const std::shared_ptr< ICameraSceneNode > & getActiveCamera() const =0
Get the first scene node with the specified id.
saga::scene::ISceneManager::resetID
virtual void resetID()=0
saga::scene::ISceneManager::clear
virtual void clear()=0
Creates a rotation animator, which rotates the attached scene node around itself.
saga::scene::ISceneManager::getTextureID
virtual ID getTextureID()=0
saga::scene::ISceneManager::getNode
virtual const std::shared_ptr< ISceneNode > & getNode(const ID id) const =0
saga::IEventReceiver
Interface of an object which can receive events (SDL_Event*)
Definition: IEventReceiver.h:17
ISceneNode.h
saga::scene::ISceneManager::removeNode
virtual void removeNode(const ID id)=0
ESceneNodeAnimatorTypes.h
saga::ID
std::uint32_t ID
Type for node ID.
Definition: ID.h:11
IEventReceiver.h
saga::scene::ISceneManager::PassSceneNodeList
std::unordered_map< video::RenderPassHandle, SceneNodeList > PassSceneNodeList
Definition: ISceneManager.h:42
saga::scene::ISceneManager::createSceneNode
virtual std::shared_ptr< ISceneNode > createSceneNode(const std::shared_ptr< IMesh > &mesh, const std::shared_ptr< ISceneNode > &parent=nullptr, const glm::vec3 &position=glm::vec3(0, 0, 0), const glm::vec3 &rotation=glm::vec3(0, 0, 0), const glm::vec3 &scale=glm::vec3(1.0f, 1.0f, 1.0f))=0
Adds a scene node for rendering a static mesh.
saga::scene::ISceneManager::getMeshID
virtual ID getMeshID()=0
saga::scene::ISceneManager::isEmptyPass
virtual bool isEmptyPass(video::RenderPassHandle pass) const =0
saga::scene::ISceneManager::removeMesh
virtual void removeMesh(const std::shared_ptr< IMesh > &mesh)=0
saga::scene::ISceneManager::unregisterNode
virtual void unregisterNode(const std::shared_ptr< ISceneNode > &node, video::RenderPassHandle pass)=0
saga::scene::ISceneManager::registerNode
virtual void registerNode(const std::shared_ptr< ISceneNode > &node, video::RenderPassHandle pass)=0
saga::scene::ISceneManager
Definition: ISceneManager.h:38
saga::scene::ISceneManager::getMesh
virtual const std::shared_ptr< IMesh > & getMesh(const std::string &fileName)=0
Loads a mesh from given file.
saga::scene::ISceneManager::SceneNodeList
std::vector< std::shared_ptr< ISceneNode > > SceneNodeList
Definition: ISceneManager.h:41
ESceneNodeTypes.h
saga::video::RenderPassHandle
SGPUResource::HandleType RenderPassHandle
Definition: SRenderPass.h:27
SPipeline.h
saga::scene::ISceneManager::animate
virtual void animate(const video::RenderPassHandle pass=video::NULL_GPU_RESOURCE_HANDLE)=0
Registers a node for rendering it at a specific time.
IMesh.h
saga::scene::ISceneManager::setActiveCamera
virtual void setActiveCamera(const std::shared_ptr< ICameraSceneNode > &camera)=0
Sets the currently active camera.
saga
Definition: aabbox3d.h:11
SColor.h
saga::scene::ISceneManager::clearRegisteredNodes
virtual void clearRegisteredNodes()=0