Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLModelNode.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: vtkMRMLModelNode.h,v $
10 Date: $Date: 2006/03/19 17:12:28 $
11 Version: $Revision: 1.6 $
12
13=========================================================================auto=*/
14
15#ifndef __vtkMRMLModelNode_h
16#define __vtkMRMLModelNode_h
17
18// MRML includes
22
23// VTK includes
24class vtkAlgorithmOutput;
25class vtkAssignAttributes;
26class vtkEventForwarderCommand;
27class vtkDataArray;
28class vtkPointSet;
29class vtkPolyData;
30class vtkTransformFilter;
31class vtkUnstructuredGrid;
33
42class VTK_MRML_EXPORT vtkMRMLModelNode : public vtkMRMLDisplayableNode
43{
44public:
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
49 //--------------------------------------------------------------------------
51 //--------------------------------------------------------------------------
52
54
56 const char* GetNodeTagName() override {return "Model";};
57
61
63 void ProcessMRMLEvents ( vtkObject * /*caller*/,
64 unsigned long /*event*/,
65 void * /*callData*/ ) override;
66
69
72 virtual void SetAndObserveMesh(vtkPointSet *Mesh);
73
76 virtual void SetAndObservePolyData(vtkPolyData *polyData);
77
80 virtual vtkPointSet* GetMesh();
81
84 virtual vtkPolyData* GetPolyData();
85
89 virtual vtkUnstructuredGrid* GetUnstructuredGrid();
90
94 virtual void SetPolyDataConnection(vtkAlgorithmOutput *inputPort);
95
99 virtual void SetUnstructuredGridConnection(vtkAlgorithmOutput *inputPort);
100
103 vtkGetObjectMacro(MeshConnection,vtkAlgorithmOutput)
104
105
108 virtual vtkAlgorithmOutput* GetPolyDataConnection();
109
113 virtual vtkAlgorithmOutput* GetUnstructuredGridConnection();
114
118 {
119 PolyDataMeshType = 0,
120 UnstructuredGridMeshType
121 };
122
128 vtkGetMacro(MeshType, MeshTypeHint);
129
136 enum
137 {
138 MeshModifiedEvent = 17001,
139 PolyDataModifiedEvent = 17001
140 };
141
144 void AddPointScalars(vtkDataArray *array);
145
148 void AddCellScalars(vtkDataArray *array);
149
153 void AddScalars(vtkDataArray *array, int location);
154
156 void RemoveScalars(const char *scalarName);
157
161 bool HasPointScalarName(const char* scalarName);
162
166 bool HasCellScalarName(const char* scalarName);
167
175 int SetActivePointScalars(const char *scalarName, int attributeType);
176
182 const char *GetActivePointScalarName(int type);
183
191 int SetActiveCellScalars(const char *scalarName, int attributeType);
192
197 const char *GetActiveCellScalarName(int type);
198
202 static int GetAttributeTypeFromString(const char* typeName);
203
214 int CompositeScalars(const char* backgroundName, const char* overlayName,
215 float overlayMin, float overlayMax,
216 int showOverlayPositive, int showOverlayNegative,
217 int reverseOverlay);
218
223 void GetRASBounds(double bounds[6]) override;
224
228 void GetBounds(double bounds[6]) override;
229
234 virtual void TransformBoundsToRAS(double inputBounds_Local[6], double outputBounds_RAS[6]);
235
236 bool CanApplyNonLinearTransforms()const override;
237 void ApplyTransform(vtkAbstractTransform* transform) override;
238
240
241 std::string GetDefaultStorageNodeClassName(const char* filename /* =nullptr */) override;
242
245
253 bool GetModifiedSinceRead() override;
254
261
262protected:
267
269 virtual void SetMeshConnection(vtkAlgorithmOutput *inputPort);
270
274
278
282
283
287
290 virtual void SetMeshToDisplayNode(vtkMRMLModelDisplayNode* modelDisplayNode);
291
293 vtkAlgorithmOutput* MeshConnection;
294 vtkEventForwarderCommand* DataEventForwarder;
296};
297
298#endif
Abstract class that contains graphical display properties for displayable nodes.
MRML node to represent a display property of 3D surface model.
MRML node to represent a 3D surface model.
virtual void UpdateDisplayNodeMesh(vtkMRMLDisplayNode *dnode)
virtual void SetAndObservePolyData(vtkPolyData *polyData)
vtkAlgorithmOutput * MeshConnection
Data.
virtual void SetUnstructuredGridConnection(vtkAlgorithmOutput *inputPort)
virtual vtkPointSet * GetMesh()
int CompositeScalars(const char *backgroundName, const char *overlayName, float overlayMin, float overlayMax, int showOverlayPositive, int showOverlayNegative, int reverseOverlay)
void AddCellScalars(vtkDataArray *array)
virtual vtkPolyData * GetPolyData()
~vtkMRMLModelNode() override
MeshTypeHint MeshType
void CreateDefaultDisplayNodes() override
Create and observe default display node.
bool ShowDefaultScalarData()
vtkEventForwarderCommand * DataEventForwarder
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
virtual void SetMeshConnection(vtkAlgorithmOutput *inputPort)
Called by SetPolyDataConnection and SetUnstructuredGridConnection.
virtual void TransformBoundsToRAS(double inputBounds_Local[6], double outputBounds_RAS[6])
virtual vtkUnstructuredGrid * GetUnstructuredGrid()
virtual void SetMeshToDisplayNode(vtkMRMLModelDisplayNode *modelDisplayNode)
bool HasPointScalarName(const char *scalarName)
void GetBounds(double bounds[6]) override
void operator=(const vtkMRMLModelNode &)
void SetMeshToDisplayNodes()
virtual void SetAndObserveMesh(vtkPointSet *Mesh)
int SetActivePointScalars(const char *scalarName, int attributeType)
vtkMRMLModelDisplayNode * GetModelDisplayNode()
Get associated model display MRML node.
bool CanApplyNonLinearTransforms() const override
void AddPointScalars(vtkDataArray *array)
Utility function that adds an array to the mesh's point data. /.
vtkMRMLCopyContentMacro(vtkMRMLModelNode)
bool HasCellScalarName(const char *scalarName)
static int GetAttributeTypeFromString(const char *typeName)
bool GetModifiedSinceRead() override
static vtkMRMLModelNode * New()
void PrintSelf(ostream &os, vtkIndent indent) override
vtkMRMLModelNode(const vtkMRMLModelNode &)
std::string GetDefaultStorageNodeClassName(const char *filename) override
vtkMRMLStorageNode * CreateDefaultStorageNode() override
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
const char * GetActiveCellScalarName(int type)
void AddScalars(vtkDataArray *array, int location)
void GetRASBounds(double bounds[6]) override
virtual void SetPolyDataConnection(vtkAlgorithmOutput *inputPort)
void OnNodeReferenceAdded(vtkMRMLNodeReference *reference) override
Called when a node reference ID is added (list size increased).
void ProcessMRMLEvents(vtkObject *, unsigned long, void *) override
alternative method to propagate events generated in Display nodes
int SetActiveCellScalars(const char *scalarName, int attributeType)
const char * GetActivePointScalarName(int type)
void RemoveScalars(const char *scalarName)
Remove an array from the mesh's point/cell data.
void OnNodeReferenceModified(vtkMRMLNodeReference *reference) override
Called when a node reference ID is modified.
void ApplyTransform(vtkAbstractTransform *transform) override
Class to hold information about a node reference.
Abstract Superclass for all specific types of MRML nodes.
A superclass for other storage nodes.