vtkMRMLColorTableNode.h

Go to the documentation of this file.
00001 /*=auto=========================================================================
00002 
00003   Portions (c) Copyright 2006 Brigham and Women's Hospital (BWH) All Rights Reserved.
00004 
00005   See Doc/copyright/copyright.txt
00006   or http://www.slicer.org/copyright/copyright.txt for details.
00007 
00008   Program:   3D Slicer
00009   Module:    $RCSfile: vtkMRMLColorTableNode.h,v $
00010   Date:      $Date: 2006/03/19 17:12:28 $
00011   Version:   $Revision: 1.0 $
00012 
00013 =========================================================================auto=*/
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   //BTX
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   //ETX
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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1