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

Parameter widget for getting and setting canvas parameters. More...

#include <CanvasParameters.h>

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

Public Slots

void setDataModel (canvas::Interface *)
 
virtual void setRescaleValues (bool _rescale)
 Set flag if values are rescaled. More...
 
virtual void setScale (float _factor)
 Set slider ranges. More...
 
virtual void setUnit (QString const &)
 Set slider units. More...
 
- Public Slots inherited from omni::ui::ParameterWidget
void clear ()
 Removes all parameter widgets. More...
 
virtual void updateParameters ()
 
double getParamAsFloat (QString const &) const
 Utility method for retrieving the value from a slider with id. More...
 
void setParamAsFloat (QString const &_str, double _value)
 Set slider value from given value. More...
 
int getParamAsInt (QString const &) const
 Utility method for retrieving the value from a slider with id. More...
 
void setParamAsInt (QString const &_str, int _value)
 Set slider value from given value. More...
 
bool getParamAsBool (QString const &) const
 Utility method for retrieving the value from checkbox with id. More...
 
QWidget * getWidget (QString const &)
 Get parameter widget from parameter map with Id. More...
 
void setParametersVisible (bool)
 Show / hide parameter widgets. More...
 
bool focusNext (bool _circular=false)
 Put focus on next element. More...
 
bool focusPrev (bool _circular=false)
 Put focus on prev element. More...
 
void focus (int _index)
 Focus item in layout with index. More...
 
void focusFirst ()
 Set focus on first widget in parameter list. More...
 
void focusLast ()
 Set focus on last widget in parameter list. More...
 
virtual void setScale (float)
 Set slider ranges. More...
 
virtual void setUnit (QString const &)
 Set slider ranges. More...
 

Signals

void dataModelChanged ()
 
- Signals inherited from omni::ui::ParameterWidget
void parametersUpdated ()
 

Public Member Functions

 CanvasParameters (QWidget *_parent=nullptr)
 
virtual ~CanvasParameters ()
 
- Public Member Functions inherited from omni::ui::ParameterWidget
 ParameterWidget (QWidget *_parent=nullptr)
 Default constructor. More...
 
virtual ~ParameterWidget ()
 Default Constructor. More...
 
RangedFloataddWidget (QString const &, float, float, float)
 Adds a widget with a name, a value and min-max range. More...
 
RangedIntaddIntegerWidget (QString const &, int, int, int)
 Adds a integer widget with a name, a value and min-max range. More...
 
RangedFloataddAngleWidget (QString const &, float, float, float)
 Adds an angle widget with a name, a value and min-max range. More...
 
RangedFloataddOffsetWidget (QString const &, float, float, float)
 Adds an offset widget with a name, a value and min-max range. More...
 
RotationaddRotationWidget (QString const &)
 Adds an Rotation widget with three dials for X,Y and Z axis. More...
 
omni::ui::AffineTransformaddAffineTransformWidget (QString const &, omni::AffineTransform *)
 Add a new affine transform widget with an id. More...
 
QCheckBox * addCheckBox (QString const &, bool _checked=false)
 Adds a checkbox. More...
 
int focusId () const
 Return id of focused parameter, -1 if no parameter is focused. More...
 
- Public Member Functions inherited from omni::ui::mixin::Scale< omni::ui::RangedFloat >
 Scale ()
 
virtual void setScale (float _scale)
 Set scale and apply to sliders. More...
 
bool rescaleValues () const
 
void setRescaleValues (bool _rescaleValues)
 
float scale () const
 Return scale value. More...
 
QString suffix () const
 Common unit of sliders. More...
 
void setSuffix (QString const &_suffix)
 Set suffix (unit) of slider. More...
 
void registerScaledSlider (slider_type *_slider)
 Register slider to be scaled. More...
 
void unregisterScaledSlider (slider_type *_slider)
 Remove slider from list, keep scale. More...
 
- 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...
 

Protected Member Functions

virtual void dataToFrontend ()
 Pure virtual method which determines how data model is represented in frontend. More...
 
virtual bool frontendToData ()
 Return true if data has changed by front end. More...
 
- Protected Member Functions inherited from omni::ui::ParameterWidget
virtual int firstFocusId () const
 Id of first focussed widget. More...
 
void keyPressEvent (QKeyEvent *_event)
 
- 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...
 

Private Attributes

QUniquePtr
< omni::ui::AffineTransform
transform_
 Transform widget. More...
 
QUniquePtr< QComboBox > boxViewMode_
 

Additional Inherited Members

- Public Types inherited from omni::ui::mixin::Scale< omni::ui::RangedFloat >
typedef omni::ui::RangedFloat slider_type
 
typedef float scalar_type
 
- 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...
 
- Static Public Member Functions inherited from omni::ui::mixin::Scale< omni::ui::RangedFloat >
static int getPrecision (float _scale)
 Return precesion by scale. More...
 
- Protected Attributes inherited from omni::ui::ParameterWidget
std::vector< QUniquePtr
< QWidget > > 
parameters_
 Slider parameter widgets. More...
 
std::map< QString, QWidget * > parameterMap_
 Slider widgets, sorted by their label. More...
 

Detailed Description

Parameter widget for getting and setting canvas parameters.

Constructor & Destructor Documentation

omni::ui::CanvasParameters::CanvasParameters ( QWidget *  _parent = nullptr)
28  :
29  ParameterWidget(_parent)
30  {
31  QLayout *_layout = new QVBoxLayout;
32  _layout->setSpacing(2);
33  _layout->setContentsMargins(0, 0, 0, 0);
34  _layout->setSizeConstraint(QLayout::SetMaximumSize);
35  setLayout(_layout);
37  }
ParameterWidget(QWidget *_parent=nullptr)
Default constructor.
Definition: ParameterWidget.cpp:28
virtual void updateDataModel()
Update the data model interface.
Definition: DataModel.h:134
omni::ui::CanvasParameters::~CanvasParameters ( )
virtual
40  {
41  }

Member Function Documentation

void omni::ui::CanvasParameters::dataModelChanged ( )
signal
void omni::ui::CanvasParameters::dataToFrontend ( )
protectedvirtual

Pure virtual method which determines how data model is represented in frontend.

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

55  {
56  if (!transform_) {
57  transform_.reset(addAffineTransformWidget("Transform", &dataModel()->transform()));
58  }
59 
60  if (!boxViewMode_) {
61  boxViewMode_.reset(new QComboBox());
62  boxViewMode_->addItem("Inside");
63  boxViewMode_->addItem("Outside");
64  boxViewMode_->addItem("Both");
65  layout()->addWidget(boxViewMode_.get());
66  connect(boxViewMode_.get(),
67  static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
69  }
70  boxViewMode_->setCurrentIndex(util::enumToInt(dataModel()->
71  viewMode()));
72  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
QUniquePtr< omni::ui::AffineTransform > transform_
Transform widget.
Definition: CanvasParameters.h:69
QUniquePtr< QComboBox > boxViewMode_
Definition: CanvasParameters.h:70
omni::ui::AffineTransform * addAffineTransformWidget(QString const &, omni::AffineTransform *)
Add a new affine transform widget with an id.
Definition: ParameterWidget.cpp:300
auto enumToInt(ENUM const &_v) -> typename std::underlying_type< ENUM >::type
Converts an enum class to integer.
Definition: util.h:105
virtual void updateDataModel()
Update the data model interface.
Definition: DataModel.h:134
bool omni::ui::CanvasParameters::frontendToData ( )
protectedvirtual

Return true if data has changed by front end.

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

43  {
44  if (!dataModel()) {
45  return false;
46  }
47  transform_->updateDataModel();
48 
49  dataModel()->setViewMode(util::intToEnum<Canvas::ViewMode>(boxViewMode_
50  ->
51  currentIndex()));
52  return true;
53  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
QUniquePtr< omni::ui::AffineTransform > transform_
Transform widget.
Definition: CanvasParameters.h:69
QUniquePtr< QComboBox > boxViewMode_
Definition: CanvasParameters.h:70
void omni::ui::CanvasParameters::setDataModel ( canvas::Interface _canvas)
slot
74  {
75  this->locked([&]() {
77  if (_canvas->scene()) {
78  setScale(_canvas->scene()->size());
79  setUnit(_canvas->scene()->unit().abbreviation());
81  }
82  });
83  emit dataModelChanged();
84  }
virtual void setScale(float _factor)
Set slider ranges.
Definition: CanvasParameters.cpp:97
void locked(F f)
Lock widget and execute given functor.
Definition: Locked.h:30
void setDataModel(pointer_type _dataModel)
Set new data model.
Definition: DataModel.h:110
virtual void updateFrontend()
Push data to frontend widgets and all child widgets.
Definition: DataModel.h:128
virtual void setUnit(QString const &)
Set slider units.
Definition: CanvasParameters.cpp:108
void omni::ui::CanvasParameters::setRescaleValues ( bool  _rescale)
virtualslot

Set flag if values are rescaled.

Parameters
_rescaleBoolean which tells if values are rescaled
86  {
88  if (transform_) {
89  transform_->setRescaleOffsetValues(_rescale);
90  }
91  if (!this->isLocked()) {
92  emit dataModelChanged();
93  }
94  }
void setRescaleValues(bool _rescaleValues)
Definition: Scale.h:65
QUniquePtr< omni::ui::AffineTransform > transform_
Transform widget.
Definition: CanvasParameters.h:69
bool isLocked() const
Return true if widget is locked.
Definition: Locked.h:40
void omni::ui::CanvasParameters::setScale ( float  _factor)
virtualslot

Set slider ranges.

Parameters
_factorScale factor
97  {
99  if (transform_) {
100  transform_->setOffsetRangeScale(_scale);
101  }
102  if (!this->isLocked()) {
103  emit dataModelChanged();
104  }
105  }
virtual void setScale(float)
Set slider ranges.
Definition: ParameterWidget.cpp:230
QUniquePtr< omni::ui::AffineTransform > transform_
Transform widget.
Definition: CanvasParameters.h:69
bool isLocked() const
Return true if widget is locked.
Definition: Locked.h:40
void omni::ui::CanvasParameters::setUnit ( QString const &  _unit)
virtualslot

Set slider units.

Set slider ranges.

108  {
110  if (transform_) {
111  transform_->setOffsetUnit(_unit);
112  }
113  }
virtual void setUnit(QString const &)
Set slider ranges.
Definition: ParameterWidget.cpp:234
QUniquePtr< omni::ui::AffineTransform > transform_
Transform widget.
Definition: CanvasParameters.h:69

Field Documentation

QUniquePtr<QComboBox> omni::ui::CanvasParameters::boxViewMode_
private
QUniquePtr<omni::ui::AffineTransform> omni::ui::CanvasParameters::transform_
private

Transform widget.


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