Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Imaging/vtkImageStencilData.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageStencilData.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
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&);  // Not implemented.
00173   void operator=(const vtkImageStencilData&);  // Not implemented.
00174 };
00175 
00176 #endif
00177 
00178 
00179