VTK
vtkHandleRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHandleRepresentation.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 =========================================================================*/
48 #ifndef vtkHandleRepresentation_h
49 #define vtkHandleRepresentation_h
50 
51 #include "vtkInteractionWidgetsModule.h" // For export macro
53 
54 class vtkCoordinate;
55 class vtkRenderer;
56 class vtkPointPlacer;
57 
58 class VTKINTERACTIONWIDGETS_EXPORT vtkHandleRepresentation : public vtkWidgetRepresentation
59 {
60 public:
62 
66  void PrintSelf(ostream& os, vtkIndent indent);
68 
70 
78  virtual void SetDisplayPosition(double pos[3]);
79  virtual void GetDisplayPosition(double pos[3]);
80  virtual double* GetDisplayPosition();
81  virtual void SetWorldPosition(double pos[3]);
82  virtual void GetWorldPosition(double pos[3]);
83  virtual double* GetWorldPosition();
85 
87 
92  vtkSetClampMacro(Tolerance,int,1,100);
93  vtkGetMacro(Tolerance,int);
95 
97 
102  vtkSetMacro(ActiveRepresentation,int);
103  vtkGetMacro(ActiveRepresentation,int);
104  vtkBooleanMacro(ActiveRepresentation,int);
106 
107  // Enums define the state of the representation relative to the mouse pointer
108  // position. Used by ComputeInteractionState() to communicate with the
109  // widget. Note that ComputeInteractionState() and several other methods
110  // must be implemented by subclasses.
111  enum _InteractionState { Outside=0, Nearby, Selecting, Translating, Scaling };
112 
114 
123  vtkSetClampMacro(InteractionState,int,Outside,Scaling);
125 
127 
132  vtkSetMacro(Constrained,int);
133  vtkGetMacro(Constrained,int);
134  vtkBooleanMacro(Constrained,int);
136 
144  virtual int CheckConstraint(vtkRenderer *renderer, double pos[2]);
145 
147 
150  virtual void ShallowCopy(vtkProp *prop);
151  virtual void DeepCopy(vtkProp *prop);
152  virtual void SetRenderer(vtkRenderer *ren);
154 
160 
162 
170  virtual void SetPointPlacer ( vtkPointPlacer * );
171  vtkGetObjectMacro( PointPlacer, vtkPointPlacer );
173 
174 protected:
177 
181 
182  // Two vtkCoordinates are available to subclasses, one in display
183  // coordinates and the other in world coordinates. These facilitate
184  // the conversion between these two systems. Note that the WorldPosition
185  // is the ultimate maintainer of position.
188 
189  // Keep track of when coordinates were changed
192 
193  // Constrain the placement of handles.
195 
196 private:
197  vtkHandleRepresentation(const vtkHandleRepresentation&) VTK_DELETE_FUNCTION;
198  void operator=(const vtkHandleRepresentation&) VTK_DELETE_FUNCTION;
199 };
200 
201 #endif
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:71
abstract class for representing widget handles
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void SetPointPlacer(vtkPointPlacer *)
Set/Get the point placer.
virtual void SetRenderer(vtkRenderer *ren)
Subclasses of vtkWidgetRepresentation must implement these methods.
virtual void DeepCopy(vtkProp *prop)
virtual void SetDisplayPosition(double pos[3])
Handles usually have their coordinates set in display coordinates (generally by an associated widget)...
virtual double * GetDisplayPosition()
virtual void GetDisplayPosition(double pos[3])
virtual void ShallowCopy(vtkProp *prop)
Methods to make this class properly act like a vtkWidgetRepresentation.
virtual void SetWorldPosition(double pos[3])
virtual int CheckConstraint(vtkRenderer *renderer, double pos[2])
Method has to be overridden in the subclasses which has constraints on placing the handle (Ex.
virtual vtkMTimeType GetMTime()
Overload the superclasses' GetMTime() because the internal vtkCoordinates are used to keep the state ...
virtual void GetWorldPosition(double pos[3])
virtual double * GetWorldPosition()
a simple class to control print indentation
Definition: vtkIndent.h:40
Abstract interface to translate 2D display positions to world coordinates.
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:48
abstract specification for renderers
Definition: vtkRenderer.h:64
record modification and/or execution time
Definition: vtkTimeStamp.h:36
abstract class defines interface between the widget and widget representation classes
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248