VTK
vtkSphereHandleRepresentation.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSphereHandleRepresentation.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 vtkSphereHandleRepresentation_h
31 #define vtkSphereHandleRepresentation_h
32 
33 #include "vtkInteractionWidgetsModule.h" // For export macro
35 #include "vtkSphereSource.h" // Needed for delegation to sphere
36 
37 class vtkSphereSource;
38 class vtkProperty;
39 class vtkActor;
40 class vtkPolyDataMapper;
41 class vtkCellPicker;
42 
43 class VTKINTERACTIONWIDGETS_EXPORT vtkSphereHandleRepresentation
45 {
46 public:
51 
53 
57  void PrintSelf(ostream& os, vtkIndent indent);
59 
61 
68  virtual void SetWorldPosition(double p[3]);
69  virtual void SetDisplayPosition(double p[3]);
71 
73 
81  vtkSetMacro(TranslationMode,int);
82  vtkGetMacro(TranslationMode,int);
83  vtkBooleanMacro(TranslationMode,int);
85 
86  void SetSphereRadius(double);
87  double GetSphereRadius();
88 
90 
95  vtkGetObjectMacro(Property,vtkProperty);
96  vtkGetObjectMacro(SelectedProperty,vtkProperty);
98 
100 
106  vtkSetClampMacro(HotSpotSize,double,0.0,1.0);
107  vtkGetMacro(HotSpotSize,double);
109 
114  virtual void SetHandleSize(double size);
115 
117 
120  virtual double *GetBounds();
121  virtual void BuildRepresentation();
122  virtual void StartWidgetInteraction(double eventPos[2]);
123  virtual void WidgetInteraction(double eventPos[2]);
124  virtual int ComputeInteractionState(int X, int Y, int modify=0);
125  virtual void PlaceWidget(double bounds[6]);
127 
129 
132  virtual void ShallowCopy(vtkProp *prop);
133  virtual void DeepCopy(vtkProp *prop);
134  virtual void GetActors(vtkPropCollection *);
136  virtual int RenderOpaqueGeometry(vtkViewport *viewport);
140 
141  void Highlight(int highlight);
142 protected:
145 
146  // the cursor3D
150  // void Highlight(int highlight);
151 
152  // Do the picking
154  double LastPickPosition[3];
155  double LastEventPosition[2];
156 
157  // Register internal Pickers within PickingManager
158  virtual void RegisterPickers();
159 
160  // Methods to manipulate the cursor
162  void Translate(double *p1, double *p2);
163  void Scale(double *p1, double *p2, double eventPos[2]);
164  void MoveFocus(double *p1, double *p2);
165  void SizeBounds();
166 
167  // Properties used to control the appearance of selected objects and
168  // the manipulator in general.
172 
173  // The size of the hot spot.
174  double HotSpotSize;
175  int DetermineConstraintAxis(int constraint, double *x);
178 
179  // Current handle sized (may reflect scaling)
181 
182  // Control how translation works
184 
185 private:
187  void operator=(const vtkSphereHandleRepresentation&) VTK_DELETE_FUNCTION;
188 };
189 
190 #endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
ray-cast cell picker for all kinds of Prop3Ds
Definition: vtkCellPicker.h:70
abstract class for representing widget handles
a simple class to control print indentation
Definition: vtkIndent.h:40
map vtkPolyData to graphics primitives
a list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:48
represent surface properties of a geometric object
Definition: vtkProperty.h:65
A spherical rendition of point in 3D space.
virtual void SetHandleSize(double size)
Overload the superclasses SetHandleSize() method to update internal variables.
void Highlight(int highlight)
virtual int ComputeInteractionState(int X, int Y, int modify=0)
virtual void ShallowCopy(vtkProp *prop)
Methods to make this class behave as a vtkProp.
virtual void GetActors(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors or volumes.
virtual void BuildRepresentation()
virtual void SetWorldPosition(double p[3])
Set the position of the point in world and display coordinates.
virtual int RenderOpaqueGeometry(vtkViewport *viewport)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual void DeepCopy(vtkProp *prop)
virtual int HasTranslucentPolygonalGeometry()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport)
virtual void RegisterPickers()
Register internal Pickers in the Picking Manager.
virtual void WidgetInteraction(double eventPos[2])
virtual void StartWidgetInteraction(double eventPos[2])
void SetProperty(vtkProperty *)
Set/Get the handle properties when unselected and selected.
static vtkSphereHandleRepresentation * New()
Instantiate this class.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void ReleaseGraphicsResources(vtkWindow *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
virtual double * GetBounds()
Methods to make this class properly act like a vtkWidgetRepresentation.
void SetSelectedProperty(vtkProperty *)
int DetermineConstraintAxis(int constraint, double *x)
void Scale(double *p1, double *p2, double eventPos[2])
virtual void SetDisplayPosition(double p[3])
Handles usually have their coordinates set in display coordinates (generally by an associated widget)...
virtual void PlaceWidget(double bounds[6])
void Translate(double *p1, double *p2)
void MoveFocus(double *p1, double *p2)
create a polygonal sphere centered at the origin
abstract specification for Viewports
Definition: vtkViewport.h:48
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ size
Definition: vtkX3D.h:253
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.