- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

# src/TaskBasedFlockSim/Scene.h

    00001
    00002
    00003
    00004
    00005
    00006
    00007
    00008
    00009
    00010
    00011
    00012
    00013
    00014
    00015
    00016
    00017
    00018
    00019
    00020
    00021 #ifndef _SCENE_H_
    00022 #define _SCENE_H_
    00023
    00026
    00027 #include <boost/utility.hpp>
    00028 #include <boost/shared_ptr.hpp>
    00029 #include <boost/thread/mutex.hpp>
    00030 #include <boost/thread/shared_mutex.hpp>
    00031 #include "Camera.h"
    00032
    00033 namespace TestFrameWork
    00034 {
    00035
    00036 class Scene;
    00037 typedef boost::shared_ptr<Scene> ScenePtr;
    00038
    00039 class Scene :
    00040         boost::noncopyable
    00041 {
    00042 public:
    00043         Scene(void);
    00044
    00045         virtual ~Scene(void);
    00046
    00047         Camera& GetCamera(void);
    00048
    00049         const Camera& GetCamera(void) const;
    00050
    00051         void Lock(void);
    00052
    00053         void Unlock(void);
    00054
    00055         void Commit(ScenePtr scene);
    00056
    00057 protected:
    00058         Camera m_camera;
    00059
    00060         virtual void Clone(ScenePtr scene) = 0;
    00061
    00062 private:
    00063         boost::shared_mutex m_sceneMutex;
    00064
    00065         boost::shared_lock<boost::shared_mutex> m_sceneLock;
    00066 };
    00067
    00068
    00069
    00070 }
    00071
    00072 #endif