42#ifndef vtkSlicerInteractionRepresentation_h
43#define vtkSlicerInteractionRepresentation_h
46#include "vtkMRMLDisplayableManagerExport.h"
54#include <vtkActor2D.h>
55#include <vtkAppendPolyData.h>
56#include <vtkArrayCalculator.h>
57#include <vtkGlyph3D.h>
58#include <vtkLookupTable.h>
60#include <vtkPointPlacer.h>
61#include <vtkPointSetToLabelHierarchy.h>
62#include <vtkPolyDataMapper.h>
63#include <vtkPolyDataMapper2D.h>
64#include <vtkProperty.h>
65#include <vtkProperty2D.h>
66#include <vtkSmartPointer.h>
67#include <vtkSphereSource.h>
68#include <vtkTextActor.h>
69#include <vtkTextProperty.h>
70#include <vtkTensorGlyph.h>
71#include <vtkTransform.h>
72#include <vtkTransformPolyDataFilter.h>
86 void PrintSelf(ostream& os, vtkIndent indent)
override;
107 int &foundComponentType,
int &foundComponentIndex,
double &closestDistance2);
165 vtkSetMacro(Interacting,
bool);
166 vtkGetMacro(Interacting,
bool);
167 vtkBooleanMacro(Interacting,
bool);
217 vtkSmartPointer<vtkAppendPolyData>
Append;
232 HandleInfo(
int index,
int componentType,
double positionWorld[3],
double positionLocal[3],
double color[4],
int glyphType,
bool applyScaleToPosition)
234 , ComponentType(componentType)
235 , GlyphType(glyphType)
236 , ApplyScaleToPosition(applyScaleToPosition)
238 for (
int i = 0; i < 3; ++i)
240 this->PositionWorld[i] = positionWorld[i];
242 this->PositionWorld[3] = 1.0;
243 for (
int i = 0; i < 3; ++i)
245 this->PositionLocal[i] = positionLocal[i];
247 this->PositionLocal[3] = 1.0;
248 for (
int i = 0; i < 4; ++i)
250 this->Color[i] = color[i];
256 double PositionLocal[4];
257 double PositionWorld[4];
259 bool ApplyScaleToPosition{
true};
262 double epsilon = 0.001;
263 return this->Color[3] > epsilon;
304 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2,
HandleInfo& handleInfo);
306 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2,
HandleInfo& handleInfo);
308 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2,
HandleInfo& handleInfo);
311 double StartFadeAngleDegrees{10.0};
313 double EndFadeAngleDegrees{8.0};
324 double InteractionSize{1.0};
326 double WidgetScale{1.0};
328 bool Interacting{
false};
Abstract class that contains graphical display properties for displayable nodes.
Abstract Superclass for all specific types of MRML nodes.
MRML node for storing a slice through RAS space.