00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00020
00021 #ifndef __vtkMRMLColorTableNode_h
00022 #define __vtkMRMLColorTableNode_h
00023
00024 #include "vtkMRML.h"
00025 #include "vtkMRMLNode.h"
00026 #include "vtkMRMLColorNode.h"
00027 #include "vtkMRMLColorTableStorageNode.h"
00028 #include "vtkLookupTable.h"
00029 #include "vtkMRMLScene.h"
00030
00031 class vtkLookupTable;
00032 class vtkMRMLStorageNode;
00033 class vtkMRMLScene;
00034 class VTK_MRML_EXPORT vtkMRMLColorTableNode : public vtkMRMLColorNode
00035 {
00036 public:
00037 static vtkMRMLColorTableNode *New();
00038 vtkTypeMacro(vtkMRMLColorTableNode,vtkMRMLColorNode);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00041
00043
00044
00045 virtual vtkMRMLNode* CreateNodeInstance();
00046
00049 virtual void ReadXMLAttributes( const char** atts);
00050
00053 virtual void WriteXML(ostream& of, int indent);
00054
00057 virtual void Copy(vtkMRMLNode *node);
00058
00061 virtual const char* GetNodeTagName() {return "ColorTable";};
00062
00065 virtual void UpdateScene(vtkMRMLScene *scene);
00066
00067 vtkGetObjectMacro(LookupTable, vtkLookupTable);
00068 vtkSetObjectMacro(LookupTable, vtkLookupTable);
00069
00072 void SetType(int type);
00073 vtkGetMacro(Type,int);
00074 void SetTypeToFullRainbow();
00075 void SetTypeToGrey();
00076 void SetTypeToIron();
00077 void SetTypeToRainbow();
00078 void SetTypeToOcean();
00079 void SetTypeToDesert();
00080 void SetTypeToInvGrey();
00081 void SetTypeToReverseRainbow();
00082 void SetTypeToFMRI();
00083 void SetTypeToFMRIPA();
00084 void SetTypeToLabels();
00085 void SetTypeToRandom();
00086 void SetTypeToUser();
00087 void SetTypeToFile();
00088 void SetTypeToRed();
00089 void SetTypeToGreen();
00090 void SetTypeToBlue();
00091 void SetTypeToCyan();
00092 void SetTypeToMagenta();
00093 void SetTypeToYellow();
00094 void SetTypeToWarm1();
00095 void SetTypeToWarm2();
00096 void SetTypeToWarm3();
00097 void SetTypeToCool1();
00098 void SetTypeToCool2();
00099 void SetTypeToCool3();
00100 void SetTypeToWarmShade1();
00101 void SetTypeToWarmShade2();
00102 void SetTypeToWarmShade3();
00103 void SetTypeToCoolShade1();
00104 void SetTypeToCoolShade2();
00105 void SetTypeToCoolShade3();
00106 void SetTypeToWarmTint1();
00107 void SetTypeToWarmTint2();
00108 void SetTypeToWarmTint3();
00109 void SetTypeToCoolTint1();
00110 void SetTypeToCoolTint2();
00111 void SetTypeToCoolTint3();
00112
00113
00114 void ProcessMRMLEvents ( vtkObject *caller, unsigned long event, void *callData );
00115
00116
00119
00149 enum
00150 {
00151 FullRainbow = 0,
00152 Grey = 1,
00153 Iron = 2,
00154 Rainbow = 3,
00155 Ocean = 4,
00156 Desert = 5,
00157 InvGrey = 6,
00158 ReverseRainbow = 7,
00159 FMRI = 8,
00160 FMRIPA = 9,
00161 Labels = 10,
00162 Random = 12,
00163 User = 13,
00164 File = 14,
00165 Red = 15,
00166 Green = 16,
00167 Blue = 17,
00168 Yellow = 18,
00169 Cyan = 19,
00170 Magenta = 20,
00171 Warm1 = 21,
00172 Warm2 = 22,
00173 Warm3 = 23,
00174 Cool1 = 24,
00175 Cool2 = 25,
00176 Cool3 = 26,
00177 WarmShade1 = 27,
00178 WarmShade2 = 28,
00179 WarmShade3 = 29,
00180 CoolShade1 = 30,
00181 CoolShade2 = 31,
00182 CoolShade3 = 32,
00183 WarmTint1 = 33,
00184 WarmTint2 = 34,
00185 WarmTint3 = 35,
00186 CoolTint1 = 36,
00187 CoolTint2 = 37,
00188 CoolTint3 = 38
00189 };
00190
00191
00194 int GetFirstType () { return this->FullRainbow; };
00195 int GetLastType () { return this->CoolTint3; };
00196
00199 virtual const char * GetTypeAsString();
00200
00203 virtual const char * GetTypeAsIDString();
00204
00207 void SetNumberOfColors(int n);
00210 int GetNumberOfColors();
00211
00214 int LastAddedColor;
00215
00218 void AddColor(const char* name, double r, double g, double b);
00221 int SetColor(int entry, const char* name, double r, double g, double b);
00222
00225 void ClearNames();
00226
00229 virtual void Reset();
00230
00234 int GetColorIndexByName(const char *name);
00235
00238 virtual vtkMRMLStorageNode* CreateDefaultStorageNode()
00239 {
00240 return vtkMRMLColorTableStorageNode::New();
00241 };
00242
00243 protected:
00244 vtkMRMLColorTableNode();
00245 virtual ~vtkMRMLColorTableNode();
00246 vtkMRMLColorTableNode(const vtkMRMLColorTableNode&);
00247 void operator=(const vtkMRMLColorTableNode&);
00248
00252 virtual void SetNamesFromColors();
00253
00256 vtkLookupTable *LookupTable;
00257
00258 };
00259
00260 #endif