Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Slots | Signals | Public Member Functions | Private Member Functions | Private Attributes
omni::ui::Warp Class Reference

Dock widget for editing warp grid parameters. More...

#include <Warp.h>

Inheritance diagram for omni::ui::Warp:
Inheritance graph
[legend]
Collaboration diagram for omni::ui::Warp:
Collaboration graph
[legend]

Public Slots

void resetWarpGrid ()
 
void resizeWarpGrid (bool)
 
void changeInterpolation (int)
 

Signals

void dataModelChanged ()
 

Public Member Functions

 Warp (QWidget *=nullptr)
 
 ~Warp ()
 
- Public Member Functions inherited from omni::ui::DockWidget
 DockWidget (QWidget *=nullptr)
 
template<typename UI >
 DockWidget (UI &_ui, QWidget *_parent=nullptr)
 
virtual ~DockWidget ()
 
- Public Member Functions inherited from omni::ui::mixin::DataModel< DATAMODEL, SHARED >
 DataModel ()
 
void setDataModel (pointer_type _dataModel)
 Set new data model. More...
 
pointer_type dataModel ()
 Return pointer to data model. More...
 
const pointer_type dataModel () const
 Return pointer to data model (const version) More...
 
virtual void updateFrontend ()
 Push data to frontend widgets and all child widgets. More...
 
virtual void updateDataModel ()
 Update the data model interface. More...
 

Private Member Functions

void dataToFrontend ()
 Update sliders from current warp grid. More...
 
bool frontendToData ()
 Assign slider values to current warp grid. More...
 
omni::WarpGrid const * warpGrid () const
 
omni::WarpGridwarpGrid ()
 

Private Attributes

std::unique_ptr< Ui::Warp > ui_
 

Additional Inherited Members

- Public Types inherited from omni::ui::mixin::DataModel< DATAMODEL, SHARED >
typedef DATAMODEL data_model_type
 Data type. More...
 
typedef DataModel
< data_model_type, SHARED > 
type
 This type. More...
 
typedef detail::PointerType
< data_model_type, SHARED > 
pointer_type_handler
 Pointer type handler. More...
 
typedef pointer_type_handler::type pointer_type
 Derived pointer type. More...
 
- Protected Member Functions inherited from omni::ui::DockWidget
template<typename UI >
void setup (UI &_ui)
 Setup ui form UI parameter is smart pointer (e.g. unique_ptr) to UI form. More...
 
- Protected Member Functions inherited from omni::ui::mixin::Locked
template<typename F >
void locked (F f)
 Lock widget and execute given functor. More...
 
bool isLocked () const
 Return true if widget is locked. More...
 

Detailed Description

Dock widget for editing warp grid parameters.

Constructor & Destructor Documentation

omni::ui::Warp::Warp ( QWidget *  _parent = nullptr)
32  :
33  DockWidget(_parent)
34  {
35  this->setup(ui_);
36 
37  auto setupSlider = [&](RangedInt *_slider)
38  {
39  _slider->hide();
40  _slider->setRange(2, 12);
41  _slider->setSingleStep(1);
42  _slider->setPageStep(1);
43  _slider->setDefaultValue(4);
44  _slider->setUseDefaultValue(true);
45  connect(_slider, &RangedInt::valueChanged,
46  this, &Warp::updateDataModel);
47  };
48 
49  setupSlider(ui_->sliderHorz);
50  ui_->sliderHorz->setLabel("Horizontal");
51 
52  setupSlider(ui_->sliderVert);
53  ui_->sliderVert->setLabel("Vertical");
54 
55  connect(this, &Warp::dataModelChanged, this, &Warp::updateFrontend);
56 
57  connect(ui_->btnResize, SIGNAL(clicked(bool)), this,
58  SLOT(resizeWarpGrid(bool)));
59  connect(ui_->btnReset, SIGNAL(clicked()), this,
60  SLOT(resetWarpGrid()));
61 
62  connect(ui_->boxInterpolation, SIGNAL(currentIndexChanged(int)), this,
63  SLOT(changeInterpolation(int)));
64  connect(ui_->chkShowBlendMask, &QCheckBox::clicked,
65  this, &Warp::updateDataModel);
66  }
void setup(UI &_ui)
Setup ui form UI parameter is smart pointer (e.g. unique_ptr) to UI form.
Definition: DockWidget.h:44
DockWidget(QWidget *=nullptr)
Definition: DockWidget.cpp:24
void resizeWarpGrid(bool)
Definition: Warp.cpp:110
std::unique_ptr< Ui::Warp > ui_
Definition: Warp.h:65
virtual void updateDataModel()
Update the data model interface.
Definition: DataModel.h:134
virtual void updateFrontend()
Push data to frontend widgets and all child widgets.
Definition: DataModel.h:128
void resetWarpGrid()
Definition: Warp.cpp:101
void dataModelChanged()
void changeInterpolation(int)
Definition: Warp.cpp:91
omni::ui::Warp::~Warp ( )
69  {}

Member Function Documentation

void omni::ui::Warp::changeInterpolation ( int  _index)
slot
91  {
92  if (!warpGrid()) return;
93 
94  auto _interp = util::intToEnum<WarpGrid::Interpolation>(_index);
95  warpGrid()->setInterpolation(_interp);
96  dataModel()->tunings().current()->visualizer()->updateWarpGrid();
98  emit dataModelChanged();
99  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
virtual void updateFrontend()
Push data to frontend widgets and all child widgets.
Definition: DataModel.h:128
void setInterpolation(Interpolation)
Interpolation value.
Definition: WarpGrid.cpp:79
void dataModelChanged()
omni::WarpGrid const * warpGrid() const
Definition: Warp.cpp:136
void omni::ui::Warp::dataModelChanged ( )
signal
void omni::ui::Warp::dataToFrontend ( )
privatevirtual

Update sliders from current warp grid.

Implements omni::ui::mixin::DataModel< DATAMODEL, SHARED >.

72  {
73  if (!warpGrid()) return;
74 
75  ui_->sliderHorz->setValue(warpGrid()->horizontal());
76  ui_->sliderVert->setValue(warpGrid()->vertical());
77  ui_->chkShowBlendMask->setChecked(
78  dataModel()->blendSettings().showInWarpMode());
79  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
std::unique_ptr< Ui::Warp > ui_
Definition: Warp.h:65
omni::WarpGrid const * warpGrid() const
Definition: Warp.cpp:136
bool omni::ui::Warp::frontendToData ( )
privatevirtual

Assign slider values to current warp grid.

Implements omni::ui::mixin::DataModel< DATAMODEL, SHARED >.

81  {
82  if (!warpGrid()) return false;
83 
84  dataModel()->blendSettings().setShowInWarpMode(
85  ui_->chkShowBlendMask->isChecked());
86  warpGrid()->resize(ui_->sliderHorz->value(), ui_->sliderVert->value());
87 
88  return true;
89  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
void resize(int _horz, int _vert)
Resize grid with given horizontal and vertical resolution.
Definition: WarpGrid.cpp:53
std::unique_ptr< Ui::Warp > ui_
Definition: Warp.h:65
omni::WarpGrid const * warpGrid() const
Definition: Warp.cpp:136
void omni::ui::Warp::resetWarpGrid ( )
slot
102  {
103  if (!warpGrid() || this->isLocked()) return;
104 
105  warpGrid()->reset();
106  dataModel()->tunings().current()->visualizer()->updateWarpGrid();
107  emit dataModelChanged();
108  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
void reset()
Resets all points to form a regular grid.
Definition: WarpGrid.cpp:41
bool isLocked() const
Return true if widget is locked.
Definition: Locked.h:40
void dataModelChanged()
omni::WarpGrid const * warpGrid() const
Definition: Warp.cpp:136
void omni::ui::Warp::resizeWarpGrid ( bool  _enabled)
slot
111  {
112  if (!warpGrid()) return;
113 
114  if (_enabled && !warpGrid()->isReset())
115  {
116  QMessageBox::StandardButton _reply =
117  QMessageBox::question(this,
118  "Reset warp grid",
119  "Changing the warp grid resolution resets all warp grid points. Do you want to continue?",
120  QMessageBox::Yes | QMessageBox::No,
121  QMessageBox::No);
122 
123  if (_reply == QMessageBox::No)
124  {
125  ui_->sliderVert->hide();
126  ui_->sliderHorz->hide();
127  ui_->btnResize->setChecked(false);
128  return;
129  }
130  }
131 
132  ui_->sliderVert->show();
133  ui_->sliderHorz->show();
134  }
std::unique_ptr< Ui::Warp > ui_
Definition: Warp.h:65
omni::WarpGrid const * warpGrid() const
Definition: Warp.cpp:136
omni::WarpGrid const * omni::ui::Warp::warpGrid ( ) const
private
137  {
138  if (!dataModel()) return nullptr;
139 
140  return dataModel()->tunings().current() ? &dataModel()->tunings().current()
141  ->warpGrid() : nullptr;
142  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
omni::WarpGrid * omni::ui::Warp::warpGrid ( )
private
145  {
146  if (!dataModel()) return nullptr;
147 
148  return dataModel()->tunings().current() ? &dataModel()->tunings().current()
149  ->warpGrid() : nullptr;
150  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118

Field Documentation

std::unique_ptr<Ui::Warp> omni::ui::Warp::ui_
private

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