Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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
22class vtkAlgorithm;
23class vtkAlgorithmOutput;
24class vtkAssignAttribute;
25class vtkGeometryFilter;
26class vtkThreshold;
27class vtkPassThrough;
28class vtkPointSet;
29class vtkPolyData;
30class vtkUnstructuredGrid;
31
36class VTK_MRML_EXPORT vtkMRMLModelDisplayNode : public vtkMRMLDisplayNode
37{
38public:
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
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() VTK_SIZEHINT(2);
136
140 vtkGetMacro(SliceDisplayMode, int);
141 vtkSetMacro(SliceDisplayMode, int);
145
147 static const char* GetSliceDisplayModeAsString(int id);
148 static int GetSliceDisplayModeFromString(const char* name);
149
154 virtual void SetAndObserveDistanceEncodedProjectionColorNodeID(const char* colorNodeID);
159
162 virtual vtkDataSet* GetScalarDataSet() override;
164 virtual vtkDataArray* GetActiveScalarArray() override;
165
168 vtkSetVector3Macro(BackfaceColorHSVOffset, double);
169 vtkGetVector3Macro(BackfaceColorHSVOffset, double);
170
171 vtkSetMacro(ClippingCapSurface, bool);
172 vtkGetMacro(ClippingCapSurface, bool);
173 vtkBooleanMacro(ClippingCapSurface, bool);
174
175 vtkSetMacro(ClippingOutline, bool);
176 vtkGetMacro(ClippingOutline, bool);
177 vtkBooleanMacro(ClippingOutline, bool);
178
179 vtkSetMacro(ClippingCapOpacity, double);
180 vtkGetMacro(ClippingCapOpacity, double);
181
182 vtkSetVector3Macro(ClippingCapColorHSVOffset, double);
183 vtkGetVector3Macro(ClippingCapColorHSVOffset, double);
184
185protected:
189 void operator=(const vtkMRMLModelDisplayNode&);
190
191 void ProcessMRMLEvents(vtkObject* caller, unsigned long event, void* callData) override;
192
194 virtual void SetInputToMeshPipeline(vtkAlgorithmOutput* meshConnection);
195
198 virtual void UpdateAssignedAttribute() override;
199
204 vtkAssignAttribute* AssignAttribute;
205
209 vtkPassThrough* PassThrough;
210
215 vtkThreshold* ThresholdFilter;
216
220 vtkGeometryFilter* ConvertToPolyDataFilter;
221
227
229
232
234
235 bool ClippingCapSurface{ false };
236 double ClippingCapOpacity{ 1.0 };
237 bool ClippingOutline{ false };
239};
240
241#endif
Abstract MRML node to represent color information.
virtual void SetInputMeshConnection(vtkAlgorithmOutput *meshConnection)
virtual void UpdateAssignedAttribute() override
virtual vtkPolyData * GetOutputPolyData()
virtual vtkUnstructuredGrid * GetOutputUnstructuredGrid()
void SetThresholdEnabled(bool enabled)
void SetSliceDisplayModeToDistanceEncodedProjection()
void SetSliceDisplayModeToProjection()
virtual vtkAlgorithmOutput * GetInputMeshConnection()
vtkMRMLCopyContentMacro(vtkMRMLModelDisplayNode)
virtual vtkAlgorithmOutput * GetOutputMeshConnection()
virtual vtkDataArray * GetActiveScalarArray() override
Return the current active scalar array (based on active scalar name and location)
@ SliceDisplayDistanceEncodedProjection
Show full model projected on the slice, colored by distance from slice plane.
@ SliceDisplayProjection
Show full model projected on the slice (similar to MIP view of images)
@ SliceDisplayIntersection
Show model in slice view as intersection with slice.
void SetThresholdRange(double range[2])
vtkMRMLNode * CreateNodeInstance() override
Create instance of the default node. Like New only virtual.
virtual void SetAndObserveDistanceEncodedProjectionColorNodeID(const char *colorNodeID)
void SetActiveAttributeLocation(int location) override
virtual vtkMRMLColorNode * GetDistanceEncodedProjectionColorNode()
void SetSliceDisplayModeToIntersection()
virtual vtkAlgorithmOutput * GetInputPolyDataConnection()
void SetThresholdRange(double min, double max)
virtual vtkPointSet * GetInputMesh()
void ReadXMLAttributes(const char **atts) override
Read node attributes from XML file.
virtual void SetInputPolyDataConnection(vtkAlgorithmOutput *polyDataConnection)
virtual const char * GetDistanceEncodedProjectionColorNodeID()
void PrintSelf(ostream &os, vtkIndent indent) override
vtkAssignAttribute * AssignAttribute
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
static int GetSliceDisplayModeFromString(const char *name)
void SetActiveScalarName(const char *scalarName) override
vtkGeometryFilter * ConvertToPolyDataFilter
virtual vtkDataSet * GetScalarDataSet() override
void GetThresholdRange(double range[2])
static vtkMRMLModelDisplayNode * New()
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
double * GetThresholdRange() VTK_SIZEHINT(2)
virtual vtkPolyData * GetInputPolyData()
virtual vtkUnstructuredGrid * GetInputUnstructuredGrid()
static const char * GetSliceDisplayModeAsString(int id)
Convert between slice display mode ID and name.
virtual vtkPointSet * GetOutputMesh()
virtual void SetInputToMeshPipeline(vtkAlgorithmOutput *meshConnection)
To be reimplemented in subclasses if the input of the pipeline changes.
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
double ThresholdRangeTemp[2]
Temporary variable to allow GetThresholdRange() method to return threshold range as a pointer.
virtual vtkAlgorithmOutput * GetOutputPolyDataConnection()