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