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
vtkMRMLModelDisplayNode.h
Go to the documentation of this file.
1 /*=auto=========================================================================
2 
3  Portions (c) Copyright 2005 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: vtkMRMLModelDisplayNode.h,v $
10  Date: $Date: 2006/03/19 17:12:28 $
11  Version: $Revision: 1.6 $
12 
13 =========================================================================auto=*/
14 
15 #ifndef __vtkMRMLModelDisplayNode_h
16 #define __vtkMRMLModelDisplayNode_h
17 
18 // MRML includes
19 #include "vtkMRMLDisplayNode.h"
20 
21 // VTK includes
22 class vtkAlgorithm;
23 class vtkAlgorithmOutput;
24 class vtkAssignAttribute;
25 class vtkGeometryFilter;
26 class vtkThreshold;
27 class vtkPassThrough;
28 class vtkPointSet;
29 class vtkPolyData;
30 class vtkUnstructuredGrid;
31 
36 class VTK_MRML_EXPORT vtkMRMLModelDisplayNode : public vtkMRMLDisplayNode
37 {
38 public:
39  static vtkMRMLModelDisplayNode *New();
41  void PrintSelf(ostream& os, vtkIndent indent) override;
42 
44  {
48  SliceDisplayMode_Last // placeholder after the last valid value, this must be the last in the list of modes
49  };
50 
53  void ReadXMLAttributes(const char** atts) override;
54 
57  void WriteXML(ostream& of, int indent) override;
58 
62 
63  vtkMRMLNode* CreateNodeInstance() override;
64 
66  const char* GetNodeTagName() override {return "ModelDisplay";}
67 
71  virtual void SetInputMeshConnection(vtkAlgorithmOutput* meshConnection);
72  virtual void SetInputPolyDataConnection(vtkAlgorithmOutput* polyDataConnection);
73 
77  virtual vtkAlgorithmOutput* GetInputMeshConnection();
78  virtual vtkAlgorithmOutput* GetInputPolyDataConnection();
79 
82  virtual vtkPointSet* GetInputMesh();
83  virtual vtkPolyData* GetInputPolyData();
84  virtual vtkUnstructuredGrid* GetInputUnstructuredGrid();
85 
93  virtual vtkPointSet* GetOutputMesh();
94  virtual vtkPolyData* GetOutputPolyData();
95  virtual vtkUnstructuredGrid* GetOutputUnstructuredGrid();
96 
100  virtual vtkAlgorithmOutput* GetOutputMeshConnection();
101  virtual vtkAlgorithmOutput* GetOutputPolyDataConnection();
102 
109  void SetActiveScalarName(const char *scalarName) override;
110 
113  void SetActiveAttributeLocation(int location) override;
114 
117  void SetThresholdEnabled(bool enabled);
118  vtkBooleanMacro(ThresholdEnabled,bool);
119 
123  vtkGetMacro(ThresholdEnabled,bool);
124 
127  void SetThresholdRange(double min, double max);
128  void SetThresholdRange(double range[2]);
129 
132  void GetThresholdRange(double range[2]);
133  double* GetThresholdRange();
134  double GetThresholdMin();
135  double GetThresholdMax();
136 
140  vtkGetMacro(SliceDisplayMode, int);
141  vtkSetMacro(SliceDisplayMode, int);
142  void SetSliceDisplayModeToIntersection();
143  void SetSliceDisplayModeToProjection();
144  void SetSliceDisplayModeToDistanceEncodedProjection();
145 
147  static const char* GetSliceDisplayModeAsString(int id);
148  static int GetSliceDisplayModeFromString(const char* name);
149 
154  virtual void SetAndObserveDistanceEncodedProjectionColorNodeID(const char *colorNodeID);
157  virtual const char* GetDistanceEncodedProjectionColorNodeID();
158  virtual vtkMRMLColorNode* GetDistanceEncodedProjectionColorNode();
159 
162  virtual vtkDataSet* GetScalarDataSet() override;
164  virtual vtkDataArray* GetActiveScalarArray() override;
165 
168  vtkSetVector3Macro(BackfaceColorHSVOffset, double);
169  vtkGetVector3Macro(BackfaceColorHSVOffset, double);
170 
171 protected:
173  ~vtkMRMLModelDisplayNode() override;
175  void operator=(const vtkMRMLModelDisplayNode&);
176 
177  void ProcessMRMLEvents(vtkObject *caller,
178  unsigned long event,
179  void *callData) override;
180 
182  virtual void SetInputToMeshPipeline(vtkAlgorithmOutput* meshConnection);
183 
186  virtual void UpdateAssignedAttribute() override;
187 
192  vtkAssignAttribute* AssignAttribute;
193 
197  vtkPassThrough* PassThrough;
198 
203  vtkThreshold* ThresholdFilter;
204 
208  vtkGeometryFilter* ConvertToPolyDataFilter;
209 
215 
217 
219  double ThresholdRangeTemp[2];
220 
221  double BackfaceColorHSVOffset[3];
222 };
223 
224 #endif
vtkAssignAttribute * AssignAttribute
Show full model projected on the slice, colored by distance from slice plane.
void PrintSelf(ostream &os, vtkIndent indent) override
virtual vtkDataArray * GetActiveScalarArray()
MRML node to represent a display property of 3D surface model.
vtkGeometryFilter * ConvertToPolyDataFilter
Show full model projected on the slice (similar to MIP view of images)
void ReadXMLAttributes(const char **atts) override
virtual void SetActiveScalarName(const char *)
virtual vtkMRMLNode * CreateNodeInstance()=0
Create instance of the default node. Like New only virtual.
vtkMRMLCopyContentMacro(vtkMRMLDisplayNode)
void WriteXML(ostream &of, int indent) override
Show model in slice view as intersection with slice.
void operator=(const vtkMRMLDisplayNode &)
virtual vtkDataSet * GetScalarDataSet()
Abstract MRML node to represent color information.
virtual void SetActiveAttributeLocation(int)
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
Abstract class that contains graphical display properties for displayable nodes.
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:167
virtual void UpdateAssignedAttribute()