VTK  9.3.0
vtkBiDimensionalRepresentation.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
31#ifndef vtkBiDimensionalRepresentation_h
32#define vtkBiDimensionalRepresentation_h
33
34#include "vtkInteractionWidgetsModule.h" // For export macro
36
37VTK_ABI_NAMESPACE_BEGIN
39
40class VTKINTERACTIONWIDGETS_EXPORT vtkBiDimensionalRepresentation : public vtkWidgetRepresentation
41{
42public:
44
48 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52
57 virtual void SetPoint1WorldPosition(double pos[3]);
58 virtual void SetPoint2WorldPosition(double pos[3]);
59 virtual void SetPoint3WorldPosition(double pos[3]);
60 virtual void SetPoint4WorldPosition(double pos[3]);
61 virtual void GetPoint1WorldPosition(double pos[3]);
62 virtual void GetPoint2WorldPosition(double pos[3]);
63 virtual void GetPoint3WorldPosition(double pos[3]);
64 virtual void GetPoint4WorldPosition(double pos[3]);
65 virtual void SetPoint1DisplayPosition(double pos[3]);
66 virtual void SetPoint2DisplayPosition(double pos[3]);
67 virtual void SetPoint3DisplayPosition(double pos[3]);
68 virtual void SetPoint4DisplayPosition(double pos[3]);
69 virtual void GetPoint1DisplayPosition(double pos[3]);
70 virtual void GetPoint2DisplayPosition(double pos[3]);
71 virtual void GetPoint3DisplayPosition(double pos[3]);
72 virtual void GetPoint4DisplayPosition(double pos[3]);
74
76
82 vtkGetObjectMacro(Point1Representation, vtkHandleRepresentation);
83 vtkGetObjectMacro(Point2Representation, vtkHandleRepresentation);
84 vtkGetObjectMacro(Point3Representation, vtkHandleRepresentation);
85 vtkGetObjectMacro(Point4Representation, vtkHandleRepresentation);
87
89
95 vtkSetMacro(Line1Visibility, vtkTypeBool);
96 vtkGetMacro(Line1Visibility, vtkTypeBool);
97 vtkBooleanMacro(Line1Visibility, vtkTypeBool);
98 vtkSetMacro(Line2Visibility, vtkTypeBool);
99 vtkGetMacro(Line2Visibility, vtkTypeBool);
100 vtkBooleanMacro(Line2Visibility, vtkTypeBool);
102
104
118
120
125 vtkSetClampMacro(Tolerance, int, 1, 100);
126 vtkGetMacro(Tolerance, int);
128
133 virtual double GetLength1();
134
139 virtual double GetLength2();
140
142
147 vtkSetStringMacro(LabelFormat);
148 vtkGetStringMacro(LabelFormat);
150
151 // Used to communicate about the state of the representation
152 enum
153 {
154 Outside = 0,
163 OnCenter
164 };
165
167
171 vtkSetMacro(ShowLabelAboveWidget, vtkTypeBool);
172 vtkGetMacro(ShowLabelAboveWidget, vtkTypeBool);
173 vtkBooleanMacro(ShowLabelAboveWidget, vtkTypeBool);
175
177
180 void SetID(vtkIdType id);
181 vtkGetMacro(ID, vtkIdType);
183
187 virtual char* GetLabelText() = 0;
188
190
193 virtual double* GetLabelPosition() = 0;
194 virtual void GetLabelPosition(double pos[3]) = 0;
195 virtual void GetWorldLabelPosition(double pos[3]) = 0;
197
199
202 virtual void StartWidgetDefinition(double e[2]) = 0;
203 virtual void Point2WidgetInteraction(double e[2]) = 0;
204 virtual void Point3WidgetInteraction(double e[2]) = 0;
205 virtual void StartWidgetManipulation(double e[2]) = 0;
207
208protected:
211
212 // Keep track if modifier is set
214
215 // The handle and the rep used to close the handles
221
222 // Selection tolerance for the handles
224
225 // Visibility of the lines
228
231
232 // Internal variables
233 double P1World[3];
234 double P2World[3];
235 double P3World[3];
236 double P4World[3];
237 double P21World[3];
238 double P43World[3];
239 double T21;
240 double T43;
241 double CenterWorld[3];
242 double StartEventPositionWorld[4];
243
244 // Format for printing the distance
246
247 // toggle to determine whether to place text above or below widget
249
250private:
252 void operator=(const vtkBiDimensionalRepresentation&) = delete;
253};
254
255VTK_ABI_NAMESPACE_END
256#endif
represent the vtkBiDimensionalWidget
virtual void GetPoint2DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void SetPoint1DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual double GetLength2()
Return the length of the line defined by (Point3,Point4).
virtual char * GetLabelText()=0
Get the text shown in the widget's label.
virtual void GetPoint1WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void StartWidgetManipulation(double e[2])=0
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void Point2WidgetInteraction(double e[2])=0
These are methods that satisfy vtkWidgetRepresentation's API.
void SetHandleRepresentation(vtkHandleRepresentation *handle)
This method is used to specify the type of handle representation to use for the four internal vtkHand...
virtual void SetPoint3DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void SetPoint2WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void GetPoint4DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual double * GetLabelPosition()=0
Get the position of the widget's label in display coordinates.
virtual void Point3WidgetInteraction(double e[2])=0
These are methods that satisfy vtkWidgetRepresentation's API.
~vtkBiDimensionalRepresentation() override
virtual void GetPoint2WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void SetPoint1WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void GetPoint4WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void StartWidgetDefinition(double e[2])=0
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void SetPoint4DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void SetPoint2DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
void SetID(vtkIdType id)
Set/get the id to display in the label.
virtual void SetPoint3WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void GetPoint1DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void GetWorldLabelPosition(double pos[3])=0
Get the position of the widget's label in display coordinates.
virtual void GetPoint3WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void SetPoint4WorldPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void GetPoint3DisplayPosition(double pos[3])
Methods to Set/Get the coordinates of the four points defining this representation.
virtual void GetLabelPosition(double pos[3])=0
Get the position of the widget's label in display coordinates.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
virtual double GetLength1()
Return the length of the line defined by (Point1,Point2).
virtual void InstantiateHandleRepresentation()
This method is used to specify the type of handle representation to use for the four internal vtkHand...
abstract class for representing widget handles
a simple class to control print indentation
Definition vtkIndent.h:29
abstract class defines interface between the widget and widget representation classes
int vtkTypeBool
Definition vtkABI.h:64
int vtkIdType
Definition vtkType.h:315