Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
agg::rgba Struct Reference

#include <src/agg/agg_color_rgba.h>

Public Types

typedef double value_type
 

Public Member Functions

 rgba ()
 
 rgba (double r_, double g_, double b_, double a_=1.0)
 
 rgba (const rgba &c, double a_)
 
rgbaclear ()
 
rgbatransparent ()
 
rgbaopacity (double a_)
 
double opacity () const
 
rgbapremultiply ()
 
rgbapremultiply (double a_)
 
rgbademultiply ()
 
rgba gradient (rgba c, double k) const
 
rgbaoperator+= (const rgba &c)
 
rgbaoperator*= (double k)
 
 rgba (double wavelen, double gamma=1.0)
 

Static Public Member Functions

static rgba no_color ()
 
static rgba from_wavelength (double wl, double gamma=1.0)
 

Public Attributes

double r
 
double g
 
double b
 
double a
 

Detailed Description

Member Typedef Documentation

◆ value_type

typedef double agg::rgba::value_type

Constructor & Destructor Documentation

◆ rgba() [1/4]

agg::rgba::rgba ( )
inline
57{}

Referenced by no_color().

+ Here is the caller graph for this function:

◆ rgba() [2/4]

agg::rgba::rgba ( double  r_,
double  g_,
double  b_,
double  a_ = 1.0 
)
inline
60 :
61 r(r_), g(g_), b(b_), a(a_) {}
double a
Definition agg_color_rgba.h:54
double b
Definition agg_color_rgba.h:53
double r
Definition agg_color_rgba.h:51
double g
Definition agg_color_rgba.h:52

◆ rgba() [3/4]

agg::rgba::rgba ( const rgba c,
double  a_ 
)
inline
64: r(c.r), g(c.g), b(c.b), a(a_) {}

◆ rgba() [4/4]

agg::rgba::rgba ( double  wavelen,
double  gamma = 1.0 
)
inlineexplicit
177 {
178 *this = from_wavelength(wavelen, gamma);
179 }
static rgba from_wavelength(double wl, double gamma=1.0)
Definition agg_color_rgba.h:194

References from_wavelength().

+ Here is the call graph for this function:

Member Function Documentation

◆ clear()

rgba & agg::rgba::clear ( )
inline
68 {
69 r = g = b = a = 0;
70 return *this;
71 }

References a, b, g, and r.

◆ demultiply()

rgba & agg::rgba::demultiply ( )
inline
124 {
125 if (a == 0)
126 {
127 r = g = b = 0;
128 }
129 else
130 {
131 double a_ = 1.0 / a;
132 r *= a_;
133 g *= a_;
134 b *= a_;
135 }
136 return *this;
137 }

References a, b, g, and r.

◆ from_wavelength()

rgba agg::rgba::from_wavelength ( double  wl,
double  gamma = 1.0 
)
inlinestatic
195 {
196 rgba t(0.0, 0.0, 0.0);
197
198 if (wl >= 380.0 && wl <= 440.0)
199 {
200 t.r = -1.0 * (wl - 440.0) / (440.0 - 380.0);
201 t.b = 1.0;
202 }
203 else if (wl >= 440.0 && wl <= 490.0)
204 {
205 t.g = (wl - 440.0) / (490.0 - 440.0);
206 t.b = 1.0;
207 }
208 else if (wl >= 490.0 && wl <= 510.0)
209 {
210 t.g = 1.0;
211 t.b = -1.0 * (wl - 510.0) / (510.0 - 490.0);
212 }
213 else if (wl >= 510.0 && wl <= 580.0)
214 {
215 t.r = (wl - 510.0) / (580.0 - 510.0);
216 t.g = 1.0;
217 }
218 else if (wl >= 580.0 && wl <= 645.0)
219 {
220 t.r = 1.0;
221 t.g = -1.0 * (wl - 645.0) / (645.0 - 580.0);
222 }
223 else if (wl >= 645.0 && wl <= 780.0)
224 {
225 t.r = 1.0;
226 }
227
228 double s = 1.0;
229 if (wl > 700.0) s = 0.3 + 0.7 * (780.0 - wl) / (780.0 - 700.0);
230 else if (wl < 420.0) s = 0.3 + 0.7 * (wl - 380.0) / (420.0 - 380.0);
231
232 t.r = pow(t.r * s, gamma);
233 t.g = pow(t.g * s, gamma);
234 t.b = pow(t.b * s, gamma);
235 return t;
236 }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half pow(const half &a, const half &b)
Definition Half.h:477
rgba()
Definition agg_color_rgba.h:57

References b, g, and r.

Referenced by rgba(), agg::rgba32::from_wavelength(), agg::rgba8T< Colorspace >::from_wavelength(), and agg::rgba16::from_wavelength().

+ Here is the caller graph for this function:

◆ gradient()

rgba agg::rgba::gradient ( rgba  c,
double  k 
) const
inline
142 {
143 rgba ret;
144 ret.r = r + (c.r - r) * k;
145 ret.g = g + (c.g - g) * k;
146 ret.b = b + (c.b - b) * k;
147 ret.a = a + (c.a - a) * k;
148 return ret;
149 }

References a, b, g, and r.

◆ no_color()

static rgba agg::rgba::no_color ( )
inlinestatic
170{ return rgba(0,0,0,0); }

References rgba().

Referenced by agg::blender_base< ColorT, Order >::get().

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

◆ opacity() [1/2]

double agg::rgba::opacity ( ) const
inline
91 {
92 return a;
93 }

References a.

◆ opacity() [2/2]

rgba & agg::rgba::opacity ( double  a_)
inline
82 {
83 if (a_ < 0) a = 0;
84 else if (a_ > 1) a = 1;
85 else a = a_;
86 return *this;
87 }

References a.

◆ operator*=()

rgba & agg::rgba::operator*= ( double  k)
inline
161 {
162 r *= k;
163 g *= k;
164 b *= k;
165 a *= k;
166 return *this;
167 }

References a, b, g, and r.

◆ operator+=()

rgba & agg::rgba::operator+= ( const rgba c)
inline
152 {
153 r += c.r;
154 g += c.g;
155 b += c.b;
156 a += c.a;
157 return *this;
158 }

References a, b, g, and r.

◆ premultiply() [1/2]

rgba & agg::rgba::premultiply ( )
inline
97 {
98 r *= a;
99 g *= a;
100 b *= a;
101 return *this;
102 }

References a, b, g, and r.

Referenced by agg::rgba_pre().

+ Here is the caller graph for this function:

◆ premultiply() [2/2]

rgba & agg::rgba::premultiply ( double  a_)
inline
106 {
107 if (a <= 0 || a_ <= 0)
108 {
109 r = g = b = a = 0;
110 }
111 else
112 {
113 a_ /= a;
114 r *= a_;
115 g *= a_;
116 b *= a_;
117 a = a_;
118 }
119 return *this;
120 }

References a, b, g, and r.

◆ transparent()

rgba & agg::rgba::transparent ( )
inline
75 {
76 a = 0;
77 return *this;
78 }

References a.

Member Data Documentation

◆ a

◆ b

◆ g

◆ r


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