]>
Commit | Line | Data |
---|---|---|
676fb573 | 1 | // $Id$ |
2 | // Category: visualization | |
3 | // | |
4 | // See the class description in the header file. | |
5 | ||
6 | #include "AliColourStore.h" | |
c97337f9 | 7 | #include "AliColour.h" |
676fb573 | 8 | #include "AliGlobals.h" |
9 | ||
10 | #include <G4Element.hh> | |
11 | ||
12 | // static data members | |
13 | ||
14 | AliColourStore* AliColourStore::fgInstance = 0; | |
15 | ||
16 | // lifecycle | |
17 | ||
18 | AliColourStore::AliColourStore() { | |
19 | // | |
20 | fColours.insert(AliColour("White", 1.0, 1.0, 1.0)); | |
21 | fColours.insert(AliColour("Black", 0.0, 0.0, 0.0)); | |
22 | fColours.insert(AliColour("Red", 1.0, 0.0, 0.0)); | |
23 | fColours.insert(AliColour("RoseDark", 1.0, 0.0, 0.5)); | |
24 | fColours.insert(AliColour("Green", 0.0, 1.0, 0.0)); | |
25 | fColours.insert(AliColour("Green2", 0.0, 1.0, 0.5)); | |
26 | fColours.insert(AliColour("GreenClair",0.5, 1.0, 0.0)); | |
27 | fColours.insert(AliColour("Yellow", 1.0, 1.0, 0.0)); | |
28 | fColours.insert(AliColour("BlueDark", 0.0, 0.0, 1.0)); | |
29 | fColours.insert(AliColour("BlueClair", 0.0, 1.0, 1.0)); | |
30 | fColours.insert(AliColour("BlueClair2",0.0, 0.5, 1.0)); | |
31 | fColours.insert(AliColour("Magenta", 1.0, 0.0, 1.0)); | |
32 | fColours.insert(AliColour("Magenta2", 0.5, 0.0, 1.0)); | |
33 | fColours.insert(AliColour("BrownClair",1.0, 0.5, 0.0)); | |
34 | fColours.insert(AliColour("Gray", 0.3, 0.3, 0.3)); | |
35 | fColours.insert(AliColour("GrayClair", 0.6, 0.6, 0.6)); | |
36 | } | |
37 | ||
38 | AliColourStore::AliColourStore(const AliColourStore& right) { | |
39 | // | |
40 | AliGlobals::Exception( | |
41 | "Attempt to copy AliColourStore singleton."); | |
42 | } | |
43 | ||
44 | AliColourStore::~AliColourStore() { | |
45 | // | |
46 | } | |
47 | ||
48 | // operators | |
49 | ||
50 | AliColourStore& AliColourStore::operator=(const AliColourStore& right) | |
51 | { | |
52 | // check assignement to self | |
53 | if (this == &right) return *this; | |
54 | ||
55 | AliGlobals::Exception( | |
56 | "Attempt to assign AliColourStore singleton."); | |
57 | ||
58 | return *this; | |
59 | } | |
60 | ||
61 | // static methods | |
62 | ||
63 | AliColourStore* AliColourStore::Instance() | |
64 | { | |
65 | // Returns the singleton instance. | |
66 | // Creates the instance if it does not exist. | |
67 | // --- | |
68 | ||
69 | if (fgInstance == 0 ) { | |
70 | fgInstance = new AliColourStore(); | |
71 | } | |
72 | ||
73 | return fgInstance; | |
74 | } | |
75 | ||
76 | // public methods | |
77 | ||
78 | G4Colour AliColourStore::GetColour(G4String name) const | |
79 | { | |
80 | // Retrieves the colour by name. | |
81 | // --- | |
82 | ||
83 | G4int nofCol = fColours.entries(); | |
84 | for (G4int i=0; i<nofCol; i++) | |
85 | { | |
86 | AliColour alColour = fColours[i]; | |
87 | if (name == alColour.GetName()) | |
88 | { return alColour.GetColour(); } | |
89 | } | |
90 | ||
91 | G4String text = "Colour " + name + " is not defined."; | |
92 | AliGlobals::Exception(text); | |
93 | return 0; | |
94 | } | |
95 | ||
96 | G4String AliColourStore::GetColoursList() const | |
97 | { | |
98 | // Returns the list of all defined colours names. | |
99 | // --- | |
100 | ||
101 | G4String list = ""; | |
102 | G4int nofCol = fColours.entries(); | |
103 | for (G4int i=0; i<nofCol; i++) | |
104 | { | |
105 | list += fColours[i].GetName(); | |
106 | list += " "; | |
107 | }; | |
108 | return list; | |
109 | } | |
110 | ||
111 | G4String AliColourStore::GetColoursListWithCommas() const | |
112 | { | |
113 | // Returns the list of all defined colours names | |
114 | // with commas. | |
115 | // --- | |
116 | ||
117 | G4String list = ""; | |
118 | G4int nofCol = fColours.entries(); | |
119 | for (G4int i=0; i<nofCol; i++) | |
120 | { | |
121 | list += fColours[i].GetName(); | |
122 | if (i < nofCol-1) list += ", "; | |
123 | }; | |
124 | return list; | |
125 | } |