ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4Colour.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4Colour.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
//
28
//
29
// John Allison 20th October 1996
30
31
// Class Description:
32
// Class G4Colour has 4 fields, which represent the RGBA (red, green, blue,
33
// and alpha) components of colour. Each component takes a value between
34
// 0 and 1. If an irrelevant value, i.e., a value less than 0 or greater
35
// than 1, is given as an argument of the constructor, such a value is
36
// automatically clipped to 0 or 1. Alpha is opacity (1 = opaque).
37
//
38
// A G4Colour object is instantiated by giving red, green, and blue
39
// components to its constructor, i.e.,
40
//
41
// G4Colour::G4Colour ( G4double r = 1.0,
42
// G4double g = 1.0,
43
// G4double b = 1.0,
44
// G4double a = 1.0);
45
// // 0<=red, green, blue <= 1.0
46
//
47
// The default value of each component is 1.0. That is to say, the default
48
// colour is "white". For example, colours which are often used can be
49
// instantiated as follows:
50
//
51
// G4Colour white () ; // white
52
// G4Colour white (1.0, 1.0, 1.0) ; // white
53
// G4Colour gray (0.5, 0.5, 0.5) ; // gray
54
// G4Colour black (0.0, 0.0, 0.0) ; // black
55
// G4Colour brown (0.45,0.25,0.0) ; // G4 logo brown
56
// G4Colour red (1.0, 0.0, 0.0) ; // red
57
// G4Colour green (0.0, 1.0, 0.0) ; // green
58
// G4Colour blue (0.0, 0.0, 1.0) ; // blue
59
// G4Colour cyan (0.0, 1.0, 1.0) ; // cyan
60
// G4Colour magenta (1.0, 0.0, 1.0) ; // magenta
61
// G4Colour yellow (1.0, 1.0, 0.0) ; // yellow
62
//
63
// For convenience, static member functions are also defined for the above colours.
64
//
65
// After instantiation of a G4Colour object, you can access to its components
66
// with the following access functions:
67
//
68
// G4double G4Colour::GetRed () const ; // Get the red component.
69
// G4double G4Colour::GetGreen () const ; // Get the green component.
70
// G4double G4Colour::GetBlue () const ; // Get the blue component.
71
//
72
// Class Description - End:
73
74
#ifndef G4COLOUR_HH
75
#define G4COLOUR_HH
76
77
#include "
globals.hh
"
78
#include "
G4ThreeVector.hh
"
79
#include <iostream>
80
#include <map>
81
82
class
G4Colour
{
83
84
friend
std::ostream&
operator <<
(std::ostream&,
const
G4Colour
&);
85
86
public
:
// With description
87
88
G4Colour
(
G4double
r
= 1.,
G4double
g
= 1.,
G4double
b
= 1.,
89
G4double
a
= 1.);
90
91
G4Colour
(
G4ThreeVector
);
92
// Converts the components of the 3-vector into red, green, blue.
93
// The opacity, alpha = 1.
94
95
operator
G4ThreeVector
();
96
// Converts red, green, blue into the components of a 3-vector.
97
98
G4bool
operator !=
(
const
G4Colour
&
c
)
const
;
99
G4bool
operator ==
(
const
G4Colour
& c)
const
{
return
!(
operator !=
(c));}
100
101
G4Colour
&
operator +=
(
const
G4Colour
& rhs) {*
this
= rhs;
return
*
this
;}
102
// Note: This is required by RayTracer in its use of G4THitsMap.
103
// Adding colours, without also taking brightness into account, does not make
104
// sense, so let us make it synonymous with operator=, which is, I guess,
105
// equivalent to covering the old colour with the new, like a coat of paint.
106
107
G4double
GetRed
()
const
;
108
G4double
GetGreen
()
const
;
109
G4double
GetBlue
()
const
;
110
G4double
GetAlpha
()
const
;
// alpha = opacity = 1. - transparency.
111
112
void
SetRed
(
G4double
);
113
void
SetGreen
(
G4double
);
114
void
SetBlue
(
G4double
);
115
void
SetAlpha
(
G4double
);
// alpha = opacity = 1. - transparency.
116
117
static
G4Colour
White
();
118
static
G4Colour
Gray
();
119
static
G4Colour
Grey
();
120
static
G4Colour
Black
();
121
static
G4Colour
Brown
();
// G4 logo brown
122
static
G4Colour
Red
();
123
static
G4Colour
Green
();
124
static
G4Colour
Blue
();
125
static
G4Colour
Cyan
();
126
static
G4Colour
Magenta
();
127
static
G4Colour
Yellow
();
128
129
static
G4bool
GetColour
(
const
G4String
& key,
G4Colour
& result);
130
// Get colour for given key, placing it in result.
131
// The key is usually the name of the colour.
132
// The key is not case sensitive.
133
// Returns false if key doesn't exist, leaving result unchanged.
134
135
static
void
AddToMap
(
const
G4String
& key,
const
G4Colour
& colour);
136
// Add user defined colour to colour map with given key. Standard
137
// colours are added to map by default.
138
139
static
void
InitialiseColourMap
();
140
static
const
std::map<G4String, G4Colour>&
GetMap
();
141
142
private
:
143
G4double
red
,
green
,
blue
,
alpha
;
144
145
static
std::map<G4String, G4Colour>
fColourMap
;
146
static
G4bool
fInitColourMap
;
147
148
};
149
150
inline
G4double
G4Colour::GetRed
()
const
{
return
red
;}
151
inline
G4double
G4Colour::GetGreen
()
const
{
return
green
;}
152
inline
G4double
G4Colour::GetBlue
()
const
{
return
blue
;}
153
inline
G4double
G4Colour::GetAlpha
()
const
{
return
alpha
;}
154
inline
G4Colour
G4Colour::White
() {
return
G4Colour
(1.0, 1.0, 1.0);}
155
inline
G4Colour
G4Colour::Gray
() {
return
G4Colour
(0.5, 0.5, 0.5);}
156
inline
G4Colour
G4Colour::Grey
() {
return
G4Colour
(0.5, 0.5, 0.5);}
157
inline
G4Colour
G4Colour::Black
() {
return
G4Colour
(0.0, 0.0, 0.0);}
158
inline
G4Colour
G4Colour::Brown
() {
return
G4Colour
(0.45,0.25,0.0);}
159
inline
G4Colour
G4Colour::Red
() {
return
G4Colour
(1.0, 0.0, 0.0);}
160
inline
G4Colour
G4Colour::Green
() {
return
G4Colour
(0.0, 1.0, 0.0);}
161
inline
G4Colour
G4Colour::Blue
() {
return
G4Colour
(0.0, 0.0, 1.0);}
162
inline
G4Colour
G4Colour::Cyan
() {
return
G4Colour
(0.0, 1.0, 1.0);}
163
inline
G4Colour
G4Colour::Magenta
() {
return
G4Colour
(1.0, 0.0, 1.0);}
164
inline
G4Colour
G4Colour::Yellow
() {
return
G4Colour
(1.0, 1.0, 0.0);}
165
166
#endif
geant4
tree
geant4-10.6-release
source
graphics_reps
include
G4Colour.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:21
using
1.8.2 with
ECCE GitHub integration