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
00031 #ifndef __vtkKWEPaintbrushStroke_h
00032 #define __vtkKWEPaintbrushStroke_h
00033
00034 #include "VTKEdgeConfigure.h"
00035 #include "vtkKWEPaintbrushEnums.h"
00036 #include "vtkObject.h"
00037 #include <vtkstd/vector>
00038
00039 class vtkKWEPaintbrushOperation;
00040 class vtkKWEPaintbrushData;
00041 class vtkImageData;
00042
00043
00044 class vtkKWEPaintbrushStrokeNode
00045 {
00046 public:
00047 double WorldPosition[3];
00048 };
00049
00050 class vtkKWEPaintbrushStrokeInternals
00051 {
00052 public:
00053 vtkKWEPaintbrushStrokeInternals() : State( vtkKWEPaintbrushEnums::Draw ) {}
00054 vtkstd::vector<vtkKWEPaintbrushStrokeNode * > Node;
00055 vtkKWEPaintbrushEnums::BrushType State;
00056 };
00057
00058
00059 class VTKEdge_WIDGETS_EXPORT vtkKWEPaintbrushStroke : public vtkObject
00060 {
00061
00062 friend class vtkKWEPaintbrushSketch;
00063 friend class vtkKWEPaintbrushDrawing;
00064
00065 public:
00066
00068 static vtkKWEPaintbrushStroke *New();
00069
00071
00072 vtkTypeRevisionMacro(vtkKWEPaintbrushStroke, vtkObject);
00073 void PrintSelf(ostream& os, vtkIndent indent);
00075
00077
00078 virtual void SetPaintbrushOperation( vtkKWEPaintbrushOperation * );
00079 vtkGetObjectMacro( PaintbrushOperation, vtkKWEPaintbrushOperation );
00081
00083
00085 virtual void SetPaintbrushData(vtkKWEPaintbrushData *);
00086 vtkGetObjectMacro( PaintbrushData, vtkKWEPaintbrushData );
00088
00090
00092 virtual void SetImageData( vtkImageData * );
00093 vtkGetObjectMacro( ImageData, vtkImageData );
00095
00097
00099 virtual void SetStateToDraw();
00100 virtual void SetStateToErase();
00101 virtual void SetState( int );
00102 virtual int GetState();
00104
00106
00108 virtual void SetRepresentation( int representation );
00109 vtkGetMacro(Representation, int);
00110 virtual void SetRepresentationToGrayscale()
00111 { this->SetRepresentation(vtkKWEPaintbrushEnums::Grayscale); }
00112 virtual void SetRepresentationToBinary()
00113 { this->SetRepresentation(vtkKWEPaintbrushEnums::Binary); }
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125 virtual void SetExtent( int extent[6] );
00126 vtkGetVector6Macro( Extent, int );
00127
00128 protected:
00129 vtkKWEPaintbrushStroke();
00130 ~vtkKWEPaintbrushStroke();
00131
00132 vtkKWEPaintbrushOperation *PaintbrushOperation;
00133 vtkKWEPaintbrushStrokeInternals *Internals;
00134 vtkKWEPaintbrushData *PaintbrushData;
00135 vtkImageData *ImageData;
00136 int Extent[6];
00137 int Representation;
00138 double Tolerance;
00139 vtkKWEPaintbrushEnums::LabelType Label;
00140
00143 virtual void Allocate();
00144
00146
00149 virtual int AddShapeAtPosition(double p[3],
00150 vtkKWEPaintbrushData *auxData1 = NULL,
00151 vtkKWEPaintbrushData *auxData2 = NULL );
00153
00155
00157 void SetLabel( vtkKWEPaintbrushEnums::LabelType l ) { this->Label = l; }
00158 vtkGetMacro( Label, vtkKWEPaintbrushEnums::LabelType );
00160
00162
00163 vtkSetMacro( DrawTime, unsigned long );
00164 vtkGetMacro( DrawTime, unsigned long );
00165 unsigned long DrawTime;
00167
00168
00169 static bool IsRecent( const vtkKWEPaintbrushStroke *a,
00170 const vtkKWEPaintbrushStroke *b );
00171
00172 private:
00173 vtkKWEPaintbrushStroke(const vtkKWEPaintbrushStroke&);
00174 void operator=(const vtkKWEPaintbrushStroke&);
00175 };
00176
00177 #endif