Krita Source Code Documentation
Loading...
Searching...
No Matches
KisColorimetryUtils::XYZ Struct Reference

#include <KisColorimetryUtils.h>

Public Member Functions

QVector3D asVector () const
 
XYZ operator* (double factor) const
 
XYZ operator+ (const XYZ &other) const
 
XYZ operator/ (double factor) const
 
bool operator== (const XYZ &other) const
 
xy toxy () const
 
xyY toxyY () const
 

Static Public Member Functions

static XYZ fromVector (const QVector3D &vector)
 

Public Attributes

double X
 
double Y
 
double Z
 

Detailed Description

Definition at line 49 of file KisColorimetryUtils.h.

Member Function Documentation

◆ asVector()

QVector3D KisColorimetryUtils::XYZ::asVector ( ) const

Definition at line 130 of file KisColorimetryUtils.cpp.

References X, Y, and Z.

◆ fromVector()

XYZ KisColorimetryUtils::XYZ::fromVector ( const QVector3D & vector)
static

Definition at line 135 of file KisColorimetryUtils.cpp.

136{
137 return XYZ{
138 .X = vector.x(),
139 .Y = vector.y(),
140 .Z = vector.z(),
141 };
142}

References X.

◆ operator*()

XYZ KisColorimetryUtils::XYZ::operator* ( double factor) const

Definition at line 103 of file KisColorimetryUtils.cpp.

104{
105 return XYZ{
106 .X = X * factor,
107 .Y = Y * factor,
108 .Z = Z * factor,
109 };
110}

References X, Y, and Z.

◆ operator+()

XYZ KisColorimetryUtils::XYZ::operator+ ( const XYZ & other) const

Definition at line 121 of file KisColorimetryUtils.cpp.

122{
123 return XYZ{
124 .X = X + other.X,
125 .Y = Y + other.Y,
126 .Z = Z + other.Z,
127 };
128}

References X, Y, and Z.

◆ operator/()

XYZ KisColorimetryUtils::XYZ::operator/ ( double factor) const

Definition at line 112 of file KisColorimetryUtils.cpp.

113{
114 return XYZ{
115 .X = X / divisor,
116 .Y = Y / divisor,
117 .Z = Z / divisor,
118 };
119}

References X, Y, and Z.

◆ operator==()

bool KisColorimetryUtils::XYZ::operator== ( const XYZ & other) const

Definition at line 144 of file KisColorimetryUtils.cpp.

145{
146 return qFuzzyCompare(X, other.X) && qFuzzyCompare(Y, other.Y) && qFuzzyCompare(Z, other.Z);
147}
static bool qFuzzyCompare(half p1, half p2)

References qFuzzyCompare(), X, Y, and Z.

◆ toxy()

xy KisColorimetryUtils::XYZ::toxy ( ) const

Definition at line 87 of file KisColorimetryUtils.cpp.

88{
89 const double sum = X + Y + Z;
90 if (qFuzzyIsNull(sum)) {
91 // this is nonsense, but at least won't crash
92 return xy{
93 .x = 0,
94 .y = 0,
95 };
96 }
97 return xy{
98 .x = X / sum,
99 .y = Y / sum,
100 };
101}
static bool qFuzzyIsNull(half h)

References qFuzzyIsNull(), KisColorimetryUtils::xy::x, X, Y, and Z.

◆ toxyY()

xyY KisColorimetryUtils::XYZ::toxyY ( ) const

Definition at line 69 of file KisColorimetryUtils.cpp.

70{
71 const double sum = X + Y + Z;
72 if (qFuzzyIsNull(sum)) {
73 // this is nonsense, but at least won't crash
74 return xyY{
75 .x = 0,
76 .y = 0,
77 .Y = 1,
78 };
79 }
80 return xyY{
81 .x = X / sum,
82 .y = Y / sum,
83 .Y = Y,
84 };
85}

References qFuzzyIsNull(), KisColorimetryUtils::xyY::x, X, Y, and Z.

Member Data Documentation

◆ X

double KisColorimetryUtils::XYZ::X

Definition at line 50 of file KisColorimetryUtils.h.

◆ Y

double KisColorimetryUtils::XYZ::Y

Definition at line 51 of file KisColorimetryUtils.h.

◆ Z

double KisColorimetryUtils::XYZ::Z

Definition at line 52 of file KisColorimetryUtils.h.


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