Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4Colour Class Reference

#include <G4Colour.hh>

Public Member Functions

 G4Colour (G4double r=1., G4double g=1., G4double b=1., G4double a=1.)
 
 G4Colour (G4ThreeVector)
 
 operator G4ThreeVector ()
 
G4bool operator!= (const G4Colour &c) const
 
G4bool operator== (const G4Colour &c) const
 
G4Colouroperator+= (const G4Colour &rhs)
 
G4double GetRed () const
 
G4double GetGreen () const
 
G4double GetBlue () const
 
G4double GetAlpha () const
 
void SetRed (G4double)
 
void SetGreen (G4double)
 
void SetBlue (G4double)
 
void SetAlpha (G4double)
 

Static Public Member Functions

static G4Colour White ()
 
static G4Colour Gray ()
 
static G4Colour Grey ()
 
static G4Colour Black ()
 
static G4Colour Brown ()
 
static G4Colour Red ()
 
static G4Colour Green ()
 
static G4Colour Blue ()
 
static G4Colour Cyan ()
 
static G4Colour Magenta ()
 
static G4Colour Yellow ()
 
static G4bool GetColour (const G4String &key, G4Colour &result)
 
static void AddToMap (const G4String &key, const G4Colour &colour)
 
static void InitialiseColourMap ()
 
static const std::map< G4String, G4Colour > & GetMap ()
 

Friends

std::ostream & operator<< (std::ostream &, const G4Colour &)
 

Detailed Description

Definition at line 82 of file G4Colour.hh.

Constructor & Destructor Documentation

◆ G4Colour() [1/2]

G4Colour::G4Colour ( G4double  r = 1.,
G4double  g = 1.,
G4double  b = 1.,
G4double  a = 1. 
)

Definition at line 35 of file G4Colour.cc.

35 :
36red (r), green (gr), blue (b), alpha (a)
37{
38 if( red > 1.0 ){red = 1.0;} if( red < 0.0 ){red = 0.0;}
39 if( green > 1.0 ){green = 1.0;} if( green < 0.0 ){green = 0.0;}
40 if( blue > 1.0 ){blue = 1.0;} if( blue < 0.0 ){blue = 0.0;}
41 if( alpha > 1.0 ){alpha = 1.0;} if( alpha < 0.0 ){alpha = 0.0;}
42}

◆ G4Colour() [2/2]

G4Colour::G4Colour ( G4ThreeVector  v)

Definition at line 44 of file G4Colour.cc.

44 :
45red (v.x()), green (v.y()), blue (v.z()), alpha (1.)
46{
47 if( red > 1.0 ){red = 1.0;} if( red < 0.0 ){red = 0.0;}
48 if( green > 1.0 ){green = 1.0;} if( green < 0.0 ){green = 0.0;}
49 if( blue > 1.0 ){blue = 1.0;} if( blue < 0.0 ){blue = 0.0;}
50}
double z() const
double x() const
double y() const

Member Function Documentation

◆ AddToMap()

void G4Colour::AddToMap ( const G4String key,
const G4Colour colour 
)
static

Definition at line 110 of file G4Colour.cc.

111{
112 // Allow only master thread to populate the map
114 static G4bool first = true;
115 if (first) {
116 first = false;
118 ("G4Colour::AddToMap(const G4String& key, const G4Colour& colour)",
119 "greps0002", JustWarning,
120 "Attempt to add to colour map from non-master thread.");
121 }
122 return;
123 }
124
125 // Convert to lower case since colour map is case insensitive
126 G4String myKey(key);
127 myKey.toLower();
128
129 std::map<G4String, G4Colour>::iterator iter = fColourMap.find(myKey);
130
131 if (iter == fColourMap.end()) fColourMap[myKey] = colour;
132 else {
134 ed << "G4Colour with key " << myKey << " already exists." << G4endl;
136 ("G4Colour::AddToMap(const G4String& key, const G4Colour& colour)",
137 "greps0001", JustWarning, ed,
138 "Colour key exists");
139 }
140}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
bool G4bool
Definition: G4Types.hh:86
#define G4endl
Definition: G4ios.hh:57
G4bool IsMasterThread()
Definition: G4Threading.cc:124

Referenced by InitialiseColourMap().

◆ Black()

G4Colour G4Colour::Black ( )
inlinestatic

Definition at line 157 of file G4Colour.hh.

157{return G4Colour(0.0, 0.0, 0.0);}

Referenced by InitialiseColourMap().

◆ Blue()

G4Colour G4Colour::Blue ( )
inlinestatic

Definition at line 161 of file G4Colour.hh.

161{return G4Colour(0.0, 0.0, 1.0);}

Referenced by G4AxesModel::G4AxesModel(), G4TrajectoryDrawByCharge::G4TrajectoryDrawByCharge(), and InitialiseColourMap().

◆ Brown()

G4Colour G4Colour::Brown ( )
inlinestatic

Definition at line 158 of file G4Colour.hh.

158{return G4Colour(0.45,0.25,0.0);}

Referenced by InitialiseColourMap().

◆ Cyan()

G4Colour G4Colour::Cyan ( )
inlinestatic

Definition at line 162 of file G4Colour.hh.

162{return G4Colour(0.0, 1.0, 1.0);}

Referenced by InitialiseColourMap().

◆ GetAlpha()

◆ GetBlue()

◆ GetColour()

G4bool G4Colour::GetColour ( const G4String key,
G4Colour result 
)
static

Definition at line 162 of file G4Colour.cc.

163{
164 // Add standard colours to map
165 InitialiseColourMap(); // Initialises if not already initialised
166
167 G4String myKey(key);
168 myKey.toLower();
169
170 std::map<G4String, G4Colour>::iterator iter = fColourMap.find(myKey);
171
172 // Don't modify "result" if colour was not found in map
173 if (iter == fColourMap.end()) return false;
174
175 result = iter->second;
176
177 return true;
178}
static void InitialiseColourMap()
Definition: G4Colour.cc:142

Referenced by G4VVisCommand::ConvertToColour(), G4AxesModel::G4AxesModel(), G4ModelColourMap< T >::Set(), G4TrajectoryDrawByEncounteredVolume::SetDefault(), G4TrajectoryDrawByOriginVolume::SetDefault(), G4TrajectoryDrawByParticleID::SetDefault(), G4ModelCmdApplyStringColour< M >::SetNewValue(), and G4ModelCmdApplyColour< M >::SetNewValue().

◆ GetGreen()

◆ GetMap()

const std::map< G4String, G4Colour > & G4Colour::GetMap ( )
static

Definition at line 180 of file G4Colour.cc.

181{
182 // Add standard colours to map
183 InitialiseColourMap(); // Initialises if not already initialised
184
185 return fColourMap;
186}

◆ GetRed()

◆ Gray()

G4Colour G4Colour::Gray ( )
inlinestatic

Definition at line 155 of file G4Colour.hh.

155{return G4Colour(0.5, 0.5, 0.5);}

Referenced by InitialiseColourMap().

◆ Green()

G4Colour G4Colour::Green ( )
inlinestatic

Definition at line 160 of file G4Colour.hh.

160{return G4Colour(0.0, 1.0, 0.0);}

Referenced by G4AxesModel::G4AxesModel(), G4TrajectoryDrawByCharge::G4TrajectoryDrawByCharge(), and InitialiseColourMap().

◆ Grey()

G4Colour G4Colour::Grey ( )
inlinestatic

Definition at line 156 of file G4Colour.hh.

156{return G4Colour(0.5, 0.5, 0.5);}

Referenced by InitialiseColourMap().

◆ InitialiseColourMap()

void G4Colour::InitialiseColourMap ( )
static

Definition at line 142 of file G4Colour.cc.

143{
144 if (fInitColourMap) return;
145
146 fInitColourMap = true;
147
148 // Standard colours
149 AddToMap("white", G4Colour::White());
150 AddToMap("grey", G4Colour::Grey());
151 AddToMap("gray", G4Colour::Gray());
152 AddToMap("black", G4Colour::Black());
153 AddToMap("brown", G4Colour::Brown());
154 AddToMap("red", G4Colour::Red());
155 AddToMap("green", G4Colour::Green());
156 AddToMap("blue", G4Colour::Blue());
157 AddToMap("cyan", G4Colour::Cyan());
158 AddToMap("magenta", G4Colour::Magenta());
159 AddToMap("yellow", G4Colour::Yellow());
160}
static G4Colour White()
Definition: G4Colour.hh:154
static G4Colour Yellow()
Definition: G4Colour.hh:164
static G4Colour Green()
Definition: G4Colour.hh:160
static void AddToMap(const G4String &key, const G4Colour &colour)
Definition: G4Colour.cc:110
static G4Colour Red()
Definition: G4Colour.hh:159
static G4Colour Brown()
Definition: G4Colour.hh:158
static G4Colour Grey()
Definition: G4Colour.hh:156
static G4Colour Black()
Definition: G4Colour.hh:157
static G4Colour Magenta()
Definition: G4Colour.hh:163
static G4Colour Blue()
Definition: G4Colour.hh:161
static G4Colour Gray()
Definition: G4Colour.hh:155
static G4Colour Cyan()
Definition: G4Colour.hh:162

Referenced by GetColour(), and GetMap().

◆ Magenta()

G4Colour G4Colour::Magenta ( )
inlinestatic

Definition at line 163 of file G4Colour.hh.

163{return G4Colour(1.0, 0.0, 1.0);}

Referenced by InitialiseColourMap().

◆ operator G4ThreeVector()

G4Colour::operator G4ThreeVector ( )

Definition at line 76 of file G4Colour.cc.

76 {
77 return G4ThreeVector(red,green,blue);
78}
CLHEP::Hep3Vector G4ThreeVector

◆ operator!=()

G4bool G4Colour::operator!= ( const G4Colour c) const

Definition at line 96 of file G4Colour.cc.

96 {
97 if (
98 (red != c.red) ||
99 (green != c.green) ||
100 (blue != c.blue) ||
101 (alpha != c.alpha)
102 )
103 return true;
104 return false;
105}

Referenced by operator==().

◆ operator+=()

G4Colour & G4Colour::operator+= ( const G4Colour rhs)
inline

Definition at line 101 of file G4Colour.hh.

101{*this = rhs; return *this;}

◆ operator==()

G4bool G4Colour::operator== ( const G4Colour c) const
inline

Definition at line 99 of file G4Colour.hh.

99{return !(operator != (c));}
G4bool operator!=(const G4Colour &c) const
Definition: G4Colour.cc:96

◆ Red()

G4Colour G4Colour::Red ( )
inlinestatic

◆ SetAlpha()

void G4Colour::SetAlpha ( G4double  a)

Definition at line 70 of file G4Colour.cc.

71{
72 alpha = a;
73 if( alpha > 1.0 ){alpha = 1.0;} if( alpha < 0.0 ){alpha = 0.0;}
74}

Referenced by G4VVisCommand::ConvertToColour().

◆ SetBlue()

void G4Colour::SetBlue ( G4double  b)

Definition at line 64 of file G4Colour.cc.

65{
66 blue = b;
67 if( blue > 1.0 ){blue = 1.0;} if( blue < 0.0 ){blue = 0.0;}
68}

◆ SetGreen()

void G4Colour::SetGreen ( G4double  gr)

Definition at line 58 of file G4Colour.cc.

59{
60 green = gr;
61 if( green > 1.0 ){green = 1.0;} if( green < 0.0 ){green = 0.0;}
62}

◆ SetRed()

void G4Colour::SetRed ( G4double  r)

Definition at line 52 of file G4Colour.cc.

53{
54 red = r;
55 if( red > 1.0 ){red = 1.0;} if( red < 0.0 ){red = 0.0;}
56}

◆ White()

G4Colour G4Colour::White ( )
inlinestatic

Definition at line 154 of file G4Colour.hh.

154{return G4Colour(1.0, 1.0, 1.0);}

Referenced by InitialiseColourMap(), and G4TrajectoryDrawByParticleID::SetDefault().

◆ Yellow()

G4Colour G4Colour::Yellow ( )
inlinestatic

Definition at line 164 of file G4Colour.hh.

164{return G4Colour(1.0, 1.0, 0.0);}

Referenced by InitialiseColourMap().

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const G4Colour c 
)
friend

Definition at line 80 of file G4Colour.cc.

80 {
81 os << '(' << c.red << ',' << c.green << ',' << c.blue
82 << ',' << c.alpha << ')';
83 const std::map<G4String, G4Colour>& colourMap = G4Colour::GetMap();
84 // Reverse iterator to pick up English spelling of grey!! :)
85 std::map<G4String, G4Colour>::const_reverse_iterator ri;
86 for (ri = colourMap.rbegin(); ri != colourMap.rend(); ++ri) {
87 if (c == ri->second) {
88 os << " (" << ri->first << ')';
89 break;
90 }
91 }
92
93 return os;
94}
static const std::map< G4String, G4Colour > & GetMap()
Definition: G4Colour.cc:180

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