00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00055 #ifndef __vtkImageStencilData_h
00056 #define __vtkImageStencilData_h
00057
00058
00059 #include "vtkDataObject.h"
00060
00061 class VTK_IMAGING_EXPORT vtkImageStencilData : public vtkDataObject
00062 {
00063 public:
00064 static vtkImageStencilData *New();
00065 vtkTypeMacro(vtkImageStencilData, vtkDataObject);
00066 void PrintSelf(ostream& os, vtkIndent indent);
00067
00068 vtkDataObject *MakeObject();
00069 void Initialize();
00070 void DeepCopy(vtkDataObject *o);
00071 void ShallowCopy(vtkDataObject *f);
00072 void InternalImageStencilDataCopy(vtkImageStencilData *s);
00073
00076 int GetDataObjectType() { return VTK_DATA_OBJECT; }
00077
00079 int GetExtentType() { return VTK_3D_EXTENT; };
00080
00082
00090 int GetNextExtent(int &r1, int &r2, int xMin, int xMax,
00091 int yIdx, int zIdx, int &iter);
00093
00099 void InsertNextExtent(int r1, int r2, int yIdx, int zIdx);
00100
00102
00105 vtkSetVector3Macro(Spacing, float);
00106 vtkGetVector3Macro(Spacing, float);
00108
00110
00113 vtkSetVector3Macro(Origin, float);
00114 vtkGetVector3Macro(Origin, float);
00116
00118
00121 vtkSetVector6Macro(Extent, int);
00122 vtkGetVector6Macro(Extent, int);
00124
00126
00128 vtkSetVector3Macro(OldSpacing, float);
00129 vtkGetVector3Macro(OldSpacing, float);
00131
00133
00135 vtkSetVector3Macro(OldOrigin, float);
00136 vtkGetVector3Macro(OldOrigin, float);
00138
00141 void AllocateExtents();
00142
00149 void UpdateData();
00150
00155 void PropagateUpdateExtent();
00156
00162 void TriggerAsynchronousUpdate();
00163
00164 protected:
00165 vtkImageStencilData();
00166 ~vtkImageStencilData();
00167
00170 int SpacingOrOriginHasChanged();
00171
00173
00175 float OldSpacing[3];
00176 float OldOrigin[3];
00178
00180
00181 float Spacing[3];
00182 float Origin[3];
00184
00186
00187 int NumberOfExtentEntries;
00188 int *ExtentListLengths;
00189 int **ExtentLists;
00191 private:
00192 vtkImageStencilData(const vtkImageStencilData&);
00193 void operator=(const vtkImageStencilData&);
00194 };
00195
00196 #endif
00197
00198
00199