1 #ifndef color_rgb_get_alpha 2 #define color_rgb_get_alpha 3 4 // ::color::get::alpha( c ) 5 6 #include "../category.hpp" 7 8 9 namespace color 10 { 11 namespace get 12 { 13 14 template< typename value_name, unsigned red_position, unsigned green_position, unsigned blue_position, unsigned alpha_position > 15 inline 16 typename ::color::trait::component 17 < 18 ::color::category::rgb 19 < 20 ::color::category::_internal::rgba_scramble < value_name, red_position, green_position, blue_position, alpha_position > 21 > 22 >::return_image_type alpha(::color::model<::color::category::rgb<::color::category::_internal::rgba_scramble<value_name,red_position,green_position,blue_position,alpha_position>>> const & color_parameter)23 alpha( ::color::model< ::color::category::rgb< ::color::category::_internal::rgba_scramble< value_name, red_position, green_position, blue_position, alpha_position > > > const& color_parameter ) 24 { 25 typedef ::color::category::_internal::rgba_scramble< value_name, red_position, green_position, blue_position, alpha_position > tag_type; 26 typedef ::color::category::rgb< tag_type > category_type; 27 28 enum { alpha_enum = ::color::place::_internal::alpha< category_type >::position_enum }; 29 30 // TODO c++14 static_assert( alpha_position != alpha_enum, "Internal: Mismach in aplha position." ); 31 32 return color_parameter.template get< alpha_position >(); 33 } 34 35 // TODO template< typename tag_name > 36 // TODO inline 37 // TODO typename ::color::model< ::color::category::rgb< tag_name> >::component_const_type 38 // TODO alpha( ::color::model< ::color::category::rgb< tag_name> > const& color_parameter ) 39 // TODO { 40 // TODO typedef ::color::category::rgb< tag_name> category_type; 41 // TODO enum{ alpha_enum = ::color::place::_internal::alpha<category_type>::position_enum }; 42 // TODO 43 // TODO // TODO return if_< ::color::place::_internal::alpha<category_type>::has_enum, maximum() , color_parameter.template get<alpha_enum>()> 44 // TODO 45 // TODO return color_parameter.template get<alpha_enum>(); 46 // TODO } 47 48 } 49 } 50 51 #endif 52 53