TIKI_FORCE_INLINE Color fromFloat4( const float4& source ) { TIKI_ASSERT( source.x >= 0.0f && source.y >= 0.0f && source.z >= 0.0f && source.w >= 0.0f ); TIKI_ASSERT( source.x <= 1.0f && source.y <= 1.0f && source.z <= 1.0f && source.w <= 1.0f ); const uint8 r = uint8( source.x * 255.0f ); const uint8 g = uint8( source.y * 255.0f ); const uint8 b = uint8( source.z * 255.0f ); const uint8 a = uint8( source.w * 255.0f ); return fromRGBA( r, g, b, a ); }
TIKI_FORCE_INLINE Color fromFloat3( const float3& source, float alpha = 1.0f ) { TIKI_ASSERT( source.x >= 0.0f && source.y >= 0.0f && source.z >= 0.0f && alpha >= 0.0f ); TIKI_ASSERT( source.x <= 1.0f && source.y <= 1.0f && source.z <= 1.0f && alpha <= 1.0f ); const uint8 r = uint8( source.x * 255.0f ); const uint8 g = uint8( source.y * 255.0f ); const uint8 b = uint8( source.z * 255.0f ); const uint8 a = uint8( alpha * 255.0f ); return fromRGBA( r, g, b, a ); }
DataType fromRGBA(RGBA const& col) const { return fromRGBA(col, gamma); }
/** *\~english *\brief Constructor from a predefined colour *\param[in] predefined *\return The built RgbaColourT *\~french *\brief Constructeur à partir d'une couleur prédéfinie *\param[in] predefined *\return La RgbaColourT construite */ static RgbaColourT< ComponentType > fromPredefined( PredefinedRgbaColour predefined ) { return fromRGBA( ( uint32_t )predefined ); }