Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
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()