00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00030
#ifndef __vtkImageStencilData_h
00031
#define __vtkImageStencilData_h
00032
00033
00034
#include "vtkDataObject.h"
00035
00036 class VTK_IMAGING_EXPORT vtkImageStencilData :
public vtkDataObject
00037 {
00038
public:
00039
static vtkImageStencilData *
New();
00040 vtkTypeRevisionMacro(vtkImageStencilData,
vtkDataObject);
00041
void PrintSelf(ostream& os,
vtkIndent indent);
00042
00043
00044
#ifndef VTK_REMOVE_LEGACY_CODE
00045
00046
virtual vtkDataObject*
MakeObject();
00047
#endif
00048
00049
void Initialize();
00050
void DeepCopy(
vtkDataObject *o);
00051
void ShallowCopy(
vtkDataObject *f);
00052
void InternalImageStencilDataCopy(vtkImageStencilData *s);
00053
00056 int GetDataObjectType() {
return VTK_DATA_OBJECT; }
00057
00059 int GetExtentType() {
return VTK_3D_EXTENT; };
00060
00062
00070
int GetNextExtent(
int &r1,
int &r2,
int xMin,
int xMax,
00071
int yIdx,
int zIdx,
int &iter);
00073
00079
void InsertNextExtent(
int r1,
int r2,
int yIdx,
int zIdx);
00080
00082
00085 vtkSetVector3Macro(Spacing,
float);
00086 vtkGetVector3Macro(Spacing,
float);
00088
00090
00093 vtkSetVector3Macro(Origin,
float);
00094 vtkGetVector3Macro(Origin,
float);
00096
00098
00101 vtkSetVector6Macro(Extent,
int);
00102 vtkGetVector6Macro(Extent,
int);
00104
00106
00108 vtkSetVector3Macro(OldSpacing,
float);
00109 vtkGetVector3Macro(OldSpacing,
float);
00111
00113
00115 vtkSetVector3Macro(OldOrigin,
float);
00116 vtkGetVector3Macro(OldOrigin,
float);
00118
00121
void AllocateExtents();
00122
00129
void UpdateData();
00130
00135
void PropagateUpdateExtent();
00136
00142
void TriggerAsynchronousUpdate();
00143
00144
protected:
00145 vtkImageStencilData();
00146 ~vtkImageStencilData();
00147
00150
int SpacingOrOriginHasChanged();
00151
00153
00155 float OldSpacing[3];
00156 float OldOrigin[3];
00158
00160
00161 float Spacing[3];
00162 float Origin[3];
00164
00166
00167 int NumberOfExtentEntries;
00168 int *ExtentListLengths;
00169 int **ExtentLists;
00171
private:
00172 vtkImageStencilData(
const vtkImageStencilData&);
00173
void operator=(
const vtkImageStencilData&);
00174 };
00175
00176
#endif
00177
00178
00179