18#ifndef __vtkMRMLSliceDisplayNode_h
19#define __vtkMRMLSliceDisplayNode_h
33 void PrintSelf(ostream& os, vtkIndent indent)
override;
39 void WriteXML(ostream& of,
int indent)
override;
54 vtkBooleanMacro(IntersectingSlicesVisibility,
bool);
59 vtkGetMacro(IntersectingThickSlabVisibility,
bool);
60 vtkSetMacro(IntersectingThickSlabVisibility,
bool);
61 vtkBooleanMacro(IntersectingThickSlabVisibility,
bool);
66 vtkGetMacro(IntersectingSlicesInteractive,
bool);
67 vtkSetMacro(IntersectingSlicesInteractive,
bool);
68 vtkBooleanMacro(IntersectingSlicesInteractive,
bool);
73 vtkGetMacro(IntersectingThickSlabInteractive,
bool);
74 vtkSetMacro(IntersectingThickSlabInteractive,
bool);
75 vtkBooleanMacro(IntersectingThickSlabInteractive,
bool);
80 vtkGetMacro(IntersectingSlicesTranslationEnabled,
bool);
81 vtkSetMacro(IntersectingSlicesTranslationEnabled,
bool);
82 vtkBooleanMacro(IntersectingSlicesTranslationEnabled,
bool);
83 vtkGetMacro(IntersectingSlicesRotationEnabled,
bool);
84 vtkSetMacro(IntersectingSlicesRotationEnabled,
bool);
85 vtkBooleanMacro(IntersectingSlicesRotationEnabled,
bool);
107 HandlesVisibilityMode_Last
113 vtkGetMacro(IntersectingSlicesInteractiveHandlesVisibilityMode,
int);
114 vtkSetMacro(IntersectingSlicesInteractiveHandlesVisibilityMode,
int);
125 SkipLineCrossings = 0,
127 IntersectionMode_Last
133 vtkGetMacro(IntersectingSlicesIntersectionMode,
int);
134 vtkSetMacro(IntersectingSlicesIntersectionMode,
int);
148 LineThicknessMode_Last
154 vtkGetMacro(IntersectingSlicesLineThicknessMode,
int);
155 vtkSetMacro(IntersectingSlicesLineThicknessMode,
int);
214 this->Type = ComponentNone;
221 bool IntersectingSlicesInteractive{
false };
222 bool IntersectingSlicesTranslationEnabled{
true };
223 bool IntersectingSlicesRotationEnabled{
true };
224 bool IntersectingThickSlabInteractive{
false };
225 bool IntersectingThickSlabVisibility{
false };
227 int IntersectingSlicesInteractiveHandlesVisibilityMode{ NeverVisible };
229 int IntersectingSlicesIntersectionMode{ FullLines };
231 int IntersectingSlicesLineThicknessMode{ FineLines };
MRML node to represent a display property of 3D surface model.
Abstract Superclass for all specific types of MRML nodes.
MRML node to store display properties of slice nodes.
@ ComponentTranslateSingleIntersectingSliceHandle
mouse is near the middle of the slice intersection (translation section)
@ ComponentRotateIntersectingSlicesHandle
mouse is near the end of the slice intersection (rotation section)
@ ComponentTranslateIntersectingSlicesHandle
mouse is near the intersection point of slice intersections
@ ComponentSliceIntersection
slice intersection is active (not any handle), e.g., because user is interacting with the widget
@ ComponentTranslateIntersectingThickSlabHandle
mouse is near the handle for adjusting a thick slab
bool GetIntersectingSlicesInteractiveModeEnabled(IntersectingSlicesInteractiveMode mode)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
void SetIntersectingSlicesVisibility(bool visible)
std::map< std::string, ComponentInfo > ActiveComponents
void operator=(const vtkMRMLSliceDisplayNode &)
~vtkMRMLSliceDisplayNode() override
static vtkMRMLSliceDisplayNode * New()
static int GetIntersectingSlicesLineThicknessModeFromString(const char *)
static const char * GetIntersectingSlicesLineThicknessModeAsString(int id)
void SetIntersectingSlicesInteractiveModeEnabled(IntersectingSlicesInteractiveMode mode, bool enabled)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
@ FullLines
Lines intersect.
vtkMRMLCopyContentMacro(vtkMRMLSliceDisplayNode)
static int GetIntersectingSlicesInteractiveHandlesVisibilityModeFromString(const char *)
std::vector< std::string > GetActiveComponentInteractionContexts()
static const char * GetIntersectingSlicesInteractiveHandlesVisibilityModeAsString(int id)
Convert between intersecting slices interactive handles visibility mode ID and string.
static int GetIntersectingSlicesIntersectionModeFromString(const char *)
void PrintSelf(ostream &os, vtkIndent indent) override
bool GetIntersectingSlicesVisibility()
Toggles visibility of intersections of other slices in the slice viewer.
vtkMRMLSliceDisplayNode(const vtkMRMLSliceDisplayNode &)
int GetActiveComponentType(std::string context=vtkMRMLSliceDisplayNode::GetDefaultContextName())
static const char * GetIntersectingSlicesIntersectionModeAsString(int id)
Convert between intersecting slices intersection mode ID and string.
void ReadXMLAttributes(const char **atts) override
Read node attributes from XML file.
vtkMRMLSliceDisplayNode()
IntersectingSlicesInteractiveMode
void SetActiveComponent(int componentType, int componentIndex, std::string context=vtkMRMLSliceDisplayNode::GetDefaultContextName())
Set active component type and index for interaction context (empty by default, meaning mouse)
@ MediumLines
Medium lines.
vtkMRMLNode * CreateNodeInstance() override
Create instance of the default node. Like New only virtual.
static const std::string GetDefaultContextName()
Get name of the default interaction context (typically the mouse)
bool HasActiveComponent()
Query if there is an active component for any interaction context.
int GetActiveComponentIndex(std::string context=vtkMRMLSliceDisplayNode::GetDefaultContextName())
@ NearbyVisible
Handles are displayed when mouse pointer gets close.
@ AlwaysVisible
Handles are always visible.