Point Cloud Library (PCL) 1.12.0
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 Scene ();
18 Scene (const Scene& op) = delete;
19 Scene&
20 operator= (const Scene& op) = delete;
21
22public:
23
24 // Singleton
25 static Scene*
27 {
28 if (!Scene::instance_)
29 Scene::instance_ = new Scene ();
30
31 return Scene::instance_;
32 }
33
34 // Accessors - Cameras
35 // -----------------------------------------------------------------------------
36 void
37 addCamera (Camera *camera);
38
39 std::vector<Camera*>
41
42 Camera*
43 getCamera (vtkCamera *camera);
44
45 Camera*
46 getCamera (std::string name);
47
48 // Accessors - Objects
49 // -----------------------------------------------------------------------------
50 void
51 addObject (Object *object);
52
53 Object*
54 getObjectByName (std::string name);
55
56 std::vector<Object*>
58
59 // Accessors - Viewports
60 // -----------------------------------------------------------------------------
61
62 void
63 addViewport (Viewport *viewport);
64
65 std::vector<Viewport*>
67
68 void
70 {
71 render_mutex_.lock ();
72 }
73
74 void
76 {
77 render_mutex_.unlock ();
78 }
79
80private:
81 std::vector<Camera*> cameras_;
82 std::vector<Viewport*> viewports_;
83 std::vector<Object*> objects_;
84
85 std::mutex render_mutex_;
86
87};
Definition: camera.h:21
Definition: object.h:19
Definition: scene.h:12
void lock()
Definition: scene.h:69
Camera * getCamera(vtkCamera *camera)
Object * getObjectByName(std::string name)
void addViewport(Viewport *viewport)
void addCamera(Camera *camera)
void addObject(Object *object)
void unlock()
Definition: scene.h:75
static Scene * instance()
Definition: scene.h:26
Camera * getCamera(std::string name)
std::vector< Camera * > getCameras()
std::vector< Viewport * > getViewports()
std::vector< Object * > getObjects()