Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00136 #ifndef __vtkKWEPaintbrushWidget_h
00137 #define __vtkKWEPaintbrushWidget_h
00138
00139 #include "VTKEdgeConfigure.h"
00140 #include "vtkKWEAbstractPaintbrushWidget.h"
00141
00142 class vtkKWEPaintbrushRepresentation;
00143 class vtkKWEPaintbrushAnnotationWidget;
00144 class vtkKWEPaintbrushSelectionWidget;
00145 class vtkKWEWidgetGroup;
00146
00147 class VTKEdge_WIDGETS_EXPORT vtkKWEPaintbrushWidget : public vtkKWEAbstractPaintbrushWidget
00148 {
00149 public:
00151 static vtkKWEPaintbrushWidget *New();
00152
00154
00155 vtkTypeRevisionMacro(vtkKWEPaintbrushWidget,vtkKWEAbstractPaintbrushWidget);
00156 void PrintSelf(ostream& os, vtkIndent indent);
00158
00160 virtual void SetEnabled(int);
00161
00164 void SetRepresentation(vtkKWEPaintbrushRepresentation *r);
00165
00167 virtual void CreateDefaultRepresentation();
00168
00170
00175 virtual void SetPaintbrushMode( int );
00176 vtkGetMacro( PaintbrushMode, int );
00178
00180
00182 vtkGetObjectMacro(PaintbrushSelectionWidget, vtkKWEPaintbrushSelectionWidget);
00184
00186
00187 vtkGetObjectMacro(PaintbrushAnnotationWidget, vtkKWEPaintbrushAnnotationWidget);
00189
00191
00192 enum
00193 {
00194 BeginDrawStrokeEvent = 10000,
00195 BeginDrawStrokeForThisSketchEvent,
00196 BeginEraseStrokeEvent,
00197 BeginEraseStrokeForThisSketchEvent,
00198 EndStrokeEvent,
00199 UndoStrokeEvent,
00200 RedoStrokeEvent,
00201 DeleteStrokeEvent,
00202 BeginResizeEvent,
00203 BeginIsotropicResizeEvent,
00204 BeginNewSketchEvent,
00205 ResizeEvent,
00206 EndResizeEvent,
00207 ToggleSelectStateEvent,
00208 DrawEvent,
00209 EraseEvent,
00210 IncrementSketchEvent,
00211 DecrementSketchEvent,
00212 IncreaseOpacityEvent,
00213 DecreaseOpacityEvent,
00214 SelectSketchEvent,
00215 SelectAllSketchesEvent,
00216 UnselectSketchEvent,
00217 UnSelectAllSketchesEvent,
00218 ToggleSelectAllSketchesEvent,
00219 ToggleSketchMutabilityEvent,
00220 DeleteSelectionEvent,
00221 MergeSelectionEvent,
00222 GoToSketchEvent,
00223 EnterEvent,
00224 LeaveEvent
00225 };
00226 enum
00227 {
00228 PaintbrushInteract,
00229 PaintbrushDraw,
00230 PaintbrushErase,
00231 PaintbrushResize,
00232 PaintbrushIsotropicResize,
00233 PaintbrushDisabled
00234 };
00235 enum PaintbrushMode
00236 {
00237 Edit,
00238 Select
00239 };
00240
00242
00245 virtual void DeepCopy(vtkAbstractWidget *w);
00246
00249 virtual void SetProcessEvents(int);
00250
00252
00254 void IncrementSketch();
00255 void GoToSketch( int n );
00256 void SetWidgetStateToEnabled();
00257 void SetWidgetStateToDisabled();
00258 vtkGetMacro( WidgetState, int );
00260
00262
00276 static void BeginDrawCallback ( vtkAbstractWidget* );
00277 static void BeginDrawThisSketchCallback ( vtkAbstractWidget* );
00278 static void BeginEraseCallback ( vtkAbstractWidget* );
00279 static void BeginEraseThisSketchCallback ( vtkAbstractWidget* );
00280 static void MoveCallback ( vtkAbstractWidget* );
00281 static void EndStrokeCallback ( vtkAbstractWidget* );
00282 static void UndoCallback ( vtkAbstractWidget* );
00283 static void RedoCallback ( vtkAbstractWidget* );
00284 static void DeleteCallback ( vtkAbstractWidget* );
00285 static void BeginResizeShapeCallback ( vtkAbstractWidget* );
00286 static void BeginIsotropicResizeShapeCallback( vtkAbstractWidget* );
00287 static void EndResizeShapeCallback ( vtkAbstractWidget* );
00288 static void ToggleSelectStateCallback ( vtkAbstractWidget* );
00289 static void BeginNewSketchCallback ( vtkAbstractWidget* );
00290 static void IncrementSketchCallback ( vtkAbstractWidget* );
00291 static void DecrementSketchCallback ( vtkAbstractWidget* );
00292 static void IncreaseOpacityCallback ( vtkAbstractWidget* );
00293 static void DecreaseOpacityCallback ( vtkAbstractWidget* );
00294 static void MergeSelectionCallback ( vtkAbstractWidget* );
00295 static void ToggleSelectAllSketchesCallback ( vtkAbstractWidget* );
00296 static void ToggleSketchMutabilityCallback ( vtkAbstractWidget* );
00297 static void EnterWidgetCallback ( vtkAbstractWidget* );
00298 static void LeaveWidgetCallback ( vtkAbstractWidget* );
00300
00301 protected:
00302 vtkKWEPaintbrushWidget();
00303 ~vtkKWEPaintbrushWidget();
00304
00306
00307 int BeginDrawAction ( vtkKWEPaintbrushWidget *dispatcher);
00308 int EndStrokeAction ( vtkKWEPaintbrushWidget *dispatcher);
00309 int BeginEraseAction ( vtkKWEPaintbrushWidget *dispatcher);
00310 int HoverAction ( vtkKWEPaintbrushWidget *dispatcher);
00311 int UndoAction ( vtkKWEPaintbrushWidget *dispatcher);
00312 int RedoAction ( vtkKWEPaintbrushWidget *dispatcher);
00313 int DeleteAction ( vtkKWEPaintbrushWidget *dispatcher);
00314 int BeginResizeAction ( vtkKWEPaintbrushWidget *dispatcher);
00315 int BeginIsotropicResizeAction ( vtkKWEPaintbrushWidget *dispatcher);
00316 int ResizeAction ( vtkKWEPaintbrushWidget *dispatcher);
00317 int EndResizeAction ( vtkKWEPaintbrushWidget *dispatcher);
00318 int ToggleSelectStateAction ( vtkKWEPaintbrushWidget *dispatcher);
00319 int BeginNewSketchAction ( vtkKWEPaintbrushWidget *dispatcher);
00320 int IncrementSketchAction ( vtkKWEPaintbrushWidget *dispatcher);
00321 int DecrementSketchAction ( vtkKWEPaintbrushWidget *dispatcher);
00322 int EnterWidgetAction ( vtkKWEPaintbrushWidget *dispatcher);
00323 int LeaveWidgetAction ( vtkKWEPaintbrushWidget *dispatcher);
00324 int GoToSketchAction ( vtkKWEPaintbrushWidget *dispatcher);
00326
00328 virtual void SetCursor( int interactionState );
00329
00330 private:
00331 vtkKWEPaintbrushWidget(const vtkKWEPaintbrushWidget&);
00332 void operator=(const vtkKWEPaintbrushWidget&);
00333
00334 int ResizeStartPosition[2];
00335 double ResizeFactor[3];
00336 int WidgetState;
00337 int PaintbrushMode;
00338 vtkKWEPaintbrushAnnotationWidget * PaintbrushAnnotationWidget;
00339 vtkKWEPaintbrushSelectionWidget * PaintbrushSelectionWidget;
00340 };
00341
00342 #endif