2 // Category: visualization
4 // See the class description in the header file.
6 #include "AliColourStore.h"
8 #include "AliGlobals.h"
10 #include <G4Element.hh>
12 // static data members
14 //_____________________________________________________________________________
15 AliColourStore* AliColourStore::fgInstance = 0;
19 //_____________________________________________________________________________
20 AliColourStore::AliColourStore() {
22 fColours.insert(AliColour("White", 1.0, 1.0, 1.0));
23 fColours.insert(AliColour("Black", 0.0, 0.0, 0.0));
24 fColours.insert(AliColour("Red", 1.0, 0.0, 0.0));
25 fColours.insert(AliColour("RoseDark", 1.0, 0.0, 0.5));
26 fColours.insert(AliColour("Green", 0.0, 1.0, 0.0));
27 fColours.insert(AliColour("Green2", 0.0, 1.0, 0.5));
28 fColours.insert(AliColour("GreenClair",0.5, 1.0, 0.0));
29 fColours.insert(AliColour("Yellow", 1.0, 1.0, 0.0));
30 fColours.insert(AliColour("BlueDark", 0.0, 0.0, 1.0));
31 fColours.insert(AliColour("BlueClair", 0.0, 1.0, 1.0));
32 fColours.insert(AliColour("BlueClair2",0.0, 0.5, 1.0));
33 fColours.insert(AliColour("Magenta", 1.0, 0.0, 1.0));
34 fColours.insert(AliColour("Magenta2", 0.5, 0.0, 1.0));
35 fColours.insert(AliColour("BrownClair",1.0, 0.5, 0.0));
36 fColours.insert(AliColour("Gray", 0.3, 0.3, 0.3));
37 fColours.insert(AliColour("GrayClair", 0.6, 0.6, 0.6));
40 //_____________________________________________________________________________
41 AliColourStore::AliColourStore(const AliColourStore& right) {
43 AliGlobals::Exception(
44 "Attempt to copy AliColourStore singleton.");
47 //_____________________________________________________________________________
48 AliColourStore::~AliColourStore() {
54 //_____________________________________________________________________________
55 AliColourStore& AliColourStore::operator=(const AliColourStore& right)
57 // check assignement to self
58 if (this == &right) return *this;
60 AliGlobals::Exception(
61 "Attempt to assign AliColourStore singleton.");
68 //_____________________________________________________________________________
69 AliColourStore* AliColourStore::Instance()
71 // Returns the singleton instance.
72 // Creates the instance if it does not exist.
75 if (fgInstance == 0 ) {
76 fgInstance = new AliColourStore();
84 //_____________________________________________________________________________
85 G4Colour AliColourStore::GetColour(G4String name) const
87 // Retrieves the colour by name.
90 G4int nofCol = fColours.entries();
91 for (G4int i=0; i<nofCol; i++)
93 AliColour alColour = fColours[i];
94 if (name == alColour.GetName())
95 { return alColour.GetColour(); }
98 G4String text = "Colour " + name + " is not defined.";
99 AliGlobals::Exception(text);
103 //_____________________________________________________________________________
104 G4String AliColourStore::GetColoursList() const
106 // Returns the list of all defined colours names.
110 G4int nofCol = fColours.entries();
111 for (G4int i=0; i<nofCol; i++)
113 list += fColours[i].GetName();
119 //_____________________________________________________________________________
120 G4String AliColourStore::GetColoursListWithCommas() const
122 // Returns the list of all defined colours names
127 G4int nofCol = fColours.entries();
128 for (G4int i=0; i<nofCol; i++)
130 list += fColours[i].GetName();
131 if (i < nofCol-1) list += ", ";