Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
agg::gray8T< Colorspace > Struct Template Reference

#include <src/agg/agg_color_gray.h>

Public Types

enum  base_scale_e { base_shift = 8 , base_scale = 1 << base_shift , base_mask = base_scale - 1 , base_MSB = 1 << (base_shift - 1) }
 
typedef int8u value_type
 
typedef int32u calc_type
 
typedef int32 long_type
 
typedef gray8T self_type
 

Public Member Functions

 gray8T ()
 
 gray8T (unsigned v_, unsigned a_=base_mask)
 
 gray8T (const self_type &c, unsigned a_)
 
 gray8T (const rgba &c)
 
template<class T >
 gray8T (const gray8T< T > &c)
 
template<class T >
 gray8T (const rgba8T< T > &c)
 
template<class T >
convert_from_sRGB () const
 
template<class T >
convert_to_sRGB () const
 
rgba8 make_rgba8 (const linear &) const
 
rgba8 make_rgba8 (const sRGB &) const
 
 operator rgba8 () const
 
srgba8 make_srgba8 (const linear &) const
 
srgba8 make_srgba8 (const sRGB &) const
 
 operator srgba8 () const
 
rgba16 make_rgba16 (const linear &) const
 
rgba16 make_rgba16 (const sRGB &) const
 
 operator rgba16 () const
 
rgba32 make_rgba32 (const linear &) const
 
rgba32 make_rgba32 (const sRGB &) const
 
 operator rgba32 () const
 
AGG_INLINE bool is_transparent () const
 
AGG_INLINE bool is_opaque () const
 
self_typeclear ()
 
self_typetransparent ()
 
self_typeopacity (double a_)
 
double opacity () const
 
self_typepremultiply ()
 
self_typedemultiply ()
 
self_type gradient (self_type c, double k) const
 
AGG_INLINE void add (const self_type &c, unsigned cover)
 

Static Public Member Functions

static value_type luminance (const rgba &c)
 
static value_type luminance (const rgba8 &c)
 
static void convert (gray8T< linear > &dst, const gray8T< sRGB > &src)
 
static void convert (gray8T< sRGB > &dst, const gray8T< linear > &src)
 
static void convert (gray8T< linear > &dst, const rgba8 &src)
 
static void convert (gray8T< linear > &dst, const srgba8 &src)
 
static void convert (gray8T< sRGB > &dst, const rgba8 &src)
 
static void convert (gray8T< sRGB > &dst, const srgba8 &src)
 
static AGG_INLINE double to_double (value_type a)
 
static AGG_INLINE value_type from_double (double a)
 
static AGG_INLINE value_type empty_value ()
 
static AGG_INLINE value_type full_value ()
 
static AGG_INLINE value_type multiply (value_type a, value_type b)
 
static AGG_INLINE value_type demultiply (value_type a, value_type b)
 
template<typename T >
static AGG_INLINEdownscale (T a)
 
template<typename T >
static AGG_INLINEdownshift (T a, unsigned n)
 
static AGG_INLINE value_type mult_cover (value_type a, value_type b)
 
static AGG_INLINE cover_type scale_cover (cover_type a, value_type b)
 
static AGG_INLINE value_type prelerp (value_type p, value_type q, value_type a)
 
static AGG_INLINE value_type lerp (value_type p, value_type q, value_type a)
 
static self_type no_color ()
 

Public Attributes

value_type v
 
value_type a
 

Detailed Description

template<class Colorspace>
struct agg::gray8T< Colorspace >

Member Typedef Documentation

◆ calc_type

template<class Colorspace >
typedef int32u agg::gray8T< Colorspace >::calc_type

◆ long_type

template<class Colorspace >
typedef int32 agg::gray8T< Colorspace >::long_type

◆ self_type

template<class Colorspace >
typedef gray8T agg::gray8T< Colorspace >::self_type

◆ value_type

template<class Colorspace >
typedef int8u agg::gray8T< Colorspace >::value_type

Member Enumeration Documentation

◆ base_scale_e

template<class Colorspace >
enum agg::gray8T::base_scale_e
Enumerator
base_shift 
base_scale 
base_mask 
base_MSB 
45 {
46 base_shift = 8,
49 base_MSB = 1 << (base_shift - 1)
50 };
@ base_shift
Definition agg_color_gray.h:46
@ base_MSB
Definition agg_color_gray.h:49
@ base_mask
Definition agg_color_gray.h:48
@ base_scale
Definition agg_color_gray.h:47

Constructor & Destructor Documentation

◆ gray8T() [1/6]

template<class Colorspace >
agg::gray8T< Colorspace >::gray8T ( )
inline
105{}

◆ gray8T() [2/6]

template<class Colorspace >
agg::gray8T< Colorspace >::gray8T ( unsigned  v_,
unsigned  a_ = base_mask 
)
inlineexplicit
108 :
109 v(int8u(v_)), a(int8u(a_)) {}
AGG_INT8U int8u
Definition agg_basics.h:120
value_type a
Definition agg_color_gray.h:54
value_type v
Definition agg_color_gray.h:53

◆ gray8T() [3/6]

template<class Colorspace >
agg::gray8T< Colorspace >::gray8T ( const self_type c,
unsigned  a_ 
)
inline
112 :
113 v(c.v), a(value_type(a_)) {}
int8u value_type
Definition agg_color_gray.h:41

◆ gray8T() [4/6]

template<class Colorspace >
agg::gray8T< Colorspace >::gray8T ( const rgba c)
inline
116 :
117 v(luminance(c)),
118 a(value_type(uround(c.a * base_mask))) {}
AGG_INLINE int uround(double v)
Definition agg_basics.h:192
static value_type luminance(const rgba &c)
Definition agg_color_gray.h:56

◆ gray8T() [5/6]

template<class Colorspace >
template<class T >
agg::gray8T< Colorspace >::gray8T ( const gray8T< T > &  c)
inline
123 {
124 convert(*this, c);
125 }
static void convert(gray8T< linear > &dst, const gray8T< sRGB > &src)
Definition agg_color_gray.h:68

References agg::gray8T< Colorspace >::convert().

+ Here is the call graph for this function:

◆ gray8T() [6/6]

template<class Colorspace >
template<class T >
agg::gray8T< Colorspace >::gray8T ( const rgba8T< T > &  c)
inline
130 {
131 convert(*this, c);
132 }

References agg::gray8T< Colorspace >::convert().

+ Here is the call graph for this function:

Member Function Documentation

◆ add()

template<class Colorspace >
AGG_INLINE void agg::gray8T< Colorspace >::add ( const self_type c,
unsigned  cover 
)
inline
386 {
387 calc_type cv, ca;
388 if (cover == cover_mask)
389 {
390 if (c.a == base_mask)
391 {
392 *this = c;
393 return;
394 }
395 else
396 {
397 cv = v + c.v;
398 ca = a + c.a;
399 }
400 }
401 else
402 {
403 cv = v + mult_cover(c.v, cover);
404 ca = a + mult_cover(c.a, cover);
405 }
406 v = (value_type)((cv > calc_type(base_mask)) ? calc_type(base_mask) : cv);
407 a = (value_type)((ca > calc_type(base_mask)) ? calc_type(base_mask) : ca);
408 }
@ cover_mask
Definition agg_basics.h:242
int32u calc_type
Definition agg_color_gray.h:42
static AGG_INLINE value_type mult_cover(value_type a, value_type b)
Definition agg_color_gray.h:290

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_mask, agg::cover_mask, agg::gray8T< Colorspace >::mult_cover(), and agg::gray8T< Colorspace >::v.

+ Here is the call graph for this function:

◆ clear()

template<class Colorspace >
self_type & agg::gray8T< Colorspace >::clear ( )
inline
318 {
319 v = a = 0;
320 return *this;
321 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

◆ convert() [1/6]

template<class Colorspace >
static void agg::gray8T< Colorspace >::convert ( gray8T< linear > &  dst,
const gray8T< sRGB > &  src 
)
inlinestatic
69 {
70 dst.v = sRGB_conv<value_type>::rgb_from_sRGB(src.v);
71 dst.a = src.a;
72 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

Referenced by agg::gray8T< Colorspace >::gray8T(), agg::gray8T< Colorspace >::gray8T(), agg::gray8T< Colorspace >::convert(), and agg::gray8T< Colorspace >::convert().

+ Here is the caller graph for this function:

◆ convert() [2/6]

template<class Colorspace >
static void agg::gray8T< Colorspace >::convert ( gray8T< linear > &  dst,
const rgba8 src 
)
inlinestatic
81 {
82 dst.v = luminance(src);
83 dst.a = src.a;
84 }

References agg::gray8T< Colorspace >::a, agg::rgba8T< Colorspace >::a, agg::gray8T< Colorspace >::luminance(), and agg::gray8T< Colorspace >::v.

+ Here is the call graph for this function:

◆ convert() [3/6]

template<class Colorspace >
static void agg::gray8T< Colorspace >::convert ( gray8T< linear > &  dst,
const srgba8 src 
)
inlinestatic
87 {
88 // The RGB weights are only valid for linear values.
89 convert(dst, rgba8(src));
90 }
rgba8T< linear > rgba8
Definition agg_color_rgba.h:623

References agg::gray8T< Colorspace >::convert().

+ Here is the call graph for this function:

◆ convert() [4/6]

template<class Colorspace >
static void agg::gray8T< Colorspace >::convert ( gray8T< sRGB > &  dst,
const gray8T< linear > &  src 
)
inlinestatic
75 {
76 dst.v = sRGB_conv<value_type>::rgb_to_sRGB(src.v);
77 dst.a = src.a;
78 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

◆ convert() [5/6]

template<class Colorspace >
static void agg::gray8T< Colorspace >::convert ( gray8T< sRGB > &  dst,
const rgba8 src 
)
inlinestatic
93 {
94 dst.v = sRGB_conv<value_type>::rgb_to_sRGB(luminance(src));
95 dst.a = src.a;
96 }

References agg::gray8T< Colorspace >::a, agg::rgba8T< Colorspace >::a, agg::gray8T< Colorspace >::luminance(), and agg::gray8T< Colorspace >::v.

+ Here is the call graph for this function:

◆ convert() [6/6]

template<class Colorspace >
static void agg::gray8T< Colorspace >::convert ( gray8T< sRGB > &  dst,
const srgba8 src 
)
inlinestatic
99 {
100 // The RGB weights are only valid for linear values.
101 convert(dst, rgba8(src));
102 }

References agg::gray8T< Colorspace >::convert().

+ Here is the call graph for this function:

◆ convert_from_sRGB()

template<class Colorspace >
template<class T >
T agg::gray8T< Colorspace >::convert_from_sRGB ( ) const
inline
137 {
138 typename T::value_type y = sRGB_conv<typename T::value_type>::rgb_from_sRGB(v);
139 return T(y, y, y, sRGB_conv<typename T::value_type>::alpha_from_sRGB(a));
140 }
const Scalar & y
Definition MathFunctions.h:552

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

◆ convert_to_sRGB()

template<class Colorspace >
template<class T >
T agg::gray8T< Colorspace >::convert_to_sRGB ( ) const
inline
144 {
145 typename T::value_type y = sRGB_conv<typename T::value_type>::rgb_to_sRGB(v);
146 return T(y, y, y, sRGB_conv<typename T::value_type>::alpha_to_sRGB(a));
147 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

◆ demultiply() [1/2]

template<class Colorspace >
self_type & agg::gray8T< Colorspace >::demultiply ( )
inline
358 {
359 if (a < base_mask)
360 {
361 if (a == 0)
362 {
363 v = 0;
364 }
365 else
366 {
367 calc_type v_ = (calc_type(v) * base_mask) / a;
368 v = value_type((v_ > base_mask) ? (value_type)base_mask : v_);
369 }
370 }
371 return *this;
372 }

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_mask, and agg::gray8T< Colorspace >::v.

◆ demultiply() [2/2]

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::demultiply ( value_type  a,
value_type  b 
)
inlinestatic
261 {
262 if (a * b == 0)
263 {
264 return 0;
265 }
266 else if (a >= b)
267 {
268 return base_mask;
269 }
270 else return value_type((a * base_mask + (b >> 1)) / b);
271 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::base_mask.

◆ downscale()

template<class Colorspace >
template<typename T >
static AGG_INLINE T agg::gray8T< Colorspace >::downscale ( a)
inlinestatic

◆ downshift()

template<class Colorspace >
template<typename T >
static AGG_INLINE T agg::gray8T< Colorspace >::downshift ( a,
unsigned  n 
)
inlinestatic
283 {
284 return a >> n;
285 }

References agg::gray8T< Colorspace >::a.

◆ empty_value()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::empty_value ( )
inlinestatic
229 {
230 return 0;
231 }

◆ from_double()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::from_double ( double  a)
inlinestatic
223 {
224 return value_type(uround(a * base_mask));
225 }

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_mask, and agg::uround().

+ Here is the call graph for this function:

◆ full_value()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::full_value ( )
inlinestatic
235 {
236 return base_mask;
237 }

References agg::gray8T< Colorspace >::base_mask.

◆ gradient()

template<class Colorspace >
self_type agg::gray8T< Colorspace >::gradient ( self_type  c,
double  k 
) const
inline
376 {
377 self_type ret;
378 calc_type ik = uround(k * base_scale);
379 ret.v = lerp(v, c.v, ik);
380 ret.a = lerp(a, c.a, ik);
381 return ret;
382 }
static AGG_INLINE value_type lerp(value_type p, value_type q, value_type a)
Definition agg_color_gray.h:310
gray8T self_type
Definition agg_color_gray.h:51

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_scale, agg::gray8T< Colorspace >::lerp(), agg::uround(), and agg::gray8T< Colorspace >::v.

+ Here is the call graph for this function:

◆ is_opaque()

template<class Colorspace >
AGG_INLINE bool agg::gray8T< Colorspace >::is_opaque ( ) const
inline

◆ is_transparent()

template<class Colorspace >
AGG_INLINE bool agg::gray8T< Colorspace >::is_transparent ( ) const
inline
241 {
242 return a == 0;
243 }

References agg::gray8T< Colorspace >::a.

◆ lerp()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::lerp ( value_type  p,
value_type  q,
value_type  a 
)
inlinestatic
311 {
312 int t = (q - p) * a + base_MSB - (p > q);
313 return value_type(p + (((t >> base_shift) + t) >> base_shift));
314 }

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_MSB, and agg::gray8T< Colorspace >::base_shift.

Referenced by agg::gray8T< Colorspace >::gradient().

+ Here is the caller graph for this function:

◆ luminance() [1/2]

template<class Colorspace >
static value_type agg::gray8T< Colorspace >::luminance ( const rgba c)
inlinestatic
57 {
58 // Calculate grayscale value as per ITU-R BT.709.
59 return value_type(uround((0.2126 * c.r + 0.7152 * c.g + 0.0722 * c.b) * base_mask));
60 }

References agg::gray8T< Colorspace >::base_mask, and agg::uround().

Referenced by agg::gray8T< Colorspace >::convert(), and agg::gray8T< Colorspace >::convert().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ luminance() [2/2]

template<class Colorspace >
static value_type agg::gray8T< Colorspace >::luminance ( const rgba8 c)
inlinestatic
63 {
64 // Calculate grayscale value as per ITU-R BT.709.
65 return value_type((55u * c.r + 184u * c.g + 18u * c.b) >> 8);
66 }

◆ make_rgba16() [1/2]

template<class Colorspace >
rgba16 agg::gray8T< Colorspace >::make_rgba16 ( const linear ) const
inline
183 {
184 rgba16::value_type rgb = (v << 8) | v;
185 return rgba16(rgb, rgb, rgb, (a << 8) | a);
186 }
int16u value_type
Definition agg_color_rgba.h:664

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

Referenced by agg::gray8T< Colorspace >::operator rgba16().

+ Here is the caller graph for this function:

◆ make_rgba16() [2/2]

template<class Colorspace >
rgba16 agg::gray8T< Colorspace >::make_rgba16 ( const sRGB ) const
inline
189 {
190 return convert_from_sRGB<rgba16>();
191 }

◆ make_rgba32() [1/2]

template<class Colorspace >
rgba32 agg::gray8T< Colorspace >::make_rgba32 ( const linear ) const
inline
200 {
201 rgba32::value_type v32 = v / 255.0f;
202 return rgba32(v32, v32, v32, a / 255.0f);
203 }
float value_type
Definition agg_color_rgba.h:1033

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

Referenced by agg::gray8T< Colorspace >::operator rgba32().

+ Here is the caller graph for this function:

◆ make_rgba32() [2/2]

template<class Colorspace >
rgba32 agg::gray8T< Colorspace >::make_rgba32 ( const sRGB ) const
inline
206 {
207 return convert_from_sRGB<rgba32>();
208 }

◆ make_rgba8() [1/2]

template<class Colorspace >
rgba8 agg::gray8T< Colorspace >::make_rgba8 ( const linear ) const
inline
151 {
152 return rgba8(v, v, v, a);
153 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

Referenced by agg::gray8T< Colorspace >::operator rgba8(), and agg::gray8T< Colorspace >::operator srgba8().

+ Here is the caller graph for this function:

◆ make_rgba8() [2/2]

template<class Colorspace >
rgba8 agg::gray8T< Colorspace >::make_rgba8 ( const sRGB ) const
inline
156 {
157 return convert_from_sRGB<srgba8>();
158 }

◆ make_srgba8() [1/2]

template<class Colorspace >
srgba8 agg::gray8T< Colorspace >::make_srgba8 ( const linear ) const
inline
167 {
168 return convert_to_sRGB<rgba8>();
169 }

◆ make_srgba8() [2/2]

template<class Colorspace >
srgba8 agg::gray8T< Colorspace >::make_srgba8 ( const sRGB ) const
inline
172 {
173 return srgba8(v, v, v, a);
174 }
rgba8T< sRGB > srgba8
Definition agg_color_rgba.h:624

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::v.

◆ mult_cover()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::mult_cover ( value_type  a,
value_type  b 
)
inlinestatic
291 {
292 return multiply(a, b);
293 }
static AGG_INLINE value_type multiply(value_type a, value_type b)
Definition agg_color_gray.h:253

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::multiply().

Referenced by agg::gray8T< Colorspace >::add().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ multiply()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::multiply ( value_type  a,
value_type  b 
)
inlinestatic
254 {
255 calc_type t = a * b + base_MSB;
256 return value_type(((t >> base_shift) + t) >> base_shift);
257 }

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_MSB, and agg::gray8T< Colorspace >::base_shift.

Referenced by agg::gray8T< Colorspace >::mult_cover(), agg::gray8T< Colorspace >::prelerp(), agg::gray8T< Colorspace >::premultiply(), and agg::gray8T< Colorspace >::scale_cover().

+ Here is the caller graph for this function:

◆ no_color()

template<class Colorspace >
static self_type agg::gray8T< Colorspace >::no_color ( )
inlinestatic
411{ return self_type(0,0); }

◆ opacity() [1/2]

template<class Colorspace >
double agg::gray8T< Colorspace >::opacity ( ) const
inline
341 {
342 return double(a) / double(base_mask);
343 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::base_mask.

◆ opacity() [2/2]

template<class Colorspace >
self_type & agg::gray8T< Colorspace >::opacity ( double  a_)
inline
332 {
333 if (a_ < 0) a = 0;
334 else if (a_ > 1) a = 1;
335 else a = (value_type)uround(a_ * double(base_mask));
336 return *this;
337 }

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_mask, and agg::uround().

+ Here is the call graph for this function:

◆ operator rgba16()

template<class Colorspace >
agg::gray8T< Colorspace >::operator rgba16 ( ) const
inline
194 {
195 return make_rgba16(Colorspace());
196 }
rgba16 make_rgba16(const linear &) const
Definition agg_color_gray.h:182

References agg::gray8T< Colorspace >::make_rgba16().

+ Here is the call graph for this function:

◆ operator rgba32()

template<class Colorspace >
agg::gray8T< Colorspace >::operator rgba32 ( ) const
inline
211 {
212 return make_rgba32(Colorspace());
213 }
rgba32 make_rgba32(const linear &) const
Definition agg_color_gray.h:199

References agg::gray8T< Colorspace >::make_rgba32().

+ Here is the call graph for this function:

◆ operator rgba8()

template<class Colorspace >
agg::gray8T< Colorspace >::operator rgba8 ( ) const
inline
161 {
162 return make_rgba8(Colorspace());
163 }
rgba8 make_rgba8(const linear &) const
Definition agg_color_gray.h:150

References agg::gray8T< Colorspace >::make_rgba8().

+ Here is the call graph for this function:

◆ operator srgba8()

template<class Colorspace >
agg::gray8T< Colorspace >::operator srgba8 ( ) const
inline
177 {
178 return make_rgba8(Colorspace());
179 }

References agg::gray8T< Colorspace >::make_rgba8().

+ Here is the call graph for this function:

◆ prelerp()

template<class Colorspace >
static AGG_INLINE value_type agg::gray8T< Colorspace >::prelerp ( value_type  p,
value_type  q,
value_type  a 
)
inlinestatic
304 {
305 return p + q - multiply(p, a);
306 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::multiply().

+ Here is the call graph for this function:

◆ premultiply()

template<class Colorspace >
self_type & agg::gray8T< Colorspace >::premultiply ( )
inline
347 {
348 if (a < base_mask)
349 {
350 if (a == 0) v = 0;
351 else v = multiply(v, a);
352 }
353 return *this;
354 }

References agg::gray8T< Colorspace >::a, agg::gray8T< Colorspace >::base_mask, agg::gray8T< Colorspace >::multiply(), and agg::gray8T< Colorspace >::v.

+ Here is the call graph for this function:

◆ scale_cover()

template<class Colorspace >
static AGG_INLINE cover_type agg::gray8T< Colorspace >::scale_cover ( cover_type  a,
value_type  b 
)
inlinestatic
297 {
298 return multiply(b, a);
299 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::multiply().

+ Here is the call graph for this function:

◆ to_double()

template<class Colorspace >
static AGG_INLINE double agg::gray8T< Colorspace >::to_double ( value_type  a)
inlinestatic
217 {
218 return double(a) / base_mask;
219 }

References agg::gray8T< Colorspace >::a, and agg::gray8T< Colorspace >::base_mask.

◆ transparent()

template<class Colorspace >
self_type & agg::gray8T< Colorspace >::transparent ( )
inline
325 {
326 a = 0;
327 return *this;
328 }

References agg::gray8T< Colorspace >::a.

Member Data Documentation

◆ a

◆ v


The documentation for this struct was generated from the following file: