VTK  9.5.2
vtkDistanceRepresentation.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
33
34#ifndef vtkDistanceRepresentation_h
35#define vtkDistanceRepresentation_h
36
37#include "vtkInteractionWidgetsModule.h" // For export macro
39#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
40
41VTK_ABI_NAMESPACE_BEGIN
43
44class VTKINTERACTIONWIDGETS_EXPORT VTK_MARSHALAUTO vtkDistanceRepresentation
46{
47public:
49
53 void PrintSelf(ostream& os, vtkIndent indent) override;
55
60 virtual double GetDistance() = 0;
61
63
68 virtual void GetPoint1WorldPosition(double pos[3]) VTK_FUTURE_CONST = 0;
69 virtual void GetPoint2WorldPosition(double pos[3]) VTK_FUTURE_CONST = 0;
70 virtual double* GetPoint1WorldPosition() VTK_SIZEHINT(3) = 0;
71 virtual double* GetPoint2WorldPosition() VTK_SIZEHINT(3) = 0;
72 virtual void SetPoint1DisplayPosition(double pos[3]) = 0;
73 virtual void SetPoint2DisplayPosition(double pos[3]) = 0;
74 virtual void GetPoint1DisplayPosition(double pos[3]) VTK_FUTURE_CONST = 0;
75 virtual void GetPoint2DisplayPosition(double pos[3]) VTK_FUTURE_CONST = 0;
76 virtual void SetPoint1WorldPosition(double pos[3]) = 0;
77 virtual void SetPoint2WorldPosition(double pos[3]) = 0;
79
81
94
96
104
106
111 vtkSetClampMacro(Tolerance, int, 1, 100);
112 vtkGetMacro(Tolerance, int);
114
116
121 vtkSetStringMacro(LabelFormat);
122 vtkGetStringMacro(LabelFormat);
124
126
134 vtkSetMacro(Scale, double);
135 vtkGetMacro(Scale, double);
137
139
144 vtkSetMacro(RulerMode, vtkTypeBool);
145 vtkGetMacro(RulerMode, vtkTypeBool);
146 vtkBooleanMacro(RulerMode, vtkTypeBool);
148
150
154 vtkSetClampMacro(RulerDistance, double, 0, VTK_FLOAT_MAX);
155 vtkGetMacro(RulerDistance, double);
157
159
166 vtkSetClampMacro(NumberOfRulerTicks, int, 1, VTK_INT_MAX);
167 vtkGetMacro(NumberOfRulerTicks, int);
169
170 // Used to communicate about the state of the representation
171 enum
172 {
176 };
177
179
182 void BuildRepresentation() override;
183 int ComputeInteractionState(int X, int Y, int modify = 0) override;
184 void StartWidgetInteraction(double e[2]) override;
185 void WidgetInteraction(double e[2]) override;
187 unsigned long event, void* calldata) override;
189 unsigned long event, void* calldata) override;
191 unsigned long event, void* calldata, int modify = 0) override;
193
194protected:
197
198 // The handle and the rep used to close the handles
202
203 // Selection tolerance for the handles
205
206 // Format for printing the distance
208
209 // Scale to change from the VTK world coordinates to the desired coordinate
210 // system.
211 double Scale;
212
213 // Ruler related stuff
217
218private:
220 void operator=(const vtkDistanceRepresentation&) = delete;
221};
222
223VTK_ABI_NAMESPACE_END
224#endif
define the API for widget / widget representation
int ComputeInteractionState(int X, int Y, int modify=0) override
These are methods that satisfy vtkWidgetRepresentation's API.
int ComputeComplexInteractionState(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata, int modify=0) override
These are methods that satisfy vtkWidgetRepresentation's API.
void StartComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
These are methods that satisfy vtkWidgetRepresentation's API.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
virtual void GetPoint2DisplayPosition(double pos[3]) VTK_FUTURE_CONST=0
Methods to Set/Get the coordinates of the two points defining this representation.
virtual double GetDistance()=0
This representation and all subclasses must keep a distance consistent with the state of the widget.
vtkHandleRepresentation * Point2Representation
vtkHandleRepresentation * HandleRepresentation
void SetHandleRepresentation(vtkHandleRepresentation *handle)
This method is used to specify the type of handle representation to use for the two internal vtkHandl...
virtual void SetPoint1WorldPosition(double pos[3])=0
Methods to Set/Get the coordinates of the two points defining this representation.
virtual void GetPoint1DisplayPosition(double pos[3]) VTK_FUTURE_CONST=0
Methods to Set/Get the coordinates of the two points defining this representation.
virtual double * GetPoint1WorldPosition()=0
Methods to Set/Get the coordinates of the two points defining this representation.
void InstantiateHandleRepresentation()
This method is used to specify the type of handle representation to use for the two internal vtkHandl...
virtual void GetPoint2WorldPosition(double pos[3]) VTK_FUTURE_CONST=0
Methods to Set/Get the coordinates of the two points defining this representation.
~vtkDistanceRepresentation() override
virtual void SetPoint2WorldPosition(double pos[3])=0
Methods to Set/Get the coordinates of the two points defining this representation.
void BuildRepresentation() override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void SetPoint2DisplayPosition(double pos[3])=0
Methods to Set/Get the coordinates of the two points defining this representation.
void WidgetInteraction(double e[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
vtkHandleRepresentation * Point1Representation
void ComplexInteraction(vtkRenderWindowInteractor *iren, vtkAbstractWidget *widget, unsigned long event, void *calldata) override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void GetPoint1WorldPosition(double pos[3]) VTK_FUTURE_CONST=0
Methods to Set/Get the coordinates of the two points defining this representation.
void StartWidgetInteraction(double e[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void SetPoint1DisplayPosition(double pos[3])=0
Methods to Set/Get the coordinates of the two points defining this representation.
abstract class for representing widget handles
a simple class to control print indentation
Definition vtkIndent.h:108
platform-independent render window interaction including picking and frame rate control.
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_INT_MAX
Definition vtkType.h:161
#define VTK_FLOAT_MAX
Definition vtkType.h:169
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO