ParaView
vtkPVAxesWidget.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkSMProxy.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
23 #ifndef vtkPVAxesWidget_h
24 #define vtkPVAxesWidget_h
25 
26 #include "vtkInteractorObserver.h"
27 #include "vtkPVVTKExtensionsRenderingModule.h" // needed for export macro
28 
29 class vtkActor2D;
30 class vtkKWApplication;
31 class vtkPolyData;
32 class vtkPVAxesActor;
33 class vtkPVAxesWidgetObserver;
34 class vtkRenderer;
35 
36 class VTKPVVTKEXTENSIONSRENDERING_EXPORT vtkPVAxesWidget : public vtkInteractorObserver
37 {
38 public:
39  static vtkPVAxesWidget* New();
40  vtkTypeMacro(vtkPVAxesWidget, vtkInteractorObserver);
41  void PrintSelf(ostream& os, vtkIndent indent);
42 
46  static const int RendererLayer = 1;
47 
49 
52  void SetAxesActor(vtkPVAxesActor* actor);
53  vtkGetObjectMacro(AxesActor, vtkPVAxesActor);
55 
59  virtual void SetEnabled(int);
60 
62 
65  void SetParentRenderer(vtkRenderer* ren);
66  vtkRenderer* GetParentRenderer();
68 
70 
73  vtkGetObjectMacro(Renderer, vtkRenderer);
75 
80  void ExecuteEvent(vtkObject* o, unsigned long event, void* calldata);
81 
83 
86  void SetInteractive(int state);
87  vtkGetMacro(Interactive, int);
88  vtkBooleanMacro(Interactive, int);
90 
92 
96  void SetOutlineColor(double r, double g, double b);
97  double* GetOutlineColor();
99 
101 
104  void SetAxisLabelColor(double r, double g, double b);
105  double* GetAxisLabelColor();
107 
109 
112  void SetViewport(double minX, double minY, double maxX, double maxY);
113  double* GetViewport();
115 
116 protected:
117  vtkPVAxesWidget();
118  ~vtkPVAxesWidget();
119 
120  vtkRenderer* Renderer;
121  vtkRenderer* ParentRenderer;
122 
124  vtkPolyData* Outline;
125  vtkActor2D* OutlineActor;
126 
127  static void ProcessEvents(
128  vtkObject* object, unsigned long event, void* clientdata, void* calldata);
129 
130  vtkPVAxesWidgetObserver* Observer;
131  int StartTag;
132 
134  int Moving;
135  int StartPosition[2];
136 
138 
139  void UpdateCursorIcon();
140  void SetMouseCursor(int cursorState);
141 
142  int State;
143 
145  {
146  Outside = 0,
151  BottomRight
152  };
153 
154  void OnButtonPress();
155  void OnMouseMove();
156  void OnButtonRelease();
157 
158  void MoveWidget();
159  void ResizeTopLeft();
160  void ResizeTopRight();
161  void ResizeBottomLeft();
162  void ResizeBottomRight();
163 
164  void SquareRenderer();
165 
166  unsigned long StartEventObserverId;
167 
168 private:
169  vtkPVAxesWidget(const vtkPVAxesWidget&) VTK_DELETE_FUNCTION;
170  void operator=(const vtkPVAxesWidget&) VTK_DELETE_FUNCTION;
171 };
172 
173 #endif
unsigned long StartEventObserverId
vtkRenderer * Renderer
vtkPVAxesWidgetObserver * Observer
vtkPVAxesActor * AxesActor
a 3D axes representation
vtkActor2D * OutlineActor
A widget to manipulate an axe.
vtkPolyData * Outline
vtkRenderer * ParentRenderer