15#ifndef __vtkMRMLModelDisplayNode_h
16#define __vtkMRMLModelDisplayNode_h
23class vtkAlgorithmOutput;
24class vtkAssignAttribute;
25class vtkGeometryFilter;
30class vtkUnstructuredGrid;
41 void PrintSelf(ostream& os, vtkIndent indent)
override;
57 void WriteXML(ostream& of,
int indent)
override;
118 vtkBooleanMacro(ThresholdEnabled,
bool);
123 vtkGetMacro(ThresholdEnabled,
bool);
134 double GetThresholdMin();
135 double GetThresholdMax();
140 vtkGetMacro(SliceDisplayMode,
int);
141 vtkSetMacro(SliceDisplayMode,
int);
142 void SetSliceDisplayModeToIntersection();
143 void SetSliceDisplayModeToProjection();
144 void SetSliceDisplayModeToDistanceEncodedProjection();
147 static const
char* GetSliceDisplayModeAsString(
int id);
148 static
int GetSliceDisplayModeFromString(const
char* name);
154 virtual
void SetAndObserveDistanceEncodedProjectionColorNodeID(const
char *colorNodeID);
157 virtual const
char* GetDistanceEncodedProjectionColorNodeID();
162 virtual vtkDataSet* GetScalarDataSet() override;
164 virtual vtkDataArray* GetActiveScalarArray() override;
168 vtkSetVector3Macro(BackfaceColorHSVOffset,
double);
169 vtkGetVector3Macro(BackfaceColorHSVOffset,
double);
177 void ProcessMRMLEvents(vtkObject *caller,
179 void *callData) override;
182 virtual
void SetInputToMeshPipeline(vtkAlgorithmOutput* meshConnection);
186 virtual
void UpdateAssignedAttribute() override;
192 vtkAssignAttribute* AssignAttribute;
197 vtkPassThrough* PassThrough;
203 vtkThreshold* ThresholdFilter;
208 vtkGeometryFilter* ConvertToPolyDataFilter;
214 bool ThresholdEnabled;
216 int SliceDisplayMode;
219 double ThresholdRangeTemp[2];
221 double BackfaceColorHSVOffset[3];
Abstract MRML node to represent color information.
Abstract class that contains graphical display properties for displayable nodes.
MRML node to represent a display property of 3D surface model.
virtual void SetInputMeshConnection(vtkAlgorithmOutput *meshConnection)
virtual vtkPolyData * GetOutputPolyData()
virtual vtkUnstructuredGrid * GetOutputUnstructuredGrid()
void SetThresholdEnabled(bool enabled)
virtual vtkAlgorithmOutput * GetInputMeshConnection()
vtkMRMLCopyContentMacro(vtkMRMLModelDisplayNode)
virtual vtkAlgorithmOutput * GetOutputMeshConnection()
@ 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.
void SetActiveAttributeLocation(int location) override
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)
void PrintSelf(ostream &os, vtkIndent indent) override
void SetActiveScalarName(const char *scalarName) 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()
virtual vtkPointSet * GetOutputMesh()
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
virtual vtkAlgorithmOutput * GetOutputPolyDataConnection()
Abstract Superclass for all specific types of MRML nodes.