]>
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 | ||
78ca1e9c | 14 | //_____________________________________________________________________________ |
676fb573 | 15 | AliColourStore* AliColourStore::fgInstance = 0; |
16 | ||
17 | // lifecycle | |
18 | ||
78ca1e9c | 19 | //_____________________________________________________________________________ |
676fb573 | 20 | AliColourStore::AliColourStore() { |
21 | // | |
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)); | |
38 | } | |
39 | ||
78ca1e9c | 40 | //_____________________________________________________________________________ |
676fb573 | 41 | AliColourStore::AliColourStore(const AliColourStore& right) { |
42 | // | |
43 | AliGlobals::Exception( | |
44 | "Attempt to copy AliColourStore singleton."); | |
45 | } | |
46 | ||
78ca1e9c | 47 | //_____________________________________________________________________________ |
676fb573 | 48 | AliColourStore::~AliColourStore() { |
49 | // | |
50 | } | |
51 | ||
52 | // operators | |
53 | ||
78ca1e9c | 54 | //_____________________________________________________________________________ |
676fb573 | 55 | AliColourStore& AliColourStore::operator=(const AliColourStore& right) |
56 | { | |
57 | // check assignement to self | |
58 | if (this == &right) return *this; | |
59 | ||
60 | AliGlobals::Exception( | |
61 | "Attempt to assign AliColourStore singleton."); | |
62 | ||
63 | return *this; | |
64 | } | |
65 | ||
66 | // static methods | |
67 | ||
78ca1e9c | 68 | //_____________________________________________________________________________ |
676fb573 | 69 | AliColourStore* AliColourStore::Instance() |
70 | { | |
71 | // Returns the singleton instance. | |
72 | // Creates the instance if it does not exist. | |
73 | // --- | |
74 | ||
75 | if (fgInstance == 0 ) { | |
76 | fgInstance = new AliColourStore(); | |
77 | } | |
78 | ||
79 | return fgInstance; | |
80 | } | |
81 | ||
82 | // public methods | |
83 | ||
78ca1e9c | 84 | //_____________________________________________________________________________ |
676fb573 | 85 | G4Colour AliColourStore::GetColour(G4String name) const |
86 | { | |
87 | // Retrieves the colour by name. | |
88 | // --- | |
89 | ||
90 | G4int nofCol = fColours.entries(); | |
91 | for (G4int i=0; i<nofCol; i++) | |
92 | { | |
93 | AliColour alColour = fColours[i]; | |
94 | if (name == alColour.GetName()) | |
95 | { return alColour.GetColour(); } | |
96 | } | |
97 | ||
98 | G4String text = "Colour " + name + " is not defined."; | |
99 | AliGlobals::Exception(text); | |
100 | return 0; | |
101 | } | |
102 | ||
78ca1e9c | 103 | //_____________________________________________________________________________ |
676fb573 | 104 | G4String AliColourStore::GetColoursList() const |
105 | { | |
106 | // Returns the list of all defined colours names. | |
107 | // --- | |
108 | ||
109 | G4String list = ""; | |
110 | G4int nofCol = fColours.entries(); | |
111 | for (G4int i=0; i<nofCol; i++) | |
112 | { | |
113 | list += fColours[i].GetName(); | |
114 | list += " "; | |
115 | }; | |
116 | return list; | |
117 | } | |
118 | ||
78ca1e9c | 119 | //_____________________________________________________________________________ |
676fb573 | 120 | G4String AliColourStore::GetColoursListWithCommas() const |
121 | { | |
122 | // Returns the list of all defined colours names | |
123 | // with commas. | |
124 | // --- | |
125 | ||
126 | G4String list = ""; | |
127 | G4int nofCol = fColours.entries(); | |
128 | for (G4int i=0; i<nofCol; i++) | |
129 | { | |
130 | list += fColours[i].GetName(); | |
131 | if (i < nofCol-1) list += ", "; | |
132 | }; | |
133 | return list; | |
134 | } |