]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliColourStore.cxx
Resolved merging conflicts
[u/mrichter/AliRoot.git] / AliGeant4 / AliColourStore.cxx
1 // $Id$
2 // Category: visualization
3 //
4 // See the class description in the header file.
5
6 #include "AliColourStore.h"
7 #include "AliColour.h"
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