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::proj::ChannelCorrectionParameters Class Reference

Parameter widget for channel correction. More...

#include <ChannelCorrectionParameters.h>

Inheritance diagram for omni::ui::proj::ChannelCorrectionParameters:
Inheritance graph
[legend]
Collaboration diagram for omni::ui::proj::ChannelCorrectionParameters:
Collaboration graph
[legend]

Public Slots

void reset ()
 Reset color correction for channel. 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 ()
 Is emitted when channel correction has changed. More...
 
- Signals inherited from omni::ui::ParameterWidget
void parametersUpdated ()
 

Public Member Functions

 ChannelCorrectionParameters (QWidget *=nullptr)
 
 ~ChannelCorrectionParameters ()
 
Channel channel () const
 Return channel. More...
 
void setChannel (Channel _channel)
 Set selected channel. More...
 
- 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...
 

Private Member Functions

void setup ()
 Setup widget. More...
 
void dataToFrontend ()
 Update sliders from current warp grid. More...
 
bool frontendToData ()
 Assign slider values to current warp grid. More...
 

Private Attributes

RangedFloatbrightness_ = nullptr
 
RangedFloatcontrast_ = nullptr
 
RangedFloatgamma_ = nullptr
 
RangedFloatmultiplier_ = nullptr
 
QPushButton * reset_ = nullptr
 
Channel channel_ = Channel::ALL
 

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 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...
 
- 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 channel correction.

Constructor & Destructor Documentation

omni::ui::proj::ChannelCorrectionParameters::ChannelCorrectionParameters ( QWidget *  _parent = nullptr)
28  :
29  ParameterWidget(_parent) {
30 
31  setup();
32  }
void setup()
Setup widget.
Definition: ChannelCorrectionParameters.cpp:85
ParameterWidget(QWidget *_parent=nullptr)
Default constructor.
Definition: ParameterWidget.cpp:28
omni::ui::proj::ChannelCorrectionParameters::~ChannelCorrectionParameters ( )
34  {
35 
36  }

Member Function Documentation

Channel omni::ui::proj::ChannelCorrectionParameters::channel ( ) const

Return channel.

38  {
39  return channel_;
40  }
Channel channel_
Definition: ChannelCorrectionParameters.h:75
void omni::ui::proj::ChannelCorrectionParameters::dataModelChanged ( )
signal

Is emitted when channel correction has changed.

void omni::ui::proj::ChannelCorrectionParameters::dataToFrontend ( )
privatevirtual

Update sliders from current warp grid.

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

46  {
48  auto _setSlider = [&](RangedFloat* _w, float _value) {
49  QColor _sliderColor = _color;
50  if (channel() == Channel::ALL) {
51  _sliderColor = QColor("#3d3d3d");
52  }
53  _w->setStyleSheet("selection-background-color : "+_sliderColor.name());
54  _w->setValue(_value);
55  _w->setGripSize(0);
56  };
57 
58  _setSlider(brightness_,dataModel()->brightness());
59  _setSlider(contrast_,dataModel()->contrast());
60  _setSlider(gamma_,dataModel()->gamma());
61  _setSlider(multiplier_,dataModel()->multiplier());
62 
63  reset_->setStyleSheet("QPushButton { border: 2.5px solid " +
64  _color.name() + " }");
65  }
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
RangedFloat * brightness_
Definition: ChannelCorrectionParameters.h:70
RangedFloat * gamma_
Definition: ChannelCorrectionParameters.h:72
Channel channel() const
Return channel.
Definition: ChannelCorrectionParameters.cpp:38
RangedFloat * contrast_
Definition: ChannelCorrectionParameters.h:71
float contrast(float v, float contrast_value)
Calculate contrast corrected value.
Definition: colorcorrection.h:38
static QColor channelColor(Channel)
Definition: ColorCorrection.cpp:117
QPushButton * reset_
Definition: ChannelCorrectionParameters.h:74
RangedFloat * multiplier_
Definition: ChannelCorrectionParameters.h:73
float brightness(float v, float brightness_value)
Definition: colorcorrection.h:33
float gamma(float v, float gamma_value)
Calculate gamma corrected value.
Definition: colorcorrection.h:46
bool omni::ui::proj::ChannelCorrectionParameters::frontendToData ( )
privatevirtual

Assign slider values to current warp grid.

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

67  {
68  dataModel()->setBrightness(brightness_->value());
69  dataModel()->setContrast(contrast_->value());
70  dataModel()->setGamma(gamma_->value());
71  dataModel()->setMultiplier(multiplier_->value());
72  return true;
73  }
value_type value() const
Return value.
Definition: RangedValue.h:65
pointer_type dataModel()
Return pointer to data model.
Definition: DataModel.h:118
RangedFloat * brightness_
Definition: ChannelCorrectionParameters.h:70
RangedFloat * gamma_
Definition: ChannelCorrectionParameters.h:72
RangedFloat * contrast_
Definition: ChannelCorrectionParameters.h:71
RangedFloat * multiplier_
Definition: ChannelCorrectionParameters.h:73
void omni::ui::proj::ChannelCorrectionParameters::reset ( )
slot

Reset color correction for channel.

75  {
76  this->locked([&](){
77  brightness_->setValue(0.0);
78  contrast_->setValue(0.0);
79  gamma_->setValue(0.0);
80  multiplier_->setValue(0.5);
81  });
83  }
RangedFloat * brightness_
Definition: ChannelCorrectionParameters.h:70
RangedFloat * gamma_
Definition: ChannelCorrectionParameters.h:72
RangedFloat * contrast_
Definition: ChannelCorrectionParameters.h:71
void setValue(double)
Set value, valueChanged() signal will be emitted.
Definition: RangedFloat.cpp:80
void locked(F f)
Lock widget and execute given functor.
Definition: Locked.h:30
RangedFloat * multiplier_
Definition: ChannelCorrectionParameters.h:73
virtual void updateDataModel()
Update the data model interface.
Definition: DataModel.h:134
void omni::ui::proj::ChannelCorrectionParameters::setChannel ( Channel  _channel)

Set selected channel.

42  {
43  channel_ = _channel;
44  }
Channel channel_
Definition: ChannelCorrectionParameters.h:75
void omni::ui::proj::ChannelCorrectionParameters::setup ( )
private

Setup widget.

85  {
86  QLayout* _layout = new QVBoxLayout;
87  setLayout(_layout);
88 
89  auto _addSlider = [&](QString const& _name) -> RangedFloat* {
90  auto* _slider = addWidget(_name,0.0,-1.0,1.0);
91  _slider->setSingleStep(0.001);
92  _slider->setPageStep(0.01);
93  _slider->setPivot(0.0);
94  connect(_slider,&RangedFloat::valueChanged,
96  return _slider;
97  };
98 
99  this->locked([&](){
100  brightness_ = _addSlider("Brightness");
101  contrast_ = _addSlider("Contrast");
102  gamma_ = _addSlider("Gamma");
103  multiplier_ = _addSlider("Multiplier");
104  multiplier_->setRange(0.0,1.0);
106 
107  reset_ = new QPushButton("Reset");
108  layout()->addWidget(reset_);
109  connect(reset_,SIGNAL(clicked()),this,SLOT(reset()));
110  });
111  }
RangedFloat * brightness_
Definition: ChannelCorrectionParameters.h:70
void reset()
Reset color correction for channel.
Definition: ChannelCorrectionParameters.cpp:75
RangedFloat * gamma_
Definition: ChannelCorrectionParameters.h:72
void setDefaultValue(double)
Definition: RangedFloat.cpp:112
RangedFloat * contrast_
Definition: ChannelCorrectionParameters.h:71
void setRange(double, double)
Set range (minimum/maximum), rangeChanged() signel will be emitted.
Definition: RangedFloat.cpp:95
void locked(F f)
Lock widget and execute given functor.
Definition: Locked.h:30
QPushButton * reset_
Definition: ChannelCorrectionParameters.h:74
RangedFloat * addWidget(QString const &, float, float, float)
Adds a widget with a name, a value and min-max range.
Definition: ParameterWidget.cpp:59
RangedFloat * multiplier_
Definition: ChannelCorrectionParameters.h:73
virtual void updateDataModel()
Update the data model interface.
Definition: DataModel.h:134

Field Documentation

RangedFloat* omni::ui::proj::ChannelCorrectionParameters::brightness_ = nullptr
private
Channel omni::ui::proj::ChannelCorrectionParameters::channel_ = Channel::ALL
private
RangedFloat* omni::ui::proj::ChannelCorrectionParameters::contrast_ = nullptr
private
RangedFloat* omni::ui::proj::ChannelCorrectionParameters::gamma_ = nullptr
private
RangedFloat* omni::ui::proj::ChannelCorrectionParameters::multiplier_ = nullptr
private
QPushButton* omni::ui::proj::ChannelCorrectionParameters::reset_ = nullptr
private

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