VTK
vtkAngleRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAngleRepresentation.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
30 #ifndef vtkAngleRepresentation_h
31 #define vtkAngleRepresentation_h
32 
33 #include "vtkInteractionWidgetsModule.h" // For export macro
35 
37 
38 
39 class VTKINTERACTIONWIDGETS_EXPORT vtkAngleRepresentation : public vtkWidgetRepresentation
40 {
41 public:
43 
47  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
49 
54  virtual double GetAngle() = 0;
55 
57 
62  virtual void GetPoint1WorldPosition(double pos[3]) = 0;
63  virtual void GetCenterWorldPosition(double pos[3]) = 0;
64  virtual void GetPoint2WorldPosition(double pos[3]) = 0;
65  virtual void SetPoint1DisplayPosition(double pos[3]) = 0;
66  virtual void SetCenterDisplayPosition(double pos[3]) = 0;
67  virtual void SetPoint2DisplayPosition(double pos[3]) = 0;
68  virtual void GetPoint1DisplayPosition(double pos[3]) = 0;
69  virtual void GetCenterDisplayPosition(double pos[3]) = 0;
70  virtual void GetPoint2DisplayPosition(double pos[3]) = 0;
72 
74 
84  void SetHandleRepresentation(vtkHandleRepresentation *handle);
85  void InstantiateHandleRepresentation();
87 
89 
92  vtkGetObjectMacro(Point1Representation,vtkHandleRepresentation);
93  vtkGetObjectMacro(CenterRepresentation,vtkHandleRepresentation);
94  vtkGetObjectMacro(Point2Representation,vtkHandleRepresentation);
96 
98 
103  vtkSetClampMacro(Tolerance,int,1,100);
104  vtkGetMacro(Tolerance,int);
106 
108 
113  vtkSetStringMacro(LabelFormat);
114  vtkGetStringMacro(LabelFormat);
116 
118 
122  vtkSetMacro(Ray1Visibility,int);
123  vtkGetMacro(Ray1Visibility,int);
124  vtkBooleanMacro(Ray1Visibility,int);
125  vtkSetMacro(Ray2Visibility,int);
126  vtkGetMacro(Ray2Visibility,int);
127  vtkBooleanMacro(Ray2Visibility,int);
128  vtkSetMacro(ArcVisibility,int);
129  vtkGetMacro(ArcVisibility,int);
130  vtkBooleanMacro(ArcVisibility,int);
132 
133  // Used to communicate about the state of the representation
134  enum {Outside=0,NearP1,NearCenter,NearP2};
135 
137 
140  void BuildRepresentation() VTK_OVERRIDE;
141  int ComputeInteractionState(int X, int Y, int modify=0) VTK_OVERRIDE;
142  void StartWidgetInteraction(double e[2]) VTK_OVERRIDE;
143  virtual void CenterWidgetInteraction(double e[2]);
144  void WidgetInteraction(double e[2]) VTK_OVERRIDE;
146 
147 protected:
149  ~vtkAngleRepresentation() VTK_OVERRIDE;
150 
151  // The handle and the rep used to close the handles
152  vtkHandleRepresentation *HandleRepresentation;
153  vtkHandleRepresentation *Point1Representation;
154  vtkHandleRepresentation *CenterRepresentation;
155  vtkHandleRepresentation *Point2Representation;
156 
157  // Selection tolerance for the handles
158  int Tolerance;
159 
160  // Visibility of the various pieces of the representation
161  int Ray1Visibility;
162  int Ray2Visibility;
163  int ArcVisibility;
164 
165  // Format for the label
166  char *LabelFormat;
167 
168 private:
169  vtkAngleRepresentation(const vtkAngleRepresentation&) VTK_DELETE_FUNCTION;
170  void operator=(const vtkAngleRepresentation&) VTK_DELETE_FUNCTION;
171 };
172 
173 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instances of this class.
abstract class for representing widget handles
abstract class defines interface between the widget and widget representation classes ...
virtual void BuildRepresentation()=0
Subclasses of vtkWidgetRepresentation must implement these methods.
a simple class to control print indentation
Definition: vtkIndent.h:33
represent the vtkAngleWidget
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.