#include <Iguana/GLBrowsers/interface/IgQtRangeMValueFloat.h>
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) |
Definition at line 16 of file IgQtRangeMValueFloat.h.
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 | |||
) |
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 { }
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 }
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 }
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 }