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
00021
00029 #ifndef __vtkKWEPaintbrushRepresentation_h
00030 #define __vtkKWEPaintbrushRepresentation_h
00031
00032 #include "VTKEdgeConfigure.h"
00033 #include "vtkWidgetRepresentation.h"
00034
00035 class vtkImageStencil;
00036 class vtkImageStencilData;
00037 class vtkTimeStamp;
00038 class vtkKWEPaintbrushDrawing;
00039 class vtkKWEPaintbrushOperation;
00040 class vtkKWEPaintbrushAnnotationRepresentation;
00041 class vtkKWEPaintbrushSelectionRepresentation;
00042 class vtkKWEPaintbrushSketch;
00043 class vtkPointPlacer;
00044
00045 class VTKEdge_WIDGETS_EXPORT vtkKWEPaintbrushRepresentation : public vtkWidgetRepresentation
00046 {
00047
00048 friend class vtkKWEPaintbrushAnnotationRepresentation;
00049
00050 public:
00052
00053 vtkTypeRevisionMacro(vtkKWEPaintbrushRepresentation,vtkWidgetRepresentation);
00054 void PrintSelf(ostream& os, vtkIndent indent);
00056
00057
00058 enum
00059 {
00060 PaintbrushInteract,
00061 PaintbrushDraw,
00062 PaintbrushErase,
00063 PaintbrushResize,
00064 PaintbrushIsotropicResize,
00065 PaintbrushDisabled
00066 };
00067
00068
00070
00071 virtual void BuildRepresentation()=0;
00072 virtual int ComputeInteractionState(int X, int Y, int modified=0)=0;
00073 virtual void StartWidgetInteraction(double e[2])=0;
00074 virtual void WidgetInteraction(double e[2])=0;
00076
00078
00079 virtual void SetPaintbrushDrawing( vtkKWEPaintbrushDrawing * );
00080 vtkGetObjectMacro( PaintbrushDrawing, vtkKWEPaintbrushDrawing );
00082
00084
00085 virtual void SetPaintbrushOperation( vtkKWEPaintbrushOperation * );
00086 vtkGetObjectMacro( PaintbrushOperation, vtkKWEPaintbrushOperation );
00088
00090
00091 virtual void SetStateToDraw() { this->InteractionState = PaintbrushDraw; }
00092 virtual void SetStateToErase() { this->InteractionState = PaintbrushErase; }
00093 virtual void SetStateToInteract() { this->InteractionState = PaintbrushInteract; }
00094 virtual void SetStateToResize() { this->InteractionState = PaintbrushResize; }
00095 virtual void SetStateToDisabled() { this->InteractionState = PaintbrushDisabled; }
00096 virtual void SetStateToIsotropicResize()
00097 { this->InteractionState = PaintbrushIsotropicResize; }
00099
00101 virtual int BeginNewSketch();
00102
00104
00107 virtual int GoToSketch( int n );
00108 virtual int IncrementSketch();
00109 virtual int DecrementSketch();
00111
00113 int GetSketchIndex();
00114
00116 virtual int BeginNewStroke();
00117
00119
00121 virtual int UndoStroke();
00122 virtual int RemoveLastStroke();
00123 virtual int RedoStroke();
00125
00130 virtual int RemoveSketch( vtkKWEPaintbrushSketch * s );
00131
00132
00133
00134
00135
00136
00137
00138
00139 void SetShapePlacer( vtkPointPlacer * );
00140 vtkGetObjectMacro( ShapePlacer, vtkPointPlacer );
00141
00142
00143
00144
00145
00146
00147
00148
00149 virtual int ResizeShape( double d[3], int resizeType ) = 0;
00150
00151
00152
00153 vtkGetVector3Macro(CurrentShapePosition, double);
00154
00155
00156
00157 virtual void DeepCopy(vtkWidgetRepresentation *);
00158
00164 virtual int IsInsideCanvas( int displayPos[2] );
00165
00167
00169 vtkGetObjectMacro( Annotation, vtkKWEPaintbrushAnnotationRepresentation );
00171
00173
00175 vtkGetObjectMacro( SelectionRepresentation,
00176 vtkKWEPaintbrushSelectionRepresentation );
00178
00182 virtual void AddShapeToCurrentStroke( double p[3] );
00183
00187 virtual int ActivateShapeOutline( int X, int Y ) = 0;
00188
00192 virtual void CreateShapeOutline(double *pos) = 0;
00193
00195
00197 virtual void SetShapeOutlineVisibility( int ) = 0;
00198 virtual int GetShapeOutlineVisibility( ) = 0;
00200
00202
00204 virtual int IncreaseOpacity() { return 0; }
00205 virtual int DecreaseOpacity() { return 0; }
00207
00209
00210 virtual void InstallPipeline();
00211 virtual void UnInstallPipeline();
00213
00214 protected:
00215 vtkKWEPaintbrushRepresentation();
00216 ~vtkKWEPaintbrushRepresentation();
00217
00218 vtkKWEPaintbrushOperation *PaintbrushOperation;
00219 vtkKWEPaintbrushDrawing *PaintbrushDrawing;
00220
00226 vtkPointPlacer * ShapePlacer;
00227
00229 vtkKWEPaintbrushAnnotationRepresentation * Annotation;
00230
00233 vtkKWEPaintbrushSelectionRepresentation * SelectionRepresentation;
00234
00236
00237 int LastDisplayPosition[2];
00238 double CurrentShapePosition[3];
00239 int SketchIndex;
00240 int ShapeOutlineVisibility;
00241 int PipelineInstalled;
00243
00245 virtual void GetEtchExtents( int extent[6] );
00246
00247 private:
00248 vtkKWEPaintbrushRepresentation(const vtkKWEPaintbrushRepresentation&);
00249 void operator=(const vtkKWEPaintbrushRepresentation&);
00250 };
00251
00252 #endif
00253