9 #ifndef BOOST_GIL_TYPEDEFS_HPP    10 #define BOOST_GIL_TYPEDEFS_HPP    12 #include <boost/gil/cmyk.hpp>    13 #include <boost/gil/device_n.hpp>    14 #include <boost/gil/gray.hpp>    15 #include <boost/gil/point.hpp>    16 #include <boost/gil/rgb.hpp>    17 #include <boost/gil/rgba.hpp>    24 #define BOOST_GIL_DEFINE_BASE_TYPEDEFS_INTERNAL(B, CM, CS, LAYOUT)                             \    25     template <typename, typename> struct pixel;                                          \    26     template <typename, typename> struct planar_pixel_reference;                         \    27     template <typename, typename> struct planar_pixel_iterator;                          \    28     template <typename> class memory_based_step_iterator;                                \    29     template <typename> class point;                                                    \    30     template <typename> class memory_based_2d_locator;                                   \    31     template <typename> class image_view;                                                \    32     template <typename, bool, typename> class image;                                     \    33     using CS##B##_pixel_t     = pixel<CM, LAYOUT>;                                       \    34     using CS##B##c_pixel_t    = pixel<CM, LAYOUT> const;                                 \    35     using CS##B##_ref_t       = pixel<CM, LAYOUT>&;                                      \    36     using CS##B##c_ref_t      = pixel<CM, LAYOUT> const&;                                \    37     using CS##B##_ptr_t       = CS##B##_pixel_t*;                                        \    38     using CS##B##c_ptr_t      = CS##B##c_pixel_t*;                                       \    39     using CS##B##_step_ptr_t  = memory_based_step_iterator<CS##B##_ptr_t>;               \    40     using CS##B##c_step_ptr_t = memory_based_step_iterator<CS##B##c_ptr_t>;              \    42         = memory_based_2d_locator<memory_based_step_iterator<CS##B##_ptr_t>>;            \    43     using CS##B##c_loc_t                                                                 \    44         = memory_based_2d_locator<memory_based_step_iterator<CS##B##c_ptr_t>>;           \    45     using CS##B##_step_loc_t                                                             \    46         = memory_based_2d_locator<memory_based_step_iterator<CS##B##_step_ptr_t>>;       \    47     using CS##B##c_step_loc_t                                                            \    48         = memory_based_2d_locator<memory_based_step_iterator<CS##B##c_step_ptr_t>>;      \    49     using CS##B##_view_t       = image_view<CS##B##_loc_t>;                              \    50     using CS##B##c_view_t      = image_view<CS##B##c_loc_t>;                             \    51     using CS##B##_step_view_t  = image_view<CS##B##_step_loc_t>;                         \    52     using CS##B##c_step_view_t = image_view<CS##B##c_step_loc_t>;                        \    53     using CS##B##_image_t = image<CS##B##_pixel_t, false, std::allocator<unsigned char>>;    56 #define BOOST_GIL_DEFINE_ALL_TYPEDEFS_INTERNAL(B, CM, CS, CS_FULL, LAYOUT)                        \    57     BOOST_GIL_DEFINE_BASE_TYPEDEFS_INTERNAL(B, CM, CS, LAYOUT)                                    \    58     using CS##B##_planar_ref_t      = planar_pixel_reference<CM&, CS_FULL>;                 \    59     using CS##B##c_planar_ref_t     = planar_pixel_reference<CM const&, CS_FULL>;           \    60     using CS##B##_planar_ptr_t      = planar_pixel_iterator<CM*, CS_FULL>;                  \    61     using CS##B##c_planar_ptr_t     = planar_pixel_iterator<CM const*, CS_FULL>;            \    62     using CS##B##_planar_step_ptr_t = memory_based_step_iterator<CS##B##_planar_ptr_t>;     \    63     using CS##B##c_planar_step_ptr_t                                                        \    64         = memory_based_step_iterator<CS##B##c_planar_ptr_t>;                                \    65     using CS##B##_planar_loc_t                                                              \    66         = memory_based_2d_locator<memory_based_step_iterator<CS##B##_planar_ptr_t>>;        \    67     using CS##B##c_planar_loc_t                                                             \    68         = memory_based_2d_locator<memory_based_step_iterator<CS##B##c_planar_ptr_t>>;       \    69     using CS##B##_planar_step_loc_t                                                         \    70         = memory_based_2d_locator<memory_based_step_iterator<CS##B##_planar_step_ptr_t>>;   \    71     using CS##B##c_planar_step_loc_t                                                        \    72         = memory_based_2d_locator<memory_based_step_iterator<CS##B##c_planar_step_ptr_t>>;  \    73     using CS##B##_planar_view_t       = image_view<CS##B##_planar_loc_t>;                   \    74     using CS##B##c_planar_view_t      = image_view<CS##B##c_planar_loc_t>;                  \    75     using CS##B##_planar_step_view_t  = image_view<CS##B##_planar_step_loc_t>;              \    76     using CS##B##c_planar_step_view_t = image_view<CS##B##c_planar_step_loc_t>;             \    77     using CS##B##_planar_image_t                                                            \    78         = image<CS##B##_pixel_t, true, std::allocator<unsigned char>>;    80 #define BOOST_GIL_DEFINE_BASE_TYPEDEFS(B, CM, CS)                                                  \    81     BOOST_GIL_DEFINE_BASE_TYPEDEFS_INTERNAL(B, CM, CS, CS##_layout_t)    83 #define BOOST_GIL_DEFINE_ALL_TYPEDEFS(B, CM, CS)                                                   \    84     BOOST_GIL_DEFINE_ALL_TYPEDEFS_INTERNAL(B, CM, CS, CS##_t, CS##_layout_t)    87 namespace boost { 
namespace gil {
    90 template <
typename B, 
typename Mn, 
typename Mx> 
struct scoped_channel_value;
    91 template <
typename T> 
struct float_point_zero;
    92 template <
typename T> 
struct float_point_one;
   124 using float32_t = scoped_channel_value<float, float_point_zero<float>, float_point_one<float>>;
   128 using float64_t = scoped_channel_value<double, float_point_zero<double>, float_point_one<double>>;
   130 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8, uint8_t, gray)
   131 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8s, int8_t, gray)
   132 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16, uint16_t, gray)
   133 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16s, int16_t, gray)
   134 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32, uint32_t, gray)
   135 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32s, int32_t, gray)
   136 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32f, 
float32_t, gray)
   138 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8, uint8_t, bgr)
   139 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8s, int8_t, bgr)
   140 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16, uint16_t, bgr)
   141 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16s, int16_t, bgr)
   142 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32, uint32_t, bgr)
   143 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32s, int32_t, bgr)
   144 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32f, 
float32_t, bgr)
   146 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8, uint8_t, argb)
   147 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8s, int8_t, argb)
   148 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16, uint16_t, argb)
   149 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16s, int16_t, argb)
   150 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32, uint32_t, argb)
   151 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32s, int32_t, argb)
   152 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32f, 
float32_t, argb)
   154 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8, uint8_t, abgr)
   155 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8s, int8_t, abgr)
   156 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16, uint16_t, abgr)
   157 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16s, int16_t, abgr)
   158 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32, uint32_t, abgr)
   159 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32s, int32_t, abgr)
   160 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32f, 
float32_t, abgr)
   162 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8, uint8_t, bgra)
   163 BOOST_GIL_DEFINE_BASE_TYPEDEFS(8s, int8_t, bgra)
   164 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16, uint16_t, bgra)
   165 BOOST_GIL_DEFINE_BASE_TYPEDEFS(16s, int16_t, bgra)
   166 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32, uint32_t, bgra)
   167 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32s, int32_t, bgra)
   168 BOOST_GIL_DEFINE_BASE_TYPEDEFS(32f, 
float32_t, bgra)
   170 BOOST_GIL_DEFINE_ALL_TYPEDEFS(8, uint8_t, rgb)
   171 BOOST_GIL_DEFINE_ALL_TYPEDEFS(8s, int8_t, rgb)
   172 BOOST_GIL_DEFINE_ALL_TYPEDEFS(16, uint16_t, rgb)
   173 BOOST_GIL_DEFINE_ALL_TYPEDEFS(16s, int16_t, rgb)
   174 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32, uint32_t, rgb)
   175 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32s, int32_t, rgb)
   176 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32f, 
float32_t, rgb)
   178 BOOST_GIL_DEFINE_ALL_TYPEDEFS(8, uint8_t, rgba)
   179 BOOST_GIL_DEFINE_ALL_TYPEDEFS(8s, int8_t, rgba)
   180 BOOST_GIL_DEFINE_ALL_TYPEDEFS(16, uint16_t, rgba)
   181 BOOST_GIL_DEFINE_ALL_TYPEDEFS(16s, int16_t, rgba)
   182 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32, uint32_t, rgba)
   183 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32s, int32_t, rgba)
   184 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32f, 
float32_t, rgba)
   186 BOOST_GIL_DEFINE_ALL_TYPEDEFS(8, uint8_t, cmyk)
   187 BOOST_GIL_DEFINE_ALL_TYPEDEFS(8s, int8_t, cmyk)
   188 BOOST_GIL_DEFINE_ALL_TYPEDEFS(16, uint16_t, cmyk)
   189 BOOST_GIL_DEFINE_ALL_TYPEDEFS(16s, int16_t, cmyk)
   190 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32, uint32_t, cmyk)
   191 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32s, int32_t, cmyk)
   192 BOOST_GIL_DEFINE_ALL_TYPEDEFS(32f, 
float32_t, cmyk)
 scoped_channel_value< float, float_point_zero< float >, float_point_one< float > > float32_t
32-bit floating point channel type with range [0.0f ... 1.0f]. Models ChannelValueConcept
Definition: typedefs.hpp:124
scoped_channel_value< double, float_point_zero< double >, float_point_one< double > > float64_t
64-bit floating point channel type with range [0.0f ... 1.0f]. Models ChannelValueConcept
Definition: typedefs.hpp:128
Unnamed color space of 1, 3, 4, or 5 channels.
Definition: device_n.hpp:33
unnamed color layout of up to five channels
Definition: device_n.hpp:56