CMS 3D CMS Logo

IgQtRangeMValueFloat Class Reference

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

Inheritance diagram for IgQtRangeMValueFloat:

IgQtRangeMValue< float > IgQtRangeValuePrecision IgQtRangeMControlFloat

List of all members.

Public Member Functions

 IgQtRangeMValueFloat (const rangeMValues &values, float min=SHRT_MIN, float max=SHRT_MAX)
 IgQtRangeMValueFloat (unsigned int size, const float *values, float min=SHRT_MIN, float max=SHRT_MAX)
 IgQtRangeMValueFloat (float value=0., float min=SHRT_MIN, float max=SHRT_MAX)
virtual bool isValueChanged (unsigned int index) const
float roundOff (float number, float precision=.001)
virtual void setValue (unsigned int index, float value)

Protected Member Functions

void forceValueChanged (unsigned int index, float delta)
void forceValueChanged (float delta)


Detailed Description

Definition at line 16 of file IgQtRangeMValueFloat.h.


Constructor & Destructor Documentation

IgQtRangeMValueFloat::IgQtRangeMValueFloat ( float  value = 0.,
float  min = SHRT_MIN,
float  max = SHRT_MAX 
)

Definition at line 17 of file IgQtRangeMValueFloat.cc.

00020     : inherited (value, min, max),
00021       IgQtRangeValuePrecision (.01)
00022 { }

IgQtRangeMValueFloat::IgQtRangeMValueFloat ( unsigned int  size,
const float *  values,
float  min = SHRT_MIN,
float  max = SHRT_MAX 
)

Definition at line 24 of file IgQtRangeMValueFloat.cc.

00028     : inherited (size, values, min, max),
00029       IgQtRangeValuePrecision (.01)
00030 { }

IgQtRangeMValueFloat::IgQtRangeMValueFloat ( const rangeMValues values,
float  min = SHRT_MIN,
float  max = SHRT_MAX 
)

Definition at line 32 of file IgQtRangeMValueFloat.cc.

00035     : inherited (values, min, max),
00036       IgQtRangeValuePrecision (.01)
00037 { }


Member Function Documentation

void IgQtRangeMValueFloat::forceValueChanged ( unsigned int  index,
float  delta 
) [protected, virtual]

Reimplemented from IgQtRangeMValue< float >.

Definition at line 85 of file IgQtRangeMValueFloat.cc.

References ASSERT, IgQtRangeMValue< float >::m_change, IgQtRangeMValue< float >::m_valueChangeFlag, and IgQtRangeValuePrecision::precision().

00086 {
00087     ASSERT ( index < m_change.size() );
00088     m_change [index] = delta;
00089     if (fabs (delta) >= precision ())
00090         m_valueChangeFlag = true;
00091 }

void IgQtRangeMValueFloat::forceValueChanged ( float  delta  )  [protected, virtual]

Reimplemented from IgQtRangeMValue< float >.

Definition at line 72 of file IgQtRangeMValueFloat.cc.

References i, IgQtRangeMValue< float >::m_change, IgQtRangeMValue< float >::m_valueChangeFlag, IgQtRangeValuePrecision::precision(), and IgQtRangeMValue< float >::size().

Referenced by IgQtRangeMControlFloat::initialize(), and IgQtRangeMControlFloat::setDirty().

00073 {
00074     unsigned int size = m_change.size ();
00075     for (unsigned int i = 0; i < size; i++)
00076         m_change [i] = delta;
00077     
00078     if (fabs (delta) >= precision ())
00079         m_valueChangeFlag = true;
00080     else
00081         m_valueChangeFlag = false;
00082 }

bool IgQtRangeMValueFloat::isValueChanged ( unsigned int  index  )  const [virtual]

Reimplemented from IgQtRangeMValue< float >.

Definition at line 50 of file IgQtRangeMValueFloat.cc.

References IgQtRangeValuePrecision::precision(), and IgQtRangeMValue< float >::valueChange().

00051 { return fabs (valueChange (index)) >= precision (); }

float IgQtRangeMValueFloat::roundOff ( float  number,
float  precision = .001 
)

Definition at line 55 of file IgQtRangeMValueFloat.cc.

References IgQtRangeMValue< float >::m_min, and IgQtRangeValuePrecision::minimumPrecision().

Referenced by setValue().

00056 {
00057     if ((precision = fabs (precision)) > 0)
00058     {
00059         if (precision < minimumPrecision ())
00060             precision = minimumPrecision ();
00061 
00062         if (precision < 1.0)
00063           number =  m_min + round ((number - m_min) / precision) * precision;
00064         else
00065           number = round (number);
00066     }
00067     return number;
00068 }

void IgQtRangeMValueFloat::setValue ( unsigned int  index,
float  value 
) [virtual]

Reimplemented from IgQtRangeMValue< float >.

Reimplemented in IgQtRangeMControlFloat.

Definition at line 40 of file IgQtRangeMValueFloat.cc.

References IgQtRangeMValue< float >::adjustValue(), ASSERT, IgQtRangeMValue< float >::isValueChanged(), IgQtRangeMValue< float >::m_change, IgQtRangeMValue< float >::m_value, IgQtRangeMValue< float >::m_valueChangeFlag, IgQtRangeValuePrecision::precision(), and roundOff().

00041 {
00042     ASSERT ( index < m_value.size() );
00043     value    = roundOff (adjustValue (value), precision ());
00044     m_change[index] += value - m_value [index];
00045     m_value[index]  = value;
00046     m_valueChangeFlag = isValueChanged (index);
00047 }


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