Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLColorNode.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 COPYRIGHT.txt
00006   or http://www.slicer.org/copyright/copyright.txt for details.
00007 
00008   Program:   3D Slicer
00009   Module:    $RCSfile: vtkMRMLColorNode.h,v $
00010   Date:      $Date: 2006/03/19 17:12:28 $
00011   Version:   $Revision: 1.0 $
00012 
00013 =========================================================================auto=*/
00014 
00015 #ifndef __vtkMRMLColorNode_h
00016 #define __vtkMRMLColorNode_h
00017 
00018 // MRML includes
00019 #include "vtkMRMLStorableNode.h"
00020 
00021 // VTK includes
00022 class vtkLookupTable;
00023 class vtkScalarsToColors;
00024 
00025 // Std includes
00026 #include <string>
00027 #include <vector>
00028 
00047 class VTK_MRML_EXPORT vtkMRMLColorNode : public vtkMRMLStorableNode
00048 {
00049 public:
00050   static vtkMRMLColorNode *New();
00051   vtkTypeMacro(vtkMRMLColorNode,vtkMRMLStorableNode);
00052   void PrintSelf(ostream& os, vtkIndent indent);
00053   
00054   //--------------------------------------------------------------------------
00056   //--------------------------------------------------------------------------
00057 
00058   virtual vtkMRMLNode* CreateNodeInstance();
00059 
00062   virtual void ReadXMLAttributes( const char** atts);
00063 
00066   virtual void WriteXML(ostream& of, int indent);
00067   
00070   virtual void Copy(vtkMRMLNode *node);
00071   
00074   virtual const char* GetNodeTagName() {return "Color";};
00075 
00079   virtual void Reset();
00080   
00083   virtual void UpdateScene(vtkMRMLScene *scene);
00084 
00087   virtual void SetType(int type);
00090   vtkGetMacro(Type,int);
00091 
00092   void ProcessMRMLEvents ( vtkObject *caller, unsigned long event, void *callData );
00093 
00097   virtual int GetFirstType();
00098   virtual int GetLastType ();
00099   
00102   virtual const char * GetTypeAsString();
00103 
00105   enum
00106     {
00107       TypeModifiedEvent = 20002
00108     };
00109 
00112   const char *GetColorName(int ind);
00113 
00124   std::string GetColorNameAsFileName(int colorIndex, const char *subst = "_");
00125 
00130   std::string GetColorNameWithoutSpaces(int ind, const char *subst);
00131 
00134   int SetColorName(int ind, const char *name);
00135 
00139   int SetColorNameWithSpaces(int ind, const char *name, const char *subst);
00142   virtual int GetNumberOfColors();
00143   
00147   virtual bool GetColor(int ind, double* color);
00148   
00151   vtkSetStringMacro(FileName);
00152   vtkGetStringMacro(FileName);
00153 
00157   virtual vtkLookupTable * GetLookupTable();
00158 
00163   virtual vtkScalarsToColors* GetScalarsToColors();
00164 
00168   vtkGetStringMacro(NoName);
00169   vtkSetStringMacro(NoName);
00170 
00173   vtkGetMacro(NamesInitialised, int);
00174   vtkSetMacro(NamesInitialised, int);
00175   vtkBooleanMacro(NamesInitialised, int);
00178   void SetNamesFromColors();
00179 
00181   virtual bool GetModifiedSinceRead();
00182 protected:
00183   vtkMRMLColorNode();
00184   virtual ~vtkMRMLColorNode();
00185   vtkMRMLColorNode(const vtkMRMLColorNode&);
00186   void operator=(const vtkMRMLColorNode&);
00187 
00190   virtual bool SetNameFromColor(int index);
00191 
00196   virtual bool HasNameFromColor(int index);
00197   
00201   int Type;
00202 
00205   std::vector<std::string> Names;
00206 
00209   char *FileName;
00210 
00213   char *NoName;
00214 
00217   int NamesInitialised;
00218 };
00219 
00220 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines