VTK
vtkOrientationMarkerWidget.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOrientationMarkerWidget.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 =========================================================================*/
77 #ifndef vtkOrientationMarkerWidget_h
78 #define vtkOrientationMarkerWidget_h
79 
80 #include "vtkInteractionWidgetsModule.h" // For export macro
81 #include "vtkInteractorObserver.h"
82 
83 class vtkActor2D;
84 class vtkPolyData;
85 class vtkProp;
86 class vtkOrientationMarkerWidgetObserver;
87 class vtkRenderer;
88 
90 {
91 public:
94  void PrintSelf(ostream& os, vtkIndent indent);
95 
97 
98  virtual void SetOrientationMarker(vtkProp *prop);
99  vtkGetObjectMacro(OrientationMarker, vtkProp);
101 
103  virtual void SetEnabled(int);
104 
107  void ExecuteCameraUpdateEvent(vtkObject *o, unsigned long event, void *calldata);
108 
110 
112  void SetInteractive(int state);
113  vtkGetMacro(Interactive, int);
114  vtkBooleanMacro(Interactive, int);
116 
118 
121  void SetOutlineColor(double r, double g, double b);
122  double *GetOutlineColor();
124 
126 
128  void SetViewport(double minX, double minY, double maxX, double maxY);
129  double* GetViewport();
131 
133 
136  vtkSetClampMacro(Tolerance,int,1,10);
137  vtkGetMacro(Tolerance,int);
139 
140 protected:
143 
148 
149  unsigned long StartEventObserverId;
150 
151  static void ProcessEvents(vtkObject *object, unsigned long event,
152  void *clientdata, void *calldata);
153 
154  // ProcessEvents() dispatches to these methods.
157  void OnMouseMove();
158 
159  // observer to update the renderer's camera
160  vtkOrientationMarkerWidgetObserver *Observer;
161 
164  int Moving;
165 
166  // used to compute relative movements
167  int StartPosition[2];
168 
169 //BTX - manage the state of the widget
170  int State;
172  {
173  Outside = 0,
179  AdjustingP4
180  };
181 //ETX
182 
183 
184  // use to determine what state the mouse is over, edge1 p1, etc.
185  // returns a state from the WidgetState enum above
186  int ComputeStateBasedOnPosition(int X, int Y, int *pos1, int *pos2);
187 
188  // set the cursor to the correct shape based on State argument
189  void SetCursor(int state);
190 
191  // adjust the viewport depending on state
192  void MoveWidget(int X, int Y);
193  void ResizeTopLeft(int X, int Y);
194  void ResizeTopRight(int X, int Y);
195  void ResizeBottomLeft(int X, int Y);
196  void ResizeBottomRight(int X, int Y);
197 
200 
201 private:
202  vtkOrientationMarkerWidget(const vtkOrientationMarkerWidget&); // Not implemented
203  void operator=(const vtkOrientationMarkerWidget&); // Not implemented
204 };
205 
206 #endif
vtkOrientationMarkerWidget::ResizeTopLeft
void ResizeTopLeft(int X, int Y)
vtkOrientationMarkerWidget::OnMouseMove
void OnMouseMove()
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkOrientationMarkerWidget::OutlineActor
vtkActor2D * OutlineActor
Definition: vtkOrientationMarkerWidget.h:147
vtkOrientationMarkerWidget::Moving
int Moving
Definition: vtkOrientationMarkerWidget.h:164
vtkgl::b
GLboolean GLboolean GLboolean b
Definition: vtkgl.h:12312
vtkOrientationMarkerWidget::GetViewport
double * GetViewport()
vtkOrientationMarkerWidget::ResizeBottomRight
void ResizeBottomRight(int X, int Y)
vtkOrientationMarkerWidget::OnLeftButtonUp
void OnLeftButtonUp()
vtkOrientationMarkerWidget::OrientationMarker
vtkProp * OrientationMarker
Definition: vtkOrientationMarkerWidget.h:145
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkOrientationMarkerWidget::ResizeBottomLeft
void ResizeBottomLeft(int X, int Y)
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkOrientationMarkerWidget::ProcessEvents
static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
vtkInteractionWidgetsModule.h
vtkOrientationMarkerWidget::SetViewport
void SetViewport(double minX, double minY, double maxX, double maxY)
vtkOrientationMarkerWidget::SetOutlineColor
void SetOutlineColor(double r, double g, double b)
vtkOrientationMarkerWidget::Translating
@ Translating
Definition: vtkOrientationMarkerWidget.h:175
vtkInteractorObserver
an abstract superclass for classes observing events invoked by vtkRenderWindowInteractor
Definition: vtkInteractorObserver.h:62
vtkgl::event
struct _cl_event * event
Definition: vtkgl.h:14387
vtkOrientationMarkerWidget::StartEventObserverId
unsigned long StartEventObserverId
Definition: vtkOrientationMarkerWidget.h:149
vtkOrientationMarkerWidget::SquareRenderer
void SquareRenderer()
vtkOrientationMarkerWidget::Renderer
vtkRenderer * Renderer
Definition: vtkOrientationMarkerWidget.h:144
vtkOrientationMarkerWidget::AdjustingP3
@ AdjustingP3
Definition: vtkOrientationMarkerWidget.h:178
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkOrientationMarkerWidget::~vtkOrientationMarkerWidget
~vtkOrientationMarkerWidget()
vtkOrientationMarkerWidget::Interactive
int Interactive
Definition: vtkOrientationMarkerWidget.h:162
vtkOrientationMarkerWidget::AdjustingP1
@ AdjustingP1
Definition: vtkOrientationMarkerWidget.h:176
vtkOrientationMarkerWidget::New
static vtkOrientationMarkerWidget * New()
vtkOrientationMarkerWidget::vtkOrientationMarkerWidget
vtkOrientationMarkerWidget()
vtkOrientationMarkerWidget::Observer
vtkOrientationMarkerWidgetObserver * Observer
Definition: vtkOrientationMarkerWidget.h:160
vtkOrientationMarkerWidget::ExecuteCameraUpdateEvent
void ExecuteCameraUpdateEvent(vtkObject *o, unsigned long event, void *calldata)
vtkOrientationMarkerWidget::UpdateOutline
void UpdateOutline()
vtkOrientationMarkerWidget::GetOutlineColor
double * GetOutlineColor()
vtkOrientationMarkerWidget::ComputeStateBasedOnPosition
int ComputeStateBasedOnPosition(int X, int Y, int *pos1, int *pos2)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkOrientationMarkerWidget::AdjustingP2
@ AdjustingP2
Definition: vtkOrientationMarkerWidget.h:177
vtkOrientationMarkerWidget::ResizeTopRight
void ResizeTopRight(int X, int Y)
vtkOrientationMarkerWidget::State
int State
Definition: vtkOrientationMarkerWidget.h:170
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkOrientationMarkerWidget::Tolerance
int Tolerance
Definition: vtkOrientationMarkerWidget.h:163
vtkOrientationMarkerWidget::SetInteractive
void SetInteractive(int state)
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:50
vtkgl::r
GLdouble GLdouble GLdouble r
Definition: vtkgl.h:11610
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:45
VTKINTERACTIONWIDGETS_EXPORT
#define VTKINTERACTIONWIDGETS_EXPORT
Definition: vtkInteractionWidgetsModule.h:15
vtkgl::g
GLboolean GLboolean g
Definition: vtkgl.h:12312
vtkOrientationMarkerWidget::SetCursor
void SetCursor(int state)
vtkOrientationMarkerWidget::OnLeftButtonDown
void OnLeftButtonDown()
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkOrientationMarkerWidget::MoveWidget
void MoveWidget(int X, int Y)
vtkInteractorObserver.h
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkOrientationMarkerWidget::Inside
@ Inside
Definition: vtkOrientationMarkerWidget.h:174
vtkOrientationMarkerWidget
2D widget for manipulating a marker prop
Definition: vtkOrientationMarkerWidget.h:90
vtkOrientationMarkerWidget::SetOrientationMarker
virtual void SetOrientationMarker(vtkProp *prop)
vtkOrientationMarkerWidget::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkOrientationMarkerWidget::Outline
vtkPolyData * Outline
Definition: vtkOrientationMarkerWidget.h:146
vtkOrientationMarkerWidget::WidgetState
WidgetState
Definition: vtkOrientationMarkerWidget.h:172
vtkOrientationMarkerWidget::SetEnabled
virtual void SetEnabled(int)