1 #ifndef color_hsi_convert_cmyk 2 #define color_hsi_convert_cmyk 3 4 #include "../../_internal/convert.hpp" 5 6 #include "../category.hpp" 7 8 9 #include "../../cmyk/cmyk.hpp" 10 #include "../../rgb/rgb.hpp" 11 12 13 14 namespace color 15 { 16 namespace _internal 17 { 18 19 template< typename hsi_tag_name, typename cmyk_tag_name > 20 struct convert 21 < 22 ::color::category::hsi< hsi_tag_name > 23 ,::color::category::cmyk< cmyk_tag_name > 24 > 25 { 26 public: 27 typedef ::color::category::hsi< hsi_tag_name > hsi_category_type, category_left_type; 28 typedef ::color::category::cmyk< cmyk_tag_name > cmyk_category_type, category_right_type; 29 30 typedef typename ::color::akin::rgb< cmyk_category_type >::akin_type rgb_category_type; 31 32 typedef ::color::model< hsi_category_type > hsi_model_type; 33 typedef ::color::model< cmyk_category_type > cmyk_model_type; 34 35 typedef ::color::model< rgb_category_type > rgb_model_type; 36 37 typedef ::color::trait::container<category_left_type> container_left_trait_type; 38 typedef ::color::trait::container<category_right_type> container_right_trait_type; 39 40 typedef typename container_left_trait_type::input_type container_left_input_type; 41 typedef typename container_right_trait_type::model_type container_right_const_input_type; 42 processcolor::_internal::convert43 static void process 44 ( 45 container_left_input_type left 46 ,container_right_const_input_type right 47 ) 48 { 49 left = hsi_model_type( rgb_model_type( cmyk_model_type( right ) ) ).container(); 50 } 51 }; 52 53 } 54 } 55 56 #endif 57