Logo ROOT   6.10/09
Reference Guide
TStructNodeProperty.cxx
Go to the documentation of this file.
1 // @(#)root/gviz3d:$Id$
2 // Author: Tomasz Sosnicki 18/09/09
3 
4 /************************************************************************
5 * Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11 
12 #include "TStructNodeProperty.h"
13 #include <TROOT.h>
14 #include <TClass.h>
15 
17 
18 //________________________________________________________________________
19 //////////////////////////////////////////////////////////////////////////
20 //
21 // TStructNodeProperty class keeps a color for type
22 //
23 //
24 //
25 //
26 //
27 //////////////////////////////////////////////////////////////////////////
28 
29 ////////////////////////////////////////////////////////////////////////////////
30 /// Contructs a TStructNodeProperty with p as parent window for class "name" with color "color".
31 
33 {
34  SetName(name);
35  SetColor(color);
36 }
37 
38 ////////////////////////////////////////////////////////////////////////////////
39 /// Contructs a TStructNodeProperty with p as parent window for class "name" with color "pixel".
40 
42 {
43  SetName(name);
44  SetColor(pixel);
45 }
46 
47 ////////////////////////////////////////////////////////////////////////////////
48 /// Destructor
49 
51 {
52 }
53 
54 ////////////////////////////////////////////////////////////////////////////////
55 /// Overrided method. Compare two objects of TStructNodeProperty class
56 
58 {
59 
60  // Default color "+" should be at the end.
61  if (fName == "+") {
62  return 1;
63  }
65  TString propName(prop->GetName());
66  if (propName == "+") {
67  return -1;
68  }
69 
70  TClass* cl1;
71  if (fName.EndsWith("+")) {
73  } else {
74  cl1 = TClass::GetClass(fName.Data());
75  }
76 
77  TClass* cl2;
78 
79  if (propName.EndsWith("+")) {
80  cl2 = TClass::GetClass(TString(propName.Data(), propName.Length()-1).Data());
81  } else {
82  cl2 = TClass::GetClass(prop->GetName());
83  }
84 
85  if(!cl1) {
86  return -1;
87  }
88  if(!cl2) {
89  return -1;
90  }
91 
92  if(cl1->InheritsFrom(cl2)) {
93  return -1;
94  }
95  if(cl2->InheritsFrom(cl1)) {
96  return 1;
97  }
98 
99  if(this > prop) {
100  return 1;
101  }
102  if(this < prop) {
103  return -1;
104  }
105 
106  return 0;
107 }
108 
109 ////////////////////////////////////////////////////////////////////////////////
110 /// Returns color of class
111 
113 {
114  return fColor;
115 }
116 
117 ////////////////////////////////////////////////////////////////////////////////
118 /// Return color in Pixel_t format
119 
121 {
122  return fColor.GetPixel();
123 }
124 
125 ////////////////////////////////////////////////////////////////////////////////
126 /// Retruns true, because we have overrided method Compare
127 
129 {
130  return true;
131 }
132 
133 ////////////////////////////////////////////////////////////////////////////////
134 /// Sets the color to "color"
135 
137 {
138  fColor = color;
139 }
140 
141 ////////////////////////////////////////////////////////////////////////////////
142 /// Sets the color to "color"
143 
145 {
146  fColor = *(gROOT->GetColor(color));
147 }
148 
149 ////////////////////////////////////////////////////////////////////////////////
150 /// Sets the color to "pixel"
151 
153 {
154  SetColor(TColor::GetColor(pixel));
155 }
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
Int_t Compare(const TObject *obj) const
Overrided method. Compare two objects of TStructNodeProperty class.
virtual void SetName(const char *name)
Set the name of the TNamed.
Definition: TNamed.cxx:131
TColor GetColor() const
Returns color of class.
#define gROOT
Definition: TROOT.h:375
Basic string class.
Definition: TString.h:129
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
~TStructNodeProperty()
Destructor.
ULong_t Pixel_t
Definition: GuiTypes.h:39
std::vector< std::vector< double > > Data
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
Definition: TString.cxx:2231
ULong_t GetPixel() const
Return pixel value corresponding to this color.
Definition: TColor.cxx:1378
Ssiz_t Length() const
Definition: TString.h:388
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb"...
Definition: TColor.cxx:1707
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:71
Bool_t InheritsFrom(const char *cl) const
Return kTRUE if this class inherits from a class with name "classname".
Definition: TClass.cxx:4602
TString fName
Definition: TNamed.h:32
#define ClassImp(name)
Definition: Rtypes.h:336
The color creation and management class.
Definition: TColor.h:19
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
Definition: TClass.cxx:2885
void SetColor(const TColor &color)
Sets the color to "color".
Mother of all ROOT objects.
Definition: TObject.h:37
Bool_t IsSortable() const
Retruns true, because we have overrided method Compare.
Pixel_t GetPixel() const
Return color in Pixel_t format.
TStructNodeProperty(const char *name, Int_t color)
Contructs a TStructNodeProperty with p as parent window for class "name" with color "color"...
const char * Data() const
Definition: TString.h:347