6 #ifndef HUV_H_6014714286 7 #define HUV_H_6014714286 9 #include <Carna/Carna.h> 45 operator signed short()
const;
56 explicit HUV(
signed int value,
bool absolute=
false );
62 explicit HUV(
float intensity,
bool absolute=
false );
67 template<
typename T >
73 template<
typename T >
89 inline HUV::operator
signed short()
const 100 if( this->value < -1024 ) this->value = -1024;
101 if( this->value > 3071 ) this->value = 3071;
108 const static float huvMax = 3071;
111 if( intensity < 0 ) intensity = 0;
112 if( intensity > 1 ) intensity = 1;
114 float huvFloat = intensity * 4095.f + 0.5;
115 if( absolute ) huvFloat -= 1024;
116 if( huvFloat > huvMax ) huvFloat = huvMax;
117 value =
static_cast< signed short >( huvFloat );
123 return (
value + 1024 ) / 4095.f;
129 return value / 4095.f;
133 template<
typename T >
136 return HUV( value,
true );
140 template<
typename T >
143 return HUV( value,
false );
152 #endif // HUV_H_6014714286 static HUV rel(T value)
Wraps a relative HU value.
HUV()=default
Constructor.
Defines Carna::base::CarnaException, Carna::base::AssertionFailure.
signed short value
Holds the HU value.
float absIntensity() const
Returns the corresponding absolute intensity.
float relIntensity() const
Returns the corresponding relative intensity.
static HUV abs(T value)
Wraps an absolute HU value.