Point Cloud Library (PCL) 1.14.0
Loading...
Searching...
No Matches
scene.h
1#pragma once
2
3// PCL
4#include "camera.h"
5#include "object.h"
6#include "outofcore_cloud.h"
7#include "viewport.h"
8
9class Object;
10
11class Scene
12{
13private:
14
15 static Scene *instance_;
16
17
18public:
19
21 Scene (const Scene& op) = delete;
22 Scene&
23 operator= (const Scene& op) = delete;
24
25 // Singleton
26 static Scene*
28 {
29 if (!Scene::instance_)
30 Scene::instance_ = new Scene ();
31
32 return Scene::instance_;
33 }
34
35 // Accessors - Cameras
36 // -----------------------------------------------------------------------------
37 void
38 addCamera (Camera *camera);
39
40 std::vector<Camera*>
42
43 Camera*
44 getCamera (vtkCamera *camera);
45
46 Camera*
47 getCamera (const std::string& name);
48
49 // Accessors - Objects
50 // -----------------------------------------------------------------------------
51 void
52 addObject (Object *object);
53
54 Object*
55 getObjectByName (const std::string& name);
56
57 std::vector<Object*>
59
60 // Accessors - Viewports
61 // -----------------------------------------------------------------------------
62
63 void
64 addViewport (Viewport *viewport);
65
66 std::vector<Viewport*>
68
69 void
71 {
72 render_mutex_.lock ();
73 }
74
75 void
77 {
78 render_mutex_.unlock ();
79 }
80
81private:
82 std::vector<Camera*> cameras_;
83 std::vector<Viewport*> viewports_;
84 std::vector<Object*> objects_;
85
86 std::mutex render_mutex_;
87
88};
Definition scene.h:12
void lock()
Definition scene.h:70
Camera * getCamera(vtkCamera *camera)
void addViewport(Viewport *viewport)
void addCamera(Camera *camera)
void addObject(Object *object)
Object * getObjectByName(const std::string &name)
void unlock()
Definition scene.h:76
Camera * getCamera(const std::string &name)
static Scene * instance()
Definition scene.h:27
Scene(const Scene &op)=delete
Scene & operator=(const Scene &op)=delete
std::vector< Camera * > getCameras()
std::vector< Viewport * > getViewports()
std::vector< Object * > getObjects()