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
00060 #ifndef __vtkKWEPaintbrushRepresentation2D_h
00061 #define __vtkKWEPaintbrushRepresentation2D_h
00062
00063 #include "vtkKWEPaintbrushRepresentation.h"
00064
00065 class vtkActor;
00066 class vtkProperty;
00067 class vtkPolyDataMapper;
00068 class vtkPolyData;
00069 class vtkPoints;
00070 class vtkCellArray;
00071 class vtkKWEPaintbrushBlend;
00072 class vtkImageActor;
00073 class vtkImageData;
00074 class vtkActor2D;
00075 class vtkTextMapper;
00076 class vtkTextProperty;
00077 class vtkKWEPaintbrushHighlightActors;
00078
00079 class VTKEdge_WIDGETS_EXPORT vtkKWEPaintbrushRepresentation2D
00080 : public vtkKWEPaintbrushRepresentation
00081 {
00082 public:
00084 static vtkKWEPaintbrushRepresentation2D *New();
00085
00087
00088 vtkTypeRevisionMacro(vtkKWEPaintbrushRepresentation2D,vtkKWEPaintbrushRepresentation);
00089 void PrintSelf(ostream& os, vtkIndent indent);
00091
00093
00094 virtual void BuildRepresentation();
00095 virtual int ComputeInteractionState(int X, int Y, int modified=0);
00096 virtual void StartWidgetInteraction(double e[2]);
00098
00104 virtual void WidgetInteraction(double eventPos[2]);
00105
00107
00108 virtual void ReleaseGraphicsResources(vtkWindow *w);
00109 virtual int RenderOverlay(vtkViewport *viewport);
00110 virtual int RenderOpaqueGeometry(vtkViewport *viewport);
00112
00113 #if VTKEdge_VTK_VERSION_DATE > 20070305
00114 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport);
00115 virtual int HasTranslucentPolygonalGeometry();
00116 #else
00117
00118 virtual int RenderTranslucentGeometry(vtkViewport *viewport);
00119 #endif
00120
00122
00127 void SetShapeOutlinePropertyInteract(vtkProperty*);
00128 vtkGetObjectMacro(ShapeOutlinePropertyInteract,vtkProperty);
00129 void SetShapeOutlinePropertyDraw(vtkProperty*);
00130 vtkGetObjectMacro(ShapeOutlinePropertyDraw,vtkProperty);
00131 void SetShapeOutlinePropertyErase(vtkProperty*);
00132 vtkGetObjectMacro(ShapeOutlinePropertyErase,vtkProperty);
00134
00135 virtual int ActivateShapeOutline( int x, int y );
00136
00138 virtual void CreateShapeOutline( double * pos );
00139
00141
00143 virtual void GetActors(vtkPropCollection *);
00144 virtual void GetActors2D(vtkPropCollection *);
00146
00148
00149 virtual void SetStateToDraw();
00150 virtual void SetStateToErase();
00151 virtual void SetStateToInteract();
00152 virtual void SetStateToDisabled();
00154
00158 virtual void SetPaintbrushOperation( vtkKWEPaintbrushOperation * );
00159
00161
00163 virtual void SetImageActor( vtkImageActor * );
00164 vtkGetObjectMacro ( ImageActor, vtkImageActor );
00166
00168
00177 virtual void SetImageData( vtkImageData * );
00178 vtkGetObjectMacro( ImageData, vtkImageData );
00180
00181
00182
00183 virtual void DeepCopy(vtkWidgetRepresentation *r);
00184
00186
00187 virtual int ResizeShape( double d[3], int resizeType );
00188 virtual void SetPaintbrushDrawing( vtkKWEPaintbrushDrawing * );
00189 virtual void SetShapeOutlineVisibility( int );
00190 virtual int GetShapeOutlineVisibility( );
00192
00194
00196 virtual int IncreaseOpacity();
00197 virtual int DecreaseOpacity();
00199
00201
00203 virtual void InstallPipeline();
00204 virtual void UnInstallPipeline();
00206
00208
00209 vtkSetMacro( UseOverlay, int );
00210 vtkGetMacro( UseOverlay, int );
00211 vtkBooleanMacro( UseOverlay, int );
00213
00215
00219 vtkSetMacro( SingleSliceThickBrush, int );
00220 vtkGetMacro( SingleSliceThickBrush, int );
00221 vtkBooleanMacro( SingleSliceThickBrush, int );
00223
00225
00227 virtual int CopySketchToNextSlice( vtkKWEPaintbrushSketch *s );
00228 virtual int CopySketchToPreviousSlice( vtkKWEPaintbrushSketch *s );
00230
00234 virtual void AddShapeToCurrentStroke( double p[3] );
00235
00236 protected:
00237 vtkKWEPaintbrushRepresentation2D();
00238 ~vtkKWEPaintbrushRepresentation2D();
00239
00243 virtual void CreateDefaultRepresentation();
00244
00245 vtkPolyData *ShapeOutline;
00246 vtkPolyDataMapper *ShapeOutlineMapper;
00247 vtkActor *ShapeOutlineActor;
00248 vtkProperty *ShapeOutlinePropertyInteract;
00249 vtkProperty *ShapeOutlinePropertyDraw;
00250 vtkProperty *ShapeOutlinePropertyErase;
00251 vtkImageActor *ImageActor;
00252 vtkImageData *ImageData;
00253 vtkKWEPaintbrushHighlightActors *HighlightActors;
00254 double LastEventPosition[2];
00255 int SingleSliceThickBrush;
00256
00258 virtual void GetEtchExtents( int extent[6] );
00259
00260 private:
00261 vtkKWEPaintbrushRepresentation2D(const vtkKWEPaintbrushRepresentation2D&);
00262 void operator=(const vtkKWEPaintbrushRepresentation2D&);
00263
00264 vtkKWEPaintbrushBlend *PaintbrushBlend;
00265 int UseOverlay;
00266 };
00267
00268 #endif
00269