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::Session Class Reference

A session consists of a canvas, a mapping, a list of tunings and one or several inputs. More...

#include <Session.h>

Collaboration diagram for omni::Session:
Collaboration graph
[legend]

Public Types

enum  Mode {
  Mode::SCREENSETUP, Mode::ARRANGE, Mode::WARP, Mode::BLEND,
  Mode::COLORCORRECTION, Mode::EXPORT, Mode::LIVE, Mode::NUM_MODES
}
 General mode of the User Interface. More...
 
typedef omni::visual::Session visualizer_type
 

Public Member Functions

 Session ()
 Default constructor. More...
 
 ~Session ()
 
proj::TuningListtunings ()
 Returns reference to projector tunings. More...
 
proj::TuningList const & tunings () const
 Returns const reference to projector tunings. More...
 
MappingsetMapping (Id const &_typeId)
 Makes new mapping with given type Id. More...
 
Mappingmapping ()
 Returns pointer to mapping. More...
 
Mapping const * mapping () const
 Returns pointer to mapping (const version) More...
 
InputListinputs ()
 Returns reference to list of inputs. More...
 
InputList const & inputs () const
 Returns const reference to list of inputs. More...
 
CanvassetCanvas (Id const &_typeId)
 Makes new canvas with given type id and returns pointer if successful. More...
 
Canvascanvas ()
 Return pointer to canvas. More...
 
Canvas const * canvas () const
 Return pointer to canvas (const version) More...
 
ScreenSetup & screenSetup ()
 Return reference to current screen setup. More...
 
ScreenSetup const & screenSetup () const
 Return const reference to current screen setup. More...
 
Scene & scene ()
 Return reference to export settings. More...
 
Scene const & scene () const
 Return reference to export settings. More...
 
BlendSettingsblendSettings ()
 Return reference to blend settings. More...
 
BlendSettings const & blendSettings () const
 Return reference to blend settings. More...
 
ExportSettings & exportSettings ()
 Return reference to export settings. More...
 
ExportSettings const & exportSettings () const
 Return reference to export settings. More...
 
Mode mode () const
 Return current mode. More...
 
void setMode (Mode)
 Set mode of this session. More...
 
bool hasOutput () const
 A session has an output when there is an input, a canvas and a mapping. More...
 
void renderToFile (QString const &_filename)
 Export calibration data of session to a file. More...
 
void save (QString const &_filename) const
 Save session to file. More...
 
void load (QString const &_filename)
 Load session to file. More...
 
void fromStream (QDataStream &)
 Deserialize from stream. More...
 
void toStream (QDataStream &) const
 Serialize to stream. More...
 
visualizer_typemakeVisualizer ()
 Make visualizer if it is not instantiated yet. More...
 
visualizer_typevisualizer ()
 
visualizer_type const * visualizer () const
 

Private Attributes

proj::TuningList tunings_
 List with all projector tunings. More...
 
std::unique_ptr< Mappingmapping_
 Owning pointer for mapping. More...
 
InputList inputs_
 List with all inputs (e.g. images, videos etc) More...
 
std::unique_ptr< Canvascanvas_
 Owning pointer for canvas. More...
 
ScreenSetup screenSetup_
 Current screen setup. More...
 
Mode mode_ = Mode::SCREENSETUP
 Current session mode. More...
 
visual::Scene scene_
 
BlendSettings blendSettings_
 
ExportSettings exportSettings_
 
std::unique_ptr< visualizer_typeviz_
 

Friends

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

Detailed Description

A session consists of a canvas, a mapping, a list of tunings and one or several inputs.

Member Typedef Documentation

Member Enumeration Documentation

enum omni::Session::Mode
strong

General mode of the User Interface.

Enumerator
SCREENSETUP 
ARRANGE 
WARP 
BLEND 
COLORCORRECTION 
EXPORT 
LIVE 
NUM_MODES 
47  {
48  SCREENSETUP, // Mode for setup screens
49  ARRANGE, // Mode for setting up projectors and canvas
50  WARP, // Mode for adjusting warp grid
51  BLEND, // Mode for editing the blend mask
52  COLORCORRECTION, // Mode for color correction for each projector
53  EXPORT, // Export mode
54  LIVE, // Live mode. Output is locked for faster display
55  NUM_MODES
56  };

Constructor & Destructor Documentation

omni::Session::Session ( )

Default constructor.

37  :
38  tunings_(*this),
39  screenSetup_(this)
40  {
41  // Register Projector Setups
42  {
43  using namespace proj;
44  SetupFactory::reg<FreeSetup>();
45  SetupFactory::reg<PeripheralSetup>();
46  }
47 
48  // END Register Projector Setups
49  }
proj::TuningList tunings_
List with all projector tunings.
Definition: Session.h:155
ScreenSetup screenSetup_
Current screen setup.
Definition: Session.h:167
omni::Session::~Session ( )
52  {
53  }

Member Function Documentation

BlendSettings & omni::Session::blendSettings ( )

Return reference to blend settings.

125  {
126  return blendSettings_;
127  }
BlendSettings blendSettings_
Definition: Session.h:173
BlendSettings const & omni::Session::blendSettings ( ) const

Return reference to blend settings.

130  {
131  return blendSettings_;
132  }
BlendSettings blendSettings_
Definition: Session.h:173
Canvas * omni::Session::canvas ( )

Return pointer to canvas.

105  {
106  return canvas_.get();
107  }
std::unique_ptr< Canvas > canvas_
Owning pointer for canvas.
Definition: Session.h:164
Canvas const * omni::Session::canvas ( ) const

Return pointer to canvas (const version)

110  {
111  return canvas_.get();
112  }
std::unique_ptr< Canvas > canvas_
Owning pointer for canvas.
Definition: Session.h:164
ExportSettings & omni::Session::exportSettings ( )

Return reference to export settings.

152  {
153  return exportSettings_;
154  }
ExportSettings exportSettings_
Definition: Session.h:174
ExportSettings const & omni::Session::exportSettings ( ) const

Return reference to export settings.

156  {
157  return exportSettings_;
158  }
ExportSettings exportSettings_
Definition: Session.h:174
void omni::Session::fromStream ( QDataStream &  _is)

Deserialize from stream.

Reset visualizer

202  {
203  /// Reset visualizer
204  viz_.reset();
205 
206  PropertyMap _map;
207  _is >> _map;
208  _map.get("tunings",tunings_);
209  _map.getPtr("mapping",[&](Id const& _id) {
210  return setMapping(_id);
211  });
212  _map.get("inputs",inputs_);
213  _map.getPtr("canvas",[&](Id const& _id) {
214  return setCanvas(_id);
215  });
216  _map.get("mode",mode_);
217  _map.get("scene",scene_);
218  _map.get("blendSettings",blendSettings_);
219  _map.get("exportSettings",exportSettings_);
220  }
BlendSettings blendSettings_
Definition: Session.h:173
Mode mode_
Current session mode.
Definition: Session.h:170
proj::TuningList tunings_
List with all projector tunings.
Definition: Session.h:155
std::unique_ptr< visualizer_type > viz_
Definition: Session.h:176
ExportSettings exportSettings_
Definition: Session.h:174
InputList inputs_
List with all inputs (e.g. images, videos etc)
Definition: Session.h:161
Mapping * setMapping(Id const &_typeId)
Makes new mapping with given type Id.
Definition: Session.cpp:65
visual::Scene scene_
Definition: Session.h:172
Canvas * setCanvas(Id const &_typeId)
Makes new canvas with given type id and returns pointer if successful.
Definition: Session.cpp:94
bool omni::Session::hasOutput ( ) const

A session has an output when there is an input, a canvas and a mapping.

161  {
162  return inputs().current() && canvas() && mapping() && (tunings().size() > 0);
163  }
Canvas * canvas()
Return pointer to canvas.
Definition: Session.cpp:104
proj::TuningList & tunings()
Returns reference to projector tunings.
Definition: Session.cpp:55
Mapping * mapping()
Returns pointer to mapping.
Definition: Session.cpp:74
InputList & inputs()
Returns reference to list of inputs.
Definition: Session.cpp:84
Input * current()
Returns pointer to current input Returns nullptr if currentIdx_ == -1 or input list is empty...
Definition: List.cpp:78
InputList & omni::Session::inputs ( )

Returns reference to list of inputs.

85  {
86  return inputs_;
87  }
InputList inputs_
List with all inputs (e.g. images, videos etc)
Definition: Session.h:161
InputList const & omni::Session::inputs ( ) const

Returns const reference to list of inputs.

90  {
91  return inputs_;
92  }
InputList inputs_
List with all inputs (e.g. images, videos etc)
Definition: Session.h:161
void omni::Session::load ( QString const &  _filename)

Load session to file.

181  {
182  QFile _file(_filename);
183  _file.open(QIODevice::ReadOnly);
184  QDataStream _stream(&_file);
185  _stream >> *this;
186  }
Session::visualizer_type * omni::Session::makeVisualizer ( )

Make visualizer if it is not instantiated yet.

222  {
223  if (!viz_ && QOpenGLContext::currentContext()) {
224  viz_.reset(new visualizer_type(*this));
225  }
226  return visualizer();
227  }
std::unique_ptr< visualizer_type > viz_
Definition: Session.h:176
omni::visual::Session visualizer_type
Definition: Session.h:43
visualizer_type * visualizer()
Definition: Session.cpp:230
Mapping * omni::Session::mapping ( )

Returns pointer to mapping.

75  {
76  return mapping_.get();
77  }
std::unique_ptr< Mapping > mapping_
Owning pointer for mapping.
Definition: Session.h:158
Mapping const * omni::Session::mapping ( ) const

Returns pointer to mapping (const version)

80  {
81  return mapping_.get();
82  }
std::unique_ptr< Mapping > mapping_
Owning pointer for mapping.
Definition: Session.h:158
Session::Mode omni::Session::mode ( ) const

Return current mode.

135  {
136  return mode_;
137  }
Mode mode_
Current session mode.
Definition: Session.h:170
void omni::Session::renderToFile ( QString const &  _filename)

Export calibration data of session to a file.

167  {
168  render::Renderer _renderer(*this);
169  _renderer.renderToFile(_filename);
170  }
void omni::Session::save ( QString const &  _filename) const

Save session to file.

173  {
174  QFile _file(_filename);
175  _file.open(QIODevice::WriteOnly);
176  QDataStream _stream(&_file);
177  _stream << *this;
178  }
Scene & omni::Session::scene ( )

Return reference to export settings.

144  {
145  return scene_;
146  }
visual::Scene scene_
Definition: Session.h:172
Scene const & omni::Session::scene ( ) const

Return reference to export settings.

148  {
149  return scene_;
150  }
visual::Scene scene_
Definition: Session.h:172
ScreenSetup & omni::Session::screenSetup ( )

Return reference to current screen setup.

115  {
116  return screenSetup_;
117  }
ScreenSetup screenSetup_
Current screen setup.
Definition: Session.h:167
ScreenSetup const & omni::Session::screenSetup ( ) const

Return const reference to current screen setup.

120  {
121  return screenSetup_;
122  }
ScreenSetup screenSetup_
Current screen setup.
Definition: Session.h:167
Canvas * omni::Session::setCanvas ( Id const &  _typeId)

Makes new canvas with given type id and returns pointer if successful.

Attach scene to canvas

95  {
96  canvas_.reset(canvas::Factory::create(_id));
97  /// Attach scene to canvas
98  if (canvas_) {
99  canvas_->setScene(&scene());
100  }
101  return canvas();
102  }
Canvas * canvas()
Return pointer to canvas.
Definition: Session.cpp:104
static interface_type * create(const key_type &_key, const ARGS &..._args)
Instantiates an object of the class by id and constructor arguments.
Definition: factory.hpp:101
std::unique_ptr< Canvas > canvas_
Owning pointer for canvas.
Definition: Session.h:164
Scene & scene()
Return reference to export settings.
Definition: Session.cpp:144
Mapping * omni::Session::setMapping ( Id const &  _typeId)

Makes new mapping with given type Id.

66  {
67  mapping_.reset(MappingFactory::create(_id));
68  if (mapping_) {
69  mapping_->setScene(&scene_);
70  }
71  return mapping();
72  }
static interface_type * create(const key_type &_key, const ARGS &..._args)
Instantiates an object of the class by id and constructor arguments.
Definition: factory.hpp:101
Mapping * mapping()
Returns pointer to mapping.
Definition: Session.cpp:74
visual::Scene scene_
Definition: Session.h:172
std::unique_ptr< Mapping > mapping_
Owning pointer for mapping.
Definition: Session.h:158
void omni::Session::setMode ( Mode  _mode)

Set mode of this session.

140  {
141  mode_=_mode;
142  }
Mode mode_
Current session mode.
Definition: Session.h:170
void omni::Session::toStream ( QDataStream &  _os) const

Serialize to stream.

188  {
189  PropertyMap _map;
190  _map("version",OMNIDOME_VERSION_STRING);
191  _map("tunings",tunings_)
192  ("mapping",mapping_)
193  ("inputs",inputs_)
194  ("canvas",canvas_)
195  ("mode",mode_)
196  ("scene",scene_)
197  ("blendSettings",blendSettings_)
198  ("exportSettings",exportSettings_);
199  _os << _map;
200  }
BlendSettings blendSettings_
Definition: Session.h:173
Mode mode_
Current session mode.
Definition: Session.h:170
proj::TuningList tunings_
List with all projector tunings.
Definition: Session.h:155
ExportSettings exportSettings_
Definition: Session.h:174
std::unique_ptr< Canvas > canvas_
Owning pointer for canvas.
Definition: Session.h:164
InputList inputs_
List with all inputs (e.g. images, videos etc)
Definition: Session.h:161
visual::Scene scene_
Definition: Session.h:172
std::unique_ptr< Mapping > mapping_
Owning pointer for mapping.
Definition: Session.h:158
proj::TuningList & omni::Session::tunings ( )

Returns reference to projector tunings.

56  {
57  return tunings_;
58  }
proj::TuningList tunings_
List with all projector tunings.
Definition: Session.h:155
proj::TuningList const & omni::Session::tunings ( ) const

Returns const reference to projector tunings.

61  {
62  return tunings_;
63  }
proj::TuningList tunings_
List with all projector tunings.
Definition: Session.h:155
Session::visualizer_type * omni::Session::visualizer ( )
230  {
231  return viz_.get();
232  }
std::unique_ptr< visualizer_type > viz_
Definition: Session.h:176
Session::visualizer_type const * omni::Session::visualizer ( ) const
234  {
235  return viz_.get();
236  }
std::unique_ptr< visualizer_type > viz_
Definition: Session.h:176

Friends And Related Function Documentation

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

Test for equality. ScreenSetup is ignored.

240  {
241  return
250  ;
251  }
BlendSettings blendSettings_
Definition: Session.h:173
Mode mode_
Current session mode.
Definition: Session.h:170
proj::TuningList tunings_
List with all projector tunings.
Definition: Session.h:155
ExportSettings exportSettings_
Definition: Session.h:174
#define OMNI_TEST_MEMBER_EQUAL(member)
Definition: util.h:125
std::unique_ptr< Canvas > canvas_
Owning pointer for canvas.
Definition: Session.h:164
InputList inputs_
List with all inputs (e.g. images, videos etc)
Definition: Session.h:161
visual::Scene scene_
Definition: Session.h:172
#define OMNI_TEST_PTR_MEMBER_EQUAL(member)
Definition: util.h:128
std::unique_ptr< Mapping > mapping_
Owning pointer for mapping.
Definition: Session.h:158

Field Documentation

BlendSettings omni::Session::blendSettings_
private
std::unique_ptr<Canvas> omni::Session::canvas_
private

Owning pointer for canvas.

ExportSettings omni::Session::exportSettings_
private
InputList omni::Session::inputs_
private

List with all inputs (e.g. images, videos etc)

std::unique_ptr<Mapping> omni::Session::mapping_
private

Owning pointer for mapping.

Mode omni::Session::mode_ = Mode::SCREENSETUP
private

Current session mode.

visual::Scene omni::Session::scene_
private
ScreenSetup omni::Session::screenSetup_
private

Current screen setup.

proj::TuningList omni::Session::tunings_
private

List with all projector tunings.

std::unique_ptr<visualizer_type> omni::Session::viz_
private

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