CMS 3D CMS Logo

IgQtRangeValue< T > Class Template Reference

#include <Iguana/GLBrowsers/interface/IgQtRangeValue.h>

Inheritance diagram for IgQtRangeValue< T >:

IgQtRangeControlImp< T >

List of all members.

Public Types

enum  BoundaryHandling { ACCUMULATE, MODULATE }
typedef IgQtRangeValue< T > inherited

Public Member Functions

virtual BoundaryHandling boundaryHandling (void) const
 IgQtRangeValue (T value=0, T min=0, T max=SHRT_MAX)
virtual bool isValueChanged (void) const
virtual T maxValue (void) const
virtual T minValue (void) const
virtual void setBoundaryHandling (BoundaryHandling mode)
virtual void setMaxValue (T value)
virtual void setMinValue (T value)
virtual void setRange (T min, T max)
virtual void setValue (T value)
virtual T value (void) const
virtual T valueChange (void) const

Protected Member Functions

accumulate (T value) const
adjustValue (T value)
void forceValue (T value)
void forceValueChanged (T delta)
modulate (T value) const

Private Attributes

BoundaryHandling m_boundary
m_change
m_max
m_min
m_value


Detailed Description

template<class T>
class IgQtRangeValue< T >

Definition at line 20 of file IgQtRangeValue.h.


Member Typedef Documentation

template<class T>
typedef IgQtRangeValue<T> IgQtRangeValue< T >::inherited

Reimplemented in IgQtRangeControlFloat, IgQtRangeControlImp< T >, IgQtRangeControlImp< long >, IgQtRangeControlImp< unsigned long >, IgQtRangeControlImp< int >, IgQtRangeControlImp< unsigned int >, IgQtRangeControlImp< unsigned short >, and IgQtRangeControlImp< short >.

Definition at line 23 of file IgQtRangeValue.h.


Member Enumeration Documentation

template<class T>
enum IgQtRangeValue::BoundaryHandling

Enumerator:
ACCUMULATE 
MODULATE 

Definition at line 25 of file IgQtRangeValue.h.

00025                           {
00026         ACCUMULATE,
00027         MODULATE
00028     };


Constructor & Destructor Documentation

template<class T>
IgQtRangeValue< T >::IgQtRangeValue ( value = 0,
min = 0,
max = SHRT_MAX 
) [inline]

Definition at line 127 of file IgQtRangeValue.h.

References IgQtRangeValue< T >::setValue().

00130     : m_value (value),
00131       m_change (0),
00132       m_min (min),
00133       m_max (max),
00134       m_boundary (ACCUMULATE)
00135 { setValue (value); }


Member Function Documentation

template<class T>
T IgQtRangeValue< T >::accumulate ( value  )  const [inline, protected]

Definition at line 88 of file IgQtRangeValue.h.

00089     {
00090       if (value > m_max)
00091         return m_max;
00092       else if (value < m_min)
00093         return m_min;
00094       return value;
00095     }

template<class T>
T IgQtRangeValue< T >::adjustValue ( value  )  [inline, protected]

Definition at line 97 of file IgQtRangeValue.h.

00098     {
00099       switch (boundaryHandling ())
00100       {
00101       case ACCUMULATE:
00102         value = accumulate (value);
00103         break;
00104 
00105       case MODULATE:
00106         value = modulate (value);
00107         break;
00108       }
00109       return value;
00110     }

template<class T>
virtual BoundaryHandling IgQtRangeValue< T >::boundaryHandling ( void   )  const [inline, virtual]

Definition at line 73 of file IgQtRangeValue.h.

00074     { return m_boundary; }

template<class T>
void IgQtRangeValue< T >::forceValue ( value  )  [inline, protected]

Definition at line 112 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< T >::initialize().

00113     { m_value = value; }

template<class T>
void IgQtRangeValue< T >::forceValueChanged ( delta  )  [inline, protected]

Definition at line 115 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< T >::initialize(), IgQtRangeControlImp< T >::setDirty(), and IgQtRangeControlImp< T >::setValue().

00116     { m_change = delta; }

template<class T>
virtual bool IgQtRangeValue< T >::isValueChanged ( void   )  const [inline, virtual]

Reimplemented in IgQtRangeValueFloat.

Definition at line 50 of file IgQtRangeValue.h.

00051     { return valueChange () ? true : false; }

template<class T>
virtual T IgQtRangeValue< T >::maxValue ( void   )  const [inline, virtual]

Definition at line 67 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< T >::moveValue(), and IgQtRangeControlImp< T >::setValue().

00068     { return m_max; }

template<class T>
virtual T IgQtRangeValue< T >::minValue ( void   )  const [inline, virtual]

Definition at line 61 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< T >::moveValue(), and IgQtRangeControlImp< T >::setValue().

00062     { return m_min; }

template<class T>
T IgQtRangeValue< T >::modulate ( value  )  const [inline, protected]

Definition at line 80 of file IgQtRangeValue.h.

00081     {
00082       T width = m_max - m_min;
00083       value -= int ((value - m_min) / width) * width;
00084       value += int ((m_max - value) / width) * width;
00085       return value;
00086     }

template<class T>
virtual void IgQtRangeValue< T >::setBoundaryHandling ( BoundaryHandling  mode  )  [inline, virtual]

Definition at line 76 of file IgQtRangeValue.h.

Referenced by Ig3DVectorBaseControl::makeControl().

00077     { m_boundary = mode; setValue (m_value); }

template<class T>
virtual void IgQtRangeValue< T >::setMaxValue ( value  )  [inline, virtual]

Definition at line 70 of file IgQtRangeValue.h.

00071     { setRange (minValue (), value); }

template<class T>
virtual void IgQtRangeValue< T >::setMinValue ( value  )  [inline, virtual]

Definition at line 64 of file IgQtRangeValue.h.

Referenced by IgExaminerViewerCategory::addExaminerViewerTab(), IgGLRenderCategory::addGLRenderTab(), Ig3DAnimsCategory::Ig3DAnimsCategory(), and Ig3DViewpointsCategory::Ig3DViewpointsCategory().

00065     { setRange (value, maxValue ()); }

template<class T>
virtual void IgQtRangeValue< T >::setRange ( min,
max 
) [inline, virtual]

Reimplemented in IgQtRangeControlFloat, IgQtRangeControlImp< T >, IgQtRangeControlImp< long >, IgQtRangeControlImp< unsigned long >, IgQtRangeControlImp< int >, IgQtRangeControlImp< unsigned int >, IgQtRangeControlImp< unsigned short >, and IgQtRangeControlImp< short >.

Definition at line 53 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< short >::editSettings(), IgQtRangeControlImp< short >::setRange(), and IgQtRangeControlImp< short >::setSettingString().

00054     {
00055       if (min > max)
00056         std::swap (min, max);
00057       m_max = max; m_min = min;
00058       setValue (m_value);
00059     }

template<class T>
virtual void IgQtRangeValue< T >::setValue ( value  )  [inline, virtual]

Reimplemented in IgQtRangeControlFloat, IgQtRangeControlImp< T >, IgQtRangeValueFloat, IgQtRangeControlImp< long >, IgQtRangeControlImp< unsigned long >, IgQtRangeControlImp< int >, IgQtRangeControlImp< unsigned int >, IgQtRangeControlImp< unsigned short >, and IgQtRangeControlImp< short >.

Definition at line 40 of file IgQtRangeValue.h.

Referenced by IgQtRangeValue< T >::IgQtRangeValue(), and IgQtRangeControlImp< T >::setValue().

00041     {
00042       value = adjustValue (value);
00043       m_change = value - m_value;
00044       m_value = value;
00045     }

template<class T>
virtual T IgQtRangeValue< T >::value ( void   )  const [inline, virtual]

Definition at line 37 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< T >::initialize(), IgQtRangeControlImp< T >::moveValue(), IgGLRenderCategory::setAntialiasing(), IgQtRangeControlImp< T >::setValue(), Ig3DVec4fControl::wValue(), Ig3DVectorControl::xValue(), Ig3DVec2fControl::xValue(), Ig3DVec4fControl::xValue(), Ig3DVectorControl::yValue(), Ig3DVec2fControl::yValue(), Ig3DVec4fControl::yValue(), Ig3DVectorControl::zValue(), and Ig3DVec4fControl::zValue().

00038     { return m_value; }

template<class T>
virtual T IgQtRangeValue< T >::valueChange ( void   )  const [inline, virtual]

Definition at line 47 of file IgQtRangeValue.h.

Referenced by IgQtRangeControlImp< T >::setValue(), Ig3DVec4fControl::wChange(), Ig3DVectorControl::xChange(), Ig3DVec4fControl::xChange(), Ig3DVec2fControl::xChange(), Ig3DVectorControl::yChange(), Ig3DVec4fControl::yChange(), Ig3DVec2fControl::yChange(), Ig3DVectorControl::zChange(), and Ig3DVec4fControl::zChange().

00048     { return m_change; }


Member Data Documentation

template<class T>
BoundaryHandling IgQtRangeValue< T >::m_boundary [private]

Definition at line 123 of file IgQtRangeValue.h.

template<class T>
T IgQtRangeValue< T >::m_change [private]

Definition at line 120 of file IgQtRangeValue.h.

template<class T>
T IgQtRangeValue< T >::m_max [private]

Definition at line 122 of file IgQtRangeValue.h.

template<class T>
T IgQtRangeValue< T >::m_min [private]

Definition at line 121 of file IgQtRangeValue.h.

template<class T>
T IgQtRangeValue< T >::m_value [private]

Definition at line 119 of file IgQtRangeValue.h.


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:25:36 2009 for CMSSW by  doxygen 1.5.4