Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkMRMLColorTableNode.h
Go to the documentation of this file.
1 /*=auto=========================================================================
2 
3  Portions (c) Copyright 2006 Brigham and Women's Hospital (BWH) All Rights Reserved.
4 
5  See COPYRIGHT.txt
6  or http://www.slicer.org/copyright/copyright.txt for details.
7 
8  Program: 3D Slicer
9  Module: $RCSfile: vtkMRMLColorTableNode.h,v $
10  Date: $Date: 2006/03/19 17:12:28 $
11  Version: $Revision: 1.0 $
12 
13 =========================================================================auto=*/
14 
15 #ifndef __vtkMRMLColorTableNode_h
16 #define __vtkMRMLColorTableNode_h
17 
18 #include "vtkMRMLColorNode.h"
19 
26 class VTK_MRML_EXPORT vtkMRMLColorTableNode : public vtkMRMLColorNode
27 {
28 public:
29  static vtkMRMLColorTableNode *New();
31  void PrintSelf(ostream& os, vtkIndent indent) override;
32 
33  //--------------------------------------------------------------------------
35  //--------------------------------------------------------------------------
36 
37  vtkMRMLNode* CreateNodeInstance() override;
38 
41  void ReadXMLAttributes( const char** atts) override;
42 
45  void WriteXML(ostream& of, int indent) override;
46 
49  void Copy(vtkMRMLNode *node) override;
50 
53  const char* GetNodeTagName() override {return "ColorTable";}
54 
57  vtkLookupTable* GetLookupTable() override;
58 
61  virtual void SetAndObserveLookupTable(vtkLookupTable *newLookupTable);
62 
66  virtual void SetLookupTable(vtkLookupTable* newLookupTable)
67  {
68  SetAndObserveLookupTable(newLookupTable);
69  }
70 
73  void SetType(int type) override;
74  //GetType is defined in ColorTableNode class via macro.
75  void SetTypeToFullRainbow();
76  void SetTypeToGrey();
77  void SetTypeToIron();
78  void SetTypeToRainbow();
79  void SetTypeToOcean();
80  void SetTypeToDesert();
81  void SetTypeToInvGrey();
82  void SetTypeToReverseRainbow();
83  void SetTypeToFMRI();
84  void SetTypeToFMRIPA();
85  void SetTypeToLabels();
86  void SetTypeToRandom();
87  void SetTypeToRed();
88  void SetTypeToGreen();
89  void SetTypeToBlue();
90  void SetTypeToCyan();
91  void SetTypeToMagenta();
92  void SetTypeToYellow();
93  void SetTypeToWarm1();
94  void SetTypeToWarm2();
95  void SetTypeToWarm3();
96  void SetTypeToCool1();
97  void SetTypeToCool2();
98  void SetTypeToCool3();
99  void SetTypeToWarmShade1();
100  void SetTypeToWarmShade2();
101  void SetTypeToWarmShade3();
102  void SetTypeToCoolShade1();
103  void SetTypeToCoolShade2();
104  void SetTypeToCoolShade3();
105  void SetTypeToWarmTint1();
106  void SetTypeToWarmTint2();
107  void SetTypeToWarmTint3();
108  void SetTypeToCoolTint1();
109  void SetTypeToCoolTint2();
110  void SetTypeToCoolTint3();
111 
112 
113  void ProcessMRMLEvents ( vtkObject *caller, unsigned long event, void *callData ) override;
114 
117 
145  enum
146  {
147  FullRainbow = 0,
148  Grey = 1,
149  Iron = 2,
150  Rainbow = 3,
151  Ocean = 4,
152  Desert = 5,
153  InvGrey = 6,
154  ReverseRainbow = 7,
155  FMRI = 8,
156  FMRIPA = 9,
157  Labels = 10,
158  Obsolete = 11,
159  Random = 12,
160  Red = 15,
161  Green = 16,
162  Blue = 17,
163  Yellow = 18,
164  Cyan = 19,
165  Magenta = 20,
166  Warm1 = 21,
167  Warm2 = 22,
168  Warm3 = 23,
169  Cool1 = 24,
170  Cool2 = 25,
171  Cool3 = 26,
172  WarmShade1 = 27,
173  WarmShade2 = 28,
174  WarmShade3 = 29,
175  CoolShade1 = 30,
176  CoolShade2 = 31,
177  CoolShade3 = 32,
178  WarmTint1 = 33,
179  WarmTint2 = 34,
180  WarmTint3 = 35,
181  CoolTint1 = 36,
182  CoolTint2 = 37,
183  CoolTint3 = 38
184  };
185 
188  int GetFirstType () override { return this->FullRainbow; };
189  int GetLastType () override { return this->CoolTint3; };
190 
193  const char * GetTypeAsString() override;
194 
197  void SetNumberOfColors(int n);
198 
201  int GetNumberOfColors() override;
202 
206 
209  void AddColor(const char* name, double r, double g, double b, double a = 1.0);
210 
213  int SetColor(int entry, const char* name, double r, double g, double b, double a = 1.0);
214 
217  int SetColors(int firstEntry, int lastEntry, const char* name, double r, double g, double b, double a = 1.0);
218 
220  int SetColor(int entry, double r, double g, double b, double a);
221  int SetColor(int entry, double r, double g, double b);
222  int SetOpacity(int entry, double opacity);
223 
226  bool GetColor(int entry, double color[4]) override;
227 
230  void ClearNames();
231 
234  void Reset(vtkMRMLNode* defaultNode) override;
235 
239 
240 protected:
242  ~vtkMRMLColorTableNode() override;
244  void operator=(const vtkMRMLColorTableNode&);
245 
248  vtkLookupTable *LookupTable;
249 
250 };
251 
252 #endif
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
virtual vtkMRMLStorageNode * CreateDefaultStorageNode()
virtual void SetLookupTable(vtkLookupTable *newLookupTable)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
void operator=(const vtkMRMLColorNode &)
int GetFirstType() override
Return the lowest and highest integers, for use in looping
virtual int GetNumberOfColors()
Get the number of colors in the table
void ReadXMLAttributes(const char **atts) override
Set node attributes
static vtkMRMLColorNode * New()
int LastAddedColor
keep track of where we last added a color
void PrintSelf(ostream &os, vtkIndent indent) override
A superclass for other storage nodes.
Abstract MRML node to represent color information.
void Reset(vtkMRMLNode *defaultNode) override
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
void Copy(vtkMRMLNode *node) override
Copy the node's attributes to this object
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:167
MRML node to represent discrete color information.
vtkLookupTable * LookupTable
The look up table, constructed according to the Type
virtual void SetType(int type)
Set Type to type, then build colors and set names
virtual vtkLookupTable * GetLookupTable()
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
Propagate events generated in mrml.
virtual bool GetColor(int ind, double color[4])
virtual const char * GetTypeAsString()
return a text string describing the color look up table type