Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLDisplayNode.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: vtkMRMLDisplayNode.h,v $
10 Date: $Date: 2006/03/19 17:12:29 $
11 Version: $Revision: 1.3 $
12
13=========================================================================auto=*/
14
15#ifndef __vtkMRMLDisplayNode_h
16#define __vtkMRMLDisplayNode_h
17
18// MRML includes
19#include "vtkMRMLNode.h"
20
21// STD includes
22#include <vector>
23
24class vtkAlgorithmOutput;
25class vtkDataSet;
26class vtkImageData;
29class vtkPolyData;
30class vtkTextProperty;
31
38class VTK_MRML_EXPORT vtkMRMLDisplayNode : public vtkMRMLNode
39{
40public:
42 void PrintSelf(ostream& os, vtkIndent indent) override;
43
47 {
48 PointsRepresentation = 0,
50 SurfaceRepresentation
51 };
52
56 {
57 FlatInterpolation = 0,
60 PBRInterpolation
61 };
62
76 {
77 UseManualScalarRange = 0,
82 // insert types above this line
83 NUM_SCALAR_RANGE_FLAGS
84 };
85
88 {
89 ShowDefault = 0,
91 ShowMode_Last
92 };
93
94 enum
95 {
96 MenuEvent = 16100,
98 };
99
102 static const char* GetScalarRangeFlagTypeAsString(int flag);
104 static int GetScalarRangeFlagTypeFromString(const char* name);
105
109
112 void ReadXMLAttributes( const char** atts) override;
113
116 void WriteXML(ostream& of, int indent) override;
117
121
125 void ProcessMRMLEvents(vtkObject *caller, unsigned long event,
126 void *callData) override;
127
129 void SetSceneReferences() override;
130
133 void UpdateReferences() override;
134
136 void UpdateScene(vtkMRMLScene *scene) override;
137
139 void UpdateReferenceID(const char *oldID, const char *newID) override;
140
143 vtkSetVector3Macro(Color, double);
146 vtkGetVector3Macro(Color, double);
147
150 vtkSetVector3Macro(EdgeColor, double);
153 vtkGetVector3Macro(EdgeColor, double);
154
157 vtkSetVector3Macro(SelectedColor, double);
160 vtkGetVector3Macro(SelectedColor, double);
161
164 vtkSetMacro(SelectedAmbient, double);
167 vtkGetMacro(SelectedAmbient, double);
168
171 vtkSetMacro(SelectedSpecular, double);
174 vtkGetMacro(SelectedSpecular, double);
175
178 vtkSetMacro(PointSize, double);
181 vtkGetMacro(PointSize, double);
182
185 vtkSetMacro(LineWidth, double);
188 vtkGetMacro(LineWidth, double);
189
192 vtkSetMacro(Representation, int);
195 vtkGetMacro(Representation, int);
196
199 vtkSetMacro(Opacity, double);
202 vtkGetMacro(Opacity, double);
203
206 vtkSetMacro(SliceIntersectionOpacity, double);
209 vtkGetMacro(SliceIntersectionOpacity, double);
210
213 vtkSetMacro(Ambient, double);
216 vtkGetMacro(Ambient, double);
217
220 vtkSetMacro(Diffuse, double);
223 vtkGetMacro(Diffuse, double);
224
227 vtkSetMacro(Specular, double);
230 vtkGetMacro(Specular, double);
231
234 vtkSetMacro(Power, double);
237 vtkGetMacro(Power, double);
238
240
242 vtkSetMacro(Metallic, double);
243 vtkGetMacro(Metallic, double);
245
247
249 vtkSetMacro(Roughness, double);
250 vtkGetMacro(Roughness, double);
252
255 vtkSetMacro(Visibility, int);
258 vtkGetMacro(Visibility, int);
261 vtkBooleanMacro(Visibility, int);
269 virtual bool GetVisibility(const char* viewNodeID);
270
274 vtkSetMacro(Visibility2D, int);
278 vtkGetMacro(Visibility2D, int);
282 vtkBooleanMacro(Visibility2D, int);
283
287 vtkSetMacro(Visibility3D, int);
291 vtkGetMacro(Visibility3D, int);
295 vtkBooleanMacro(Visibility3D, int);
296
299 vtkSetMacro(EdgeVisibility, int);
300 vtkBooleanMacro(EdgeVisibility, int);
303 vtkGetMacro(EdgeVisibility, int);
304
307 vtkSetMacro(Clipping, int);
310 vtkGetMacro(Clipping, int);
313 vtkBooleanMacro(Clipping, int);
314
339
342 vtkSetMacro(SliceIntersectionThickness, int);
345 vtkGetMacro(SliceIntersectionThickness, int);
346
355 vtkSetMacro(FrontfaceCulling, int);
356 vtkGetMacro(FrontfaceCulling, int);
357 vtkBooleanMacro(FrontfaceCulling, int);
358 vtkSetMacro(BackfaceCulling, int);
359 vtkGetMacro(BackfaceCulling, int);
360 vtkBooleanMacro(BackfaceCulling, int);
362
366 vtkSetMacro(Lighting, int);
370 vtkGetMacro(Lighting, int);
373 vtkBooleanMacro(Lighting, int);
374
377 vtkSetMacro(Interpolation, int);
380 vtkGetMacro(Interpolation, int);
381
384 vtkSetMacro(Shading, int);
387 vtkGetMacro(Shading, int);
388
392 vtkSetMacro(ScalarVisibility, int);
396 vtkGetMacro(ScalarVisibility, int);
399 vtkBooleanMacro(ScalarVisibility, int);
400
404 vtkSetMacro(VectorVisibility, int);
408 vtkGetMacro(VectorVisibility, int);
411 vtkBooleanMacro(VectorVisibility, int);
412
416 vtkSetMacro(TensorVisibility, int);
420 vtkGetMacro(TensorVisibility, int);
423 vtkBooleanMacro(TensorVisibility, int);
424
444 virtual void UpdateAssignedAttribute() {};
448 virtual void UpdateScalarRange();
449
452 vtkSetVector2Macro(ScalarRange, double);
455 vtkGetVector2Macro(ScalarRange, double);
456
460 virtual void SetScalarRangeFlag(int flag);
463 vtkGetMacro(ScalarRangeFlag, int);
469 void SetScalarRangeFlagFromString(const char* str);
470
473 vtkSetMacro(FolderDisplayOverrideAllowed, bool);
476 vtkGetMacro(FolderDisplayOverrideAllowed, bool);
479 vtkBooleanMacro(FolderDisplayOverrideAllowed, bool);
480
482
490 vtkSetMacro(ShowMode, int);
491 vtkGetMacro(ShowMode, int);
492 bool IsShowModeDefault() { return this->GetShowMode() == vtkMRMLDisplayNode::ShowDefault; }
494
496
498 static const char* GetShowModeAsString(int flag);
499 static int GetShowModeFromString(const char* name);
501
504 virtual void SetTextureImageDataConnection(vtkAlgorithmOutput *ImageDataConnection);
507 vtkGetObjectMacro(TextureImageDataConnection, vtkAlgorithmOutput);
508
512 vtkSetMacro(InterpolateTexture, int);
516 vtkGetMacro(InterpolateTexture, int);
519 vtkBooleanMacro(InterpolateTexture, int);
520
523 virtual void SetAndObserveColorNodeID(const char *ColorNodeID);
527 void SetAndObserveColorNodeID(const std::string& ColorNodeID);
530 vtkGetStringMacro(ColorNodeID);
531
536
539 vtkSetStringMacro(ActiveScalarName);
542 vtkGetStringMacro(ActiveScalarName);
543
547 vtkSetMacro(ActiveAttributeLocation, int);
550 vtkGetMacro(ActiveAttributeLocation, int);
561 virtual void SetActiveScalar(const char *scalarName, int location);
562
565 virtual vtkDataSet* GetScalarDataSet() { return nullptr; };
568 virtual vtkDataArray* GetActiveScalarArray() { return nullptr; };
569
572 void AddViewNodeID(const char* viewNodeID);
580 void RemoveViewNodeID(char* viewNodeID);
587 inline int GetNumberOfViewNodeIDs()const;
591 const char* GetNthViewNodeID(unsigned int index);
595 inline std::vector< std::string > GetViewNodeIDs()const;
599 bool IsViewNodeIDPresent(const char* viewNodeID)const;
604 bool IsDisplayableInView(const char* viewNodeID)const;
609 void SetDisplayableOnlyInView(const char *viewNodeID);
613 void SetViewNodeIDs(const std::vector< std::string >& viewNodeIDs);
614
616 static const char* GetAttributeLocationAsString(int id);
618 static int GetAttributeLocationFromString(const char* name);
619
622 static std::string GetTextPropertyAsString(vtkTextProperty* property);
623
626 static void UpdateTextPropertyFromString(std::string inputString, vtkTextProperty* property);
627
628protected:
633
638 virtual void SetColorNodeInternal(vtkMRMLColorNode* newColorNode);
639
642 static void GetColorFromString(const std::string& colorString, double color[4]);
643
649 vtkAlgorithmOutput *TextureImageDataConnection;
650
664
679
684 double Opacity;
694 double Ambient;
699 double Diffuse;
704 double Specular;
709 double Power;
714
715 double Metallic;
716 double Roughness;
717
724
728 double PointSize;
729
733 double LineWidth;
734
739
745
754
760
832
838 double ScalarRange[2];
839
844 double Color[3];
850 double EdgeColor[3];
855 double SelectedColor[3];
856
866 std::vector< std::string > ViewNodeIDs;
867
874
879
882
884 vtkWeakPointer<vtkMRMLDisplayableNode> LastFoundDisplayableNode;
885private:
886 void SetColorNodeID(const char* id);
887};
888
889//----------------------------------------------------------------------------
891{
892 return static_cast<int>(this->ViewNodeIDs.size());
893}
894
895//----------------------------------------------------------------------------
896std::vector< std::string > vtkMRMLDisplayNode::GetViewNodeIDs()const
897{
898 return this->ViewNodeIDs;
899}
900
901#endif
Abstract MRML node to represent color information.
Abstract class that contains graphical display properties for displayable nodes.
void PrintSelf(ostream &os, vtkIndent indent) override
std::vector< std::string > ViewNodeIDs
vtkWeakPointer< vtkMRMLDisplayableNode > LastFoundDisplayableNode
Cached value of last found displayable node (it is expensive to determine it)
void SetAutoScalarRange(int b)
void UpdateReferenceID(const char *oldID, const char *newID) override
Update the stored reference to another node in the scene.
virtual void SetActiveScalar(const char *scalarName, int location)
vtkAlgorithmOutput * TextureImageDataConnection
virtual vtkMRMLColorNode * GetColorNode()
void ReadXMLAttributes(const char **atts) override
int GetSliceIntersectionVisibility()
virtual void UpdateScalarRange()
int GetNumberOfViewNodeIDs() const
bool IsViewNodeIDPresent(const char *viewNodeID) const
void operator=(const vtkMRMLDisplayNode &)
ShowModeType
Enumerated values for ShowMode.
@ ShowDefault
set visibility of this node if user requests show of the displayable node
@ ShowIgnore
set visibility manually, useful for non-essential display nodes (e.g., color legend)
const char * GetNthViewNodeID(unsigned int index)
void SetActiveAttributeLocationFromString(const char *str)
void SetSliceIntersectionVisibility(int on)
static const char * GetScalarRangeFlagTypeAsString(int flag)
static std::string GetTextPropertyAsString(vtkTextProperty *property)
const char * GetScalarRangeFlagAsString()
vtkMRMLDisplayNode(const vtkMRMLDisplayNode &)
void SliceIntersectionVisibilityOff()
void RemoveAllViewNodeIDs()
void AddViewNodeID(const char *viewNodeID)
static int GetScalarRangeFlagTypeFromString(const char *name)
Gets scalar range flag type from string.
vtkMRMLCopyContentMacro(vtkMRMLDisplayNode)
void SetDisplayableOnlyInView(const char *viewNodeID)
void SetAndObserveColorNodeID(const std::string &ColorNodeID)
void RemoveViewNodeID(char *viewNodeID)
void WriteXML(ostream &of, int indent) override
static int GetAttributeLocationFromString(const char *name)
Gets attribute location (point or cell data) from string.
static void UpdateTextPropertyFromString(std::string inputString, vtkTextProperty *property)
static int GetShowModeFromString(const char *name)
virtual void UpdateAssignedAttribute()
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
void SliceIntersectionVisibilityOn()
void SetViewNodeIDs(const std::vector< std::string > &viewNodeIDs)
static void GetColorFromString(const std::string &colorString, double color[4])
void UpdateScene(vtkMRMLScene *scene) override
Finds the storage node and read the data.
const char * GetActiveAttributeLocationAsString()
virtual void SetAndObserveColorNodeID(const char *ColorNodeID)
virtual vtkMRMLDisplayableNode * GetDisplayableNode()
vtkMRMLColorNode * ColorNode
static const char * GetAttributeLocationAsString(int id)
Converts attribute location (point or cell data) to string.
virtual void SetScalarRangeFlag(int flag)
virtual vtkDataSet * GetScalarDataSet()
bool IsDisplayableInView(const char *viewNodeID) const
virtual bool GetVisibility(const char *viewNodeID)
void UpdateReferences() override
std::vector< std::string > GetViewNodeIDs() const
virtual void SetTextureImageDataConnection(vtkAlgorithmOutput *ImageDataConnection)
virtual void SetColorNodeInternal(vtkMRMLColorNode *newColorNode)
static const char * GetShowModeAsString(int flag)
~vtkMRMLDisplayNode() override
void SetSceneReferences() override
Mark the color and views nodes as references.
void SetScalarRangeFlagFromString(const char *str)
virtual vtkDataArray * GetActiveScalarArray()
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.