Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLVectorVolumeDisplayNode.h
Go to the documentation of this file.
00001 /*=auto=========================================================================
00002 
00003   Portions (c) Copyright 2005 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: vtkMRMLVectorVolumeDisplayNode.h,v $
00010   Date:      $Date: 2006/03/19 17:12:29 $
00011   Version:   $Revision: 1.3 $
00012 
00013 =========================================================================auto=*/
00014 
00015 #ifndef __vtkMRMLVectorVolumeDisplayNode_h
00016 #define __vtkMRMLVectorVolumeDisplayNode_h
00017 
00018 #include "vtkMRMLGlyphableVolumeDisplayNode.h"
00019 
00020 class vtkImageData;
00021 class vtkImageShiftScale;
00022 class vtkImageExtractComponents;
00023 class vtkImageRGBToHSI;
00024 
00034 class VTK_MRML_EXPORT vtkMRMLVectorVolumeDisplayNode : public vtkMRMLGlyphableVolumeDisplayNode
00035 {
00036   public:
00037   static vtkMRMLVectorVolumeDisplayNode *New();
00038   vtkTypeMacro(vtkMRMLVectorVolumeDisplayNode,vtkMRMLGlyphableVolumeDisplayNode);
00039   void PrintSelf(ostream& os, vtkIndent indent);
00040 
00041   virtual vtkMRMLNode* CreateNodeInstance();
00042 
00045   virtual void ReadXMLAttributes( const char** atts);
00046 
00049   virtual void WriteXML(ostream& of, int indent);
00050 
00053   virtual void Copy(vtkMRMLNode *node);
00054 
00057   virtual const char* GetNodeTagName() {return "VectorVolumeDisplay";};
00058 
00059   //--------------------------------------------------------------------------
00061   //--------------------------------------------------------------------------
00062 
00063   enum
00064     {
00065     scalarModeMagnitude = 0
00066     };
00067   vtkGetMacro(ScalarMode, int);
00068   vtkSetMacro(ScalarMode, int);
00069  
00070   void SetScalarModeToMagnitude() {
00071     this->SetScalarMode(this->scalarModeMagnitude);
00072   };
00073 
00074   enum
00075     {
00076     glyphModeLines = 1,
00077     glyphModeTubes = 2
00078     };
00079   vtkGetMacro(GlyphMode, int);
00080   vtkSetMacro(GlyphMode, int);
00081   
00082   void SetGlyphModeToLines() {
00083     this->SetGlyphMode(this->glyphModeLines);
00084   };
00085   void SetGlyphModeToTubes() {
00086     this->SetGlyphMode(this->glyphModeTubes);
00087   };
00088 
00089   //virtual vtkPolyData* ExecuteGlyphPipeLineAndGetPolyData( vtkImageData* ) {return NULL;};
00090 
00091   virtual void SetDefaultColorMap() {};
00092 
00095   virtual void ProcessMRMLEvents ( vtkObject * /*caller*/, 
00096                                    unsigned long /*event*/, 
00097                                    void * /*callData*/ );
00098 
00100   virtual vtkImageData* GetInputImageData();
00101 
00103   virtual vtkImageData* GetOutputImageData();
00104 
00107   virtual void SetBackgroundImageData(vtkImageData *imageData);
00108 
00109   virtual void UpdateImageDataPipeline();
00110 
00114   virtual std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode*>
00115     GetSliceGlyphDisplayNodes( vtkMRMLVolumeNode* vtkNotUsed(node) )
00116     {
00117     return std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode*>();
00118     }
00119 
00122   vtkGetObjectMacro (ShiftScale, vtkImageShiftScale);
00123   vtkGetObjectMacro (RGBToHSI, vtkImageRGBToHSI);
00124   vtkGetObjectMacro (ExtractIntensity, vtkImageExtractComponents);
00125   vtkGetObjectMacro (AppendComponents, vtkImageAppendComponents);
00126   vtkGetObjectMacro (Threshold, vtkImageThreshold);
00127   
00128 protected:
00129   vtkMRMLVectorVolumeDisplayNode();
00130   ~vtkMRMLVectorVolumeDisplayNode();
00131   vtkMRMLVectorVolumeDisplayNode(const vtkMRMLVectorVolumeDisplayNode&);
00132   void operator=(const vtkMRMLVectorVolumeDisplayNode&);
00133 
00134   vtkImageData* GetScalarImageData();
00135 
00137   virtual void SetInputToImageDataPipeline(vtkImageData *imageData);
00138 
00139   int ScalarMode;
00140   int GlyphMode;
00141 
00142   vtkImageShiftScale *ShiftScale;
00143   vtkImageRGBToHSI *RGBToHSI;
00144   vtkImageExtractComponents *ExtractIntensity;
00145 };
00146 
00147 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines