Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_SCENEGRAPH_SIMPLE_STREAM_H__
00009 #define __SP_SCENEGRAPH_SIMPLE_STREAM_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #ifdef SP_COMPILE_WITH_SCENEGRAPH_SIMPLE_STREAM
00015
00016
00017 #include "SceneGraph/spSceneGraphSimple.hpp"
00018
00019
00020 namespace sp
00021 {
00022 namespace scene
00023 {
00024
00025
00035 class SP_EXPORT SceneGraphSimpleStream : public SceneGraphSimple
00036 {
00037
00038 public:
00039
00040 SceneGraphSimpleStream();
00041 virtual ~SceneGraphSimpleStream();
00042
00043
00044
00045 void addSceneNode(SceneNode* Object);
00046 void addSceneNode(Camera* Object);
00047 void addSceneNode(Light* Object);
00048 void addSceneNode(RenderNode* Object);
00049
00050 void removeSceneNode(SceneNode* Object);
00051 void removeSceneNode(Camera* Object);
00052 void removeSceneNode(Light* Object);
00053 void removeSceneNode(RenderNode* Object);
00054
00055 virtual void render();
00056
00057 protected:
00058
00059
00060
00061 std::list<SceneNode*> QueueAddNodes_;
00062 std::list<Light*> QueueAddLights_;
00063 std::list<Camera*> QueueAddCameras_;
00064 std::list<RenderNode*> QueueAddRenderNodes_;
00065
00066 std::list<SceneNode*> QueueRemoveNodes_;
00067 std::list<Light*> QueueRemoveLights_;
00068 std::list<Camera*> QueueRemoveCameras_;
00069 std::list<RenderNode*> QueueRemoveRenderNodes_;
00070
00071 CriticalSection SemaphoreQueues_;
00072
00073 };
00074
00075
00076 }
00077
00078 }
00079
00080
00081 #endif
00082
00083 #endif
00084
00085
00086
00087