Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Attributes | Friends
omni::visual::Scene Class Reference

A class that holds settings and elements for session 3d visualization Belongs to a session. More...

#include <Scene.h>

Collaboration diagram for omni::visual::Scene:
Collaboration graph
[legend]

Public Types

typedef std::map< QString,
std::unique_ptr
< CameraInterface > > 
camera_map_type
 

Public Member Functions

 Scene ()
 
float size () const
 Scene size (min, max dimensions) More...
 
void setSize (float)
 Set scene size. More...
 
LengthUnit const & unit () const
 Length unit for scene. More...
 
void setUnit (QString const &)
 Set unit from string prefix. More...
 
void setUnit (LengthUnit const &)
 Set unit from length unit type. More...
 
bool displayInput () const
 Input is shown on canvas. More...
 
void setDisplayInput (bool)
 Turn displaying of input on canvas on/off. More...
 
bool displayGrid () const
 Display line grid. More...
 
void setDisplayGrid (bool)
 Turn displaying of grid on/off. More...
 
ProjectorSelectionMode displayProjectors () const
 Display projector frustra (selected projector is always shown) More...
 
void setDisplayProjectors (ProjectorSelectionMode)
 Turn displaying of projectors on/off. More...
 
ProjectorSelectionMode displayProjectedAreas () const
 Display projected areas. More...
 
void setDisplayProjectedAreas (ProjectorSelectionMode)
 Turn displaying of projector areas on/off. More...
 
EditMode editMode () const
 Return scene element. More...
 
void setEditMode (EditMode)
 Set mode which scene element is to be manipulated. More...
 
RotateMode rotateMode () const
 
void setRotateMode (RotateMode)
 
MoveMode moveMode () const
 
void setMoveMode (MoveMode)
 
float insideOutside () const
 Inside / outside transparency for 3D canvas view. More...
 
void setInsideOutside (float _insideOutside)
 
float wireframe () const
 Opacity value for wireframe between 0.0 and 1.0. More...
 
void setWireframe (float _wireframe)
 
void updateLights ()
 Update light for use in OpenGL. More...
 
visual::CameraInterfacecamera ()
 Return reference to camera. More...
 
visual::CameraInterface const * camera () const
 Return const reference to camera. More...
 
QString currentCameraId () const
 Return current camera id. More...
 
void setCurrentCameraId (QString const &)
 Set id to current camera. More...
 
camera_map_typecameras ()
 
camera_map_type const & cameras () const
 
void fromStream (QDataStream &)
 Deserialize from stream. More...
 
void toStream (QDataStream &) const
 Serialize to stream. More...
 
void drawGrid () const
 Draw grid with given scene size if it is to be displayed. More...
 
void updateGrid ()
 Update grid. More...
 

Private Attributes

float insideOutside_ = 0.5
 
float size_ = 10.0
 
float wireframe_ = 0.0
 
LengthUnit unit_
 
bool displayInput_ = true
 
bool displayGrid_ = true
 
ProjectorSelectionMode displayProjectors_ = ProjectorSelectionMode::ALL
 
ProjectorSelectionMode displayProjectedAreas_ = ProjectorSelectionMode::ALL
 
EditMode editMode_ = EditMode::CAMERA
 
RotateMode rotateMode_ = RotateMode::YAW
 
MoveMode moveMode_ = MoveMode::MOVE_XY
 
QString cameraId_
 
std::vector< visual::Lightlights_
 
std::map< QString,
std::unique_ptr
< visual::CameraInterface > > 
cameras_
 
std::unique_ptr< visual::Gridgrid_
 

Friends

bool operator== (Scene const &, Scene const &)
 Test for equality. ScreenSetup is ignored. More...
 

Detailed Description

A class that holds settings and elements for session 3d visualization Belongs to a session.

Member Typedef Documentation

typedef std::map<QString,std::unique_ptr<CameraInterface> > omni::visual::Scene::camera_map_type

Constructor & Destructor Documentation

omni::visual::Scene::Scene ( )
29  {
30  setSize(size_);
31  float _radius = size_;
32  std::unique_ptr<CameraInterface> _cam(new PerspectiveCamera(
33  Tracker(QVector3D(0,
34  0,
35  0), PolarVec(
36  -45.0,
37  45.0,
38  _radius * 5.0))));
39  cameras_["camera"] = std::move(_cam);
40  setCurrentCameraId("camera");
41 
42  lights_.emplace_back(Tracker(QVector3D(0.0, 0.0, 0.0),
43  PolarVec(-45.0, 45.0, _radius * 10.0)), 0.5);
44  lights_.emplace_back(Tracker(QVector3D(0.0, 0.0, 0.0),
45  PolarVec(45.0, 45.0, _radius * 10.0)), 0.3);
46  lights_.emplace_back(Tracker(QVector3D(0.0, 0.0, 0.0),
47  PolarVec(45.0, -45.0, _radius * 10.0)), 0.3);
48  }
void setCurrentCameraId(QString const &)
Set id to current camera.
Definition: Scene.cpp:181
std::vector< visual::Light > lights_
Definition: Scene.h:187
void setSize(float)
Set scene size.
Definition: Scene.cpp:54
std::map< QString, std::unique_ptr< visual::CameraInterface > > cameras_
Definition: Scene.h:188
float size_
Definition: Scene.h:175

Member Function Documentation

visual::CameraInterface * omni::visual::Scene::camera ( )

Return reference to camera.

162  {
163  if (cameras_.count(cameraId_) == 0) return nullptr;
164 
165  return cameras_.at(cameraId_).get();
166  }
std::map< QString, std::unique_ptr< visual::CameraInterface > > cameras_
Definition: Scene.h:188
QString cameraId_
Definition: Scene.h:186
visual::CameraInterface const * omni::visual::Scene::camera ( ) const

Return const reference to camera.

169  {
170  if (cameras_.count(cameraId_) == 0) return nullptr;
171 
172  return cameras_.at(cameraId_).get();
173  }
std::map< QString, std::unique_ptr< visual::CameraInterface > > cameras_
Definition: Scene.h:188
QString cameraId_
Definition: Scene.h:186
Scene::camera_map_type & omni::visual::Scene::cameras ( )
187  {
188  return cameras_;
189  }
std::map< QString, std::unique_ptr< visual::CameraInterface > > cameras_
Definition: Scene.h:188
Scene::camera_map_type const & omni::visual::Scene::cameras ( ) const
191  {
192  return cameras_;
193  }
std::map< QString, std::unique_ptr< visual::CameraInterface > > cameras_
Definition: Scene.h:188
QString omni::visual::Scene::currentCameraId ( ) const

Return current camera id.

176  {
177  return cameraId_;
178  }
QString cameraId_
Definition: Scene.h:186
bool omni::visual::Scene::displayGrid ( ) const

Display line grid.

81  {
82  return displayGrid_;
83  }
bool displayGrid_
Definition: Scene.h:179
bool omni::visual::Scene::displayInput ( ) const

Input is shown on canvas.

72  {
73  return displayInput_;
74  }
bool displayInput_
Definition: Scene.h:178
ProjectorSelectionMode omni::visual::Scene::displayProjectedAreas ( ) const

Display projected areas.

99  {
100  return displayProjectedAreas_;
101  }
ProjectorSelectionMode displayProjectedAreas_
Definition: Scene.h:181
ProjectorSelectionMode omni::visual::Scene::displayProjectors ( ) const

Display projector frustra (selected projector is always shown)

90  {
91  return displayProjectors_;
92  }
ProjectorSelectionMode displayProjectors_
Definition: Scene.h:180
void omni::visual::Scene::drawGrid ( ) const

Draw grid with given scene size if it is to be displayed.

247  {
248  if (!grid_ || !displayGrid()) return;
249 
250  grid_->draw(insideOutside());
251  glDisable(GL_DEPTH_TEST);
252  grid_->draw(1.0 - insideOutside());
253  glEnable(GL_DEPTH_TEST);
254  }
bool displayGrid() const
Display line grid.
Definition: Scene.cpp:81
std::unique_ptr< visual::Grid > grid_
Definition: Scene.h:189
float insideOutside() const
Inside / outside transparency for 3D canvas view.
Definition: Scene.cpp:140
EditMode omni::visual::Scene::editMode ( ) const

Return scene element.

Set mode whether to manip.

108  {
109  return editMode_;
110  }
EditMode editMode_
Definition: Scene.h:182
void omni::visual::Scene::fromStream ( QDataStream &  _is)

Deserialize from stream.

196  {
197  PropertyMap _map;
198 
199  _is >> _map;
200  _map.get("size", size_);
201  _map.get("displayInput", displayInput_);
202  _map.get("displayGrid", displayGrid_);
203  _map.get("displayProjectors", displayProjectors_);
204  _map.get("displayProjectedAreas", displayProjectedAreas_);
205  _map.get("editMode", editMode_);
206  _map.get("rotateMode", rotateMode_);
207  _map.get("moveMode", moveMode_);
208  _map.get("insideOutside", insideOutside_);
209  _map.get("lights", lights_);
210 
211  // _map.get("cameras", cameras_);
212  }
ProjectorSelectionMode displayProjectedAreas_
Definition: Scene.h:181
float insideOutside_
Definition: Scene.h:174
std::vector< visual::Light > lights_
Definition: Scene.h:187
bool displayInput_
Definition: Scene.h:178
MoveMode moveMode_
Definition: Scene.h:184
ProjectorSelectionMode displayProjectors_
Definition: Scene.h:180
bool displayGrid_
Definition: Scene.h:179
EditMode editMode_
Definition: Scene.h:182
float size_
Definition: Scene.h:175
RotateMode rotateMode_
Definition: Scene.h:183
float omni::visual::Scene::insideOutside ( ) const

Inside / outside transparency for 3D canvas view.

140  {
141  return insideOutside_;
142  }
float insideOutside_
Definition: Scene.h:174
MoveMode omni::visual::Scene::moveMode ( ) const
124  {
125  return moveMode_;
126  }
MoveMode moveMode_
Definition: Scene.h:184
RotateMode omni::visual::Scene::rotateMode ( ) const
116  {
117  return rotateMode_;
118  }
RotateMode rotateMode_
Definition: Scene.h:183
void omni::visual::Scene::setCurrentCameraId ( QString const &  _cameraId)

Set id to current camera.

181  {
182  cameraId_ = _cameraId;
183 
184  updateGrid();
185  }
void updateGrid()
Update grid.
Definition: Scene.cpp:256
QString cameraId_
Definition: Scene.h:186
void omni::visual::Scene::setDisplayGrid ( bool  _displayGrid)

Turn displaying of grid on/off.

85  {
86  displayGrid_ = _displayGrid;
87  }
bool displayGrid_
Definition: Scene.h:179
void omni::visual::Scene::setDisplayInput ( bool  _displayInput)

Turn displaying of input on canvas on/off.

76  {
77  displayInput_ = _displayInput;
78  }
bool displayInput_
Definition: Scene.h:178
void omni::visual::Scene::setDisplayProjectedAreas ( ProjectorSelectionMode  _displayProjectedAreas)

Turn displaying of projector areas on/off.

103  {
104  displayProjectedAreas_ = _displayProjectedAreas;
105  }
ProjectorSelectionMode displayProjectedAreas_
Definition: Scene.h:181
void omni::visual::Scene::setDisplayProjectors ( ProjectorSelectionMode  _displayProjectors)

Turn displaying of projectors on/off.

94  {
95  displayProjectors_ = _displayProjectors;
96  }
ProjectorSelectionMode displayProjectors_
Definition: Scene.h:180
void omni::visual::Scene::setEditMode ( EditMode  _editMode)

Set mode which scene element is to be manipulated.

112  {
113  editMode_ = _editMode;
114  }
EditMode editMode_
Definition: Scene.h:182
void omni::visual::Scene::setInsideOutside ( float  _insideOutside)
144  {
145  insideOutside_ = qBound(0.0f,_insideOutside,1.0f);
146  }
float insideOutside_
Definition: Scene.h:174
void omni::visual::Scene::setMoveMode ( MoveMode  _moveMode)
128  {
129  moveMode_ = _moveMode;
130  }
MoveMode moveMode_
Definition: Scene.h:184
void omni::visual::Scene::setRotateMode ( RotateMode  _rotateMode)
120  {
121  rotateMode_ = _rotateMode;
122  }
RotateMode rotateMode_
Definition: Scene.h:183
void omni::visual::Scene::setSize ( float  _size)

Set scene size.

54  {
55  size_ = _size;
56  updateGrid();
57  }
void updateGrid()
Update grid.
Definition: Scene.cpp:256
float size_
Definition: Scene.h:175
void omni::visual::Scene::setUnit ( QString const &  _unit)

Set unit from string prefix.

63  {
64  unit_ = LengthUnit(_unit);
65  }
LengthUnit unit_
Definition: Scene.h:177
void omni::visual::Scene::setUnit ( LengthUnit const &  _unit)

Set unit from length unit type.

67  {
68  unit_ = _unit;
69  }
LengthUnit unit_
Definition: Scene.h:177
void omni::visual::Scene::setWireframe ( float  _wireframe)
157  {
158  wireframe_ = qBound(0.0f,_wireframe,1.0f);
159  }
float wireframe_
Definition: Scene.h:176
float omni::visual::Scene::size ( ) const

Scene size (min, max dimensions)

50  {
51  return size_;
52  }
float size_
Definition: Scene.h:175
void omni::visual::Scene::toStream ( QDataStream &  _os) const

Serialize to stream.

215  {
216  PropertyMap _map;
217 
218  _map("size", size_)
219  ("displayInput", displayInput_)
220  ("displayGrid", displayGrid_)
221  ("displayProjectors", displayProjectors_)
222  ("displayProjectedAreas", displayProjectedAreas_)
223  ("editMode", editMode_)
224  ("rotateMode", rotateMode_)
225  ("moveMode", moveMode_)
226  ("insideOutside", insideOutside_)
227  ("lights", lights_);
228 
229  // ("cameras", cameras_);
230  _os << _map;
231  }
ProjectorSelectionMode displayProjectedAreas_
Definition: Scene.h:181
float insideOutside_
Definition: Scene.h:174
std::vector< visual::Light > lights_
Definition: Scene.h:187
bool displayInput_
Definition: Scene.h:178
MoveMode moveMode_
Definition: Scene.h:184
ProjectorSelectionMode displayProjectors_
Definition: Scene.h:180
bool displayGrid_
Definition: Scene.h:179
EditMode editMode_
Definition: Scene.h:182
float size_
Definition: Scene.h:175
RotateMode rotateMode_
Definition: Scene.h:183
LengthUnit const & omni::visual::Scene::unit ( ) const

Length unit for scene.

59  {
60  return unit_;
61  }
LengthUnit unit_
Definition: Scene.h:177
void omni::visual::Scene::updateGrid ( )

Update grid.

256  {
257  if (!grid_) {
258  grid_.reset(new visual::Grid(camera()));
259  }
260  grid_->setSize(QVector2D(size_, size_));
261  grid_->update();
262  grid_->setCamera(camera());
263  }
visual::CameraInterface * camera()
Return reference to camera.
Definition: Scene.cpp:162
std::unique_ptr< visual::Grid > grid_
Definition: Scene.h:189
float size_
Definition: Scene.h:175
void omni::visual::Scene::updateLights ( )

Update light for use in OpenGL.

Setup light for use in OpenGL.

133  {
134  GLuint _index = GL_LIGHT0;
135 
136  for (auto& _light : lights_) _light.setup(++_index);
137  }
std::vector< visual::Light > lights_
Definition: Scene.h:187
float omni::visual::Scene::wireframe ( ) const

Opacity value for wireframe between 0.0 and 1.0.

149  {
150  return wireframe_;
151  }
float wireframe_
Definition: Scene.h:176

Friends And Related Function Documentation

bool operator== ( Scene const &  _lhs,
Scene const &  _rhs 
)
friend

Test for equality. ScreenSetup is ignored.

233  {
234  return
245  }
ProjectorSelectionMode displayProjectedAreas_
Definition: Scene.h:181
std::vector< visual::Light > lights_
Definition: Scene.h:187
#define OMNI_TEST_MEMBER_EQUAL(member)
Definition: util.h:125
bool displayInput_
Definition: Scene.h:178
std::map< QString, std::unique_ptr< visual::CameraInterface > > cameras_
Definition: Scene.h:188
MoveMode moveMode_
Definition: Scene.h:184
ProjectorSelectionMode displayProjectors_
Definition: Scene.h:180
bool displayGrid_
Definition: Scene.h:179
EditMode editMode_
Definition: Scene.h:182
float size_
Definition: Scene.h:175
RotateMode rotateMode_
Definition: Scene.h:183

Field Documentation

QString omni::visual::Scene::cameraId_
private
std::map<QString,std::unique_ptr<visual::CameraInterface> > omni::visual::Scene::cameras_
private
bool omni::visual::Scene::displayGrid_ = true
private
bool omni::visual::Scene::displayInput_ = true
private
ProjectorSelectionMode omni::visual::Scene::displayProjectedAreas_ = ProjectorSelectionMode::ALL
private
ProjectorSelectionMode omni::visual::Scene::displayProjectors_ = ProjectorSelectionMode::ALL
private
EditMode omni::visual::Scene::editMode_ = EditMode::CAMERA
private
std::unique_ptr<visual::Grid> omni::visual::Scene::grid_
private
float omni::visual::Scene::insideOutside_ = 0.5
private
std::vector<visual::Light> omni::visual::Scene::lights_
private
MoveMode omni::visual::Scene::moveMode_ = MoveMode::MOVE_XY
private
RotateMode omni::visual::Scene::rotateMode_ = RotateMode::YAW
private
float omni::visual::Scene::size_ = 10.0
private
LengthUnit omni::visual::Scene::unit_
private
float omni::visual::Scene::wireframe_ = 0.0
private

The documentation for this class was generated from the following files: