Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Attributes
omni::ui::mixin::Step< VALUE > Struct Template Reference

Mixin Stepping value class template Singla and page step. More...

#include <Step.h>

Inheritance diagram for omni::ui::mixin::Step< VALUE >:
Inheritance graph
[legend]
Collaboration diagram for omni::ui::mixin::Step< VALUE >:
Collaboration graph
[legend]

Public Types

typedef VALUE value_type
 

Public Member Functions

 Step (value_type _singleStep=1.0, value_type _pageStep=10.0, bool _snap=false)
 Construct with a single step, page step value. More...
 
qreal snapped (value_type _v) const
 Return snapped value. More...
 
bool snap () const
 Snap value (align to single step value) More...
 
void setSnap (bool _snap)
 Set boolean if value is to be snapped. More...
 
value_type singleStep () const
 Return value for single step. More...
 
value_type pageStep () const
 Return value for page step. More...
 
void setSingleStep (value_type _singleStep)
 Set new single step value. More...
 
void setPageStep (value_type _pageStep)
 Set new value for page step. More...
 

Protected Member Functions

template<typename MIN , typename MAX , typename F >
void for_each_step (MIN _min, MAX _max, F f)
 Functor to be applied for each step between min and maximum. More...
 

Private Attributes

value_type singleStep_
 
value_type pageStep_
 
bool snap_
 

Detailed Description

template<typename VALUE>
struct omni::ui::mixin::Step< VALUE >

Mixin Stepping value class template Singla and page step.

Member Typedef Documentation

template<typename VALUE>
typedef VALUE omni::ui::mixin::Step< VALUE >::value_type

Constructor & Destructor Documentation

template<typename VALUE>
omni::ui::mixin::Step< VALUE >::Step ( value_type  _singleStep = 1.0,
value_type  _pageStep = 10.0,
bool  _snap = false 
)
inline

Construct with a single step, page step value.

41  :
42  singleStep_(_singleStep),
43  pageStep_(_pageStep),
44  snap_(_snap)
45  {}
bool snap_
Definition: Step.h:113
value_type singleStep_
Definition: Step.h:111
value_type pageStep_
Definition: Step.h:112

Member Function Documentation

template<typename VALUE>
template<typename MIN , typename MAX , typename F >
void omni::ui::mixin::Step< VALUE >::for_each_step ( MIN  _min,
MAX  _max,
f 
)
inlineprotected

Functor to be applied for each step between min and maximum.

94  {
95  int _step = 0;
96 
97  for (value_type i = _min; i <= _max; i += singleStep())
98  {
99  int _rI = int(std::round(double(i) / singleStep()));
100 
101  bool _isPage = int(pageStep()) == 0 ? false :
102  abs(_rI) %
103  int(std::round(double(pageStep()) /
104  singleStep())) == 0;
105  f(_step, i, _isPage);
106  ++_step;
107  }
108  }
value_type pageStep() const
Return value for page step.
Definition: Step.h:73
VALUE value_type
Definition: Step.h:35
value_type singleStep() const
Return value for single step.
Definition: Step.h:67
template<typename VALUE>
value_type omni::ui::mixin::Step< VALUE >::pageStep ( ) const
inline

Return value for page step.

74  {
75  return pageStep_;
76  }
value_type pageStep_
Definition: Step.h:112
template<typename VALUE>
void omni::ui::mixin::Step< VALUE >::setPageStep ( value_type  _pageStep)
inline

Set new value for page step.

86  {
87  pageStep_ = _pageStep;
88  }
value_type pageStep_
Definition: Step.h:112
template<typename VALUE>
void omni::ui::mixin::Step< VALUE >::setSingleStep ( value_type  _singleStep)
inline

Set new single step value.

80  {
81  singleStep_ = _singleStep;
82  }
value_type singleStep_
Definition: Step.h:111
template<typename VALUE>
void omni::ui::mixin::Step< VALUE >::setSnap ( bool  _snap)
inline

Set boolean if value is to be snapped.

62  {
63  snap_ = _snap;
64  }
bool snap_
Definition: Step.h:113
template<typename VALUE>
value_type omni::ui::mixin::Step< VALUE >::singleStep ( ) const
inline

Return value for single step.

68  {
69  return singleStep_;
70  }
value_type singleStep_
Definition: Step.h:111
template<typename VALUE>
bool omni::ui::mixin::Step< VALUE >::snap ( ) const
inline

Snap value (align to single step value)

56  {
57  return snap_;
58  }
bool snap_
Definition: Step.h:113
template<typename VALUE>
qreal omni::ui::mixin::Step< VALUE >::snapped ( value_type  _v) const
inline

Return snapped value.

49  {
50  return value_type(round(qreal(_v) / singleStep())) *
51  singleStep();
52  }
VALUE value_type
Definition: Step.h:35
value_type singleStep() const
Return value for single step.
Definition: Step.h:67

Field Documentation

template<typename VALUE>
value_type omni::ui::mixin::Step< VALUE >::pageStep_
private
template<typename VALUE>
value_type omni::ui::mixin::Step< VALUE >::singleStep_
private
template<typename VALUE>
bool omni::ui::mixin::Step< VALUE >::snap_
private

The documentation for this struct was generated from the following file: