colourTools.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2019 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Namespace
27 Foam::colourTools
28
29Description
30 Utility methods for colours and colour spaces
31
32SourceFiles
33 colourTools.C
34
35\*---------------------------------------------------------------------------*/
36
37#ifndef colourTools_H
38#define colourTools_H
39
40#include "vector.H"
41
42// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43
44namespace Foam
45{
46namespace colourTools
47{
48
49/*---------------------------------------------------------------------------*\
50 Namespace colourTools
51\*---------------------------------------------------------------------------*/
52
53//- Convert RGB to HSV
54void rgbToHsv(const vector& rgb, vector& hsv);
55
56//- Convert RGB to HSV
57inline vector rgbToHsv(const vector& rgb)
58{
59 vector hsv;
60 rgbToHsv(rgb, hsv);
61 return hsv;
62}
63
64
65//- Convert HSV to RGB
66void hsvToRgb(const vector& hsv, vector& rgb);
67
68//- Convert HSV to RGB
69inline vector hsvToRgb(const vector& hsv)
70{
71 vector rgb;
72 hsvToRgb(hsv, rgb);
73 return rgb;
74}
75
76
77//- Convert RGB to XYZ
78void rgbToXyz(const vector& rgb, vector& xyz);
79
80//- Convert RGB to XYZ
81inline vector rgbToXyz(const vector& rgb)
82{
83 vector xyz;
84 rgbToXyz(rgb, xyz);
85 return xyz;
86}
87
88//- Convert XYZ to RGB
89void xyzToRgb(const vector& xyz, vector& rgb);
90
91//- Convert XYZ to RGB
92inline vector xyzToRgb(const vector& xyz)
93{
94 vector rgb;
95 xyzToRgb(xyz, rgb);
96 return rgb;
97}
98
99
100//- Convert LAB to XYZ
101void labToXyz(const vector& lab, vector& xyz);
102
103//- Convert LAB to XYZ
104inline vector labToXyz(const vector& lab)
105{
106 vector xyz;
107 labToXyz(lab, xyz);
108 return xyz;
109}
110
111
112//- Convert XYZ to LAB
113void xyzToLab(const vector& xyz, vector& lab);
114
115//- Convert XYZ to LAB
116inline vector xyzToLab(const vector& xyz)
117{
118 vector lab;
119 xyzToLab(xyz, lab);
120 return lab;
121}
122
123
124//- Convert RGB to LAB
125void rgbToLab(const vector& rgb, vector& lab);
126
127//- Convert RGB to LAB
128inline vector rgbToLab(const vector& rgb)
129{
130 vector lab;
131 rgbToLab(rgb, lab);
132 return lab;
133}
134
135
136//- Convert LAB to RGB
137void labToRgb(const vector& lab, vector& rgb);
138
139//- Convert LAB to RGB
140inline vector labToRgb(const vector& lab)
141{
142 vector rgb;
143 labToRgb(lab, rgb);
144 return rgb;
145}
146
147
148//- Interpolate RGB values with diverging color map
150(
151 scalar s,
152 const vector& rgb1,
153 const vector& rgb2,
154 vector& result
155);
156
157//- Interpolate RGB values with diverging color map
159(
160 scalar s,
161 const vector& rgb1,
162 const vector& rgb2
163)
164{
165 vector result;
166 interpolateDiverging(s, rgb1, rgb2, result);
167 return result;
168}
169
170
171//- Interpolate RGB values in HSV colourspace
173(
174 scalar s,
175 const vector& rgb1,
176 const vector& rgb2,
177 vector& result
178);
179
180//- Interpolate RGB values in HSV colourspace
182(
183 scalar s,
184 const vector& rgb1,
185 const vector& rgb2
186)
187{
188 vector result;
189 interpolateHSV(s, rgb1, rgb2, result);
190 return result;
191}
192
193
194//- Interpolate RGB values in RGB colourspace
196(
197 scalar s,
198 const vector& rgb1,
199 const vector& rgb2
200)
201{
202 return ((1-s)*rgb1 + s*rgb2);
203}
204
205
206// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
207
208} // End namespace colourTools
209} // End namespace Foam
210
211
212// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213
214#endif
215
216// ************************************************************************* //
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
void xyzToRgb(const vector &xyz, vector &rgb)
Convert XYZ to RGB.
Definition: colourTools.C:368
void hsvToRgb(const vector &hsv, vector &rgb)
Convert HSV to RGB.
Definition: colourTools.C:357
void rgbToHsv(const vector &rgb, vector &hsv)
Convert RGB to HSV.
Definition: colourTools.C:352
void rgbToXyz(const vector &rgb, vector &xyz)
Convert RGB to XYZ.
Definition: colourTools.C:363
void rgbToLab(const vector &rgb, vector &lab)
Convert RGB to LAB.
Definition: colourTools.C:386
vector interpolateRGB(scalar s, const vector &rgb1, const vector &rgb2)
Interpolate RGB values in RGB colourspace.
Definition: colourTools.H:196
void labToXyz(const vector &lab, vector &xyz)
Convert LAB to XYZ.
Definition: colourTools.C:374
void labToRgb(const vector &lab, vector &rgb)
Convert LAB to RGB.
Definition: colourTools.C:394
void interpolateDiverging(scalar s, const vector &rgb1, const vector &rgb2, vector &result)
Interpolate RGB values with diverging color map.
Definition: colourTools.C:403
void xyzToLab(const vector &xyz, vector &lab)
Convert XYZ to LAB.
Definition: colourTools.C:380
void interpolateHSV(scalar s, const vector &rgb1, const vector &rgb2, vector &result)
Interpolate RGB values in HSV colourspace.
Definition: colourTools.C:467
Namespace for OpenFOAM.