Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound 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 =========================================================================*/
00040 #ifndef __vtkImageStencilData_h
00041 #define __vtkImageStencilData_h
00042 
00043 
00044 #include "vtkDataObject.h"
00045 
00046 class VTK_IMAGING_EXPORT vtkImageStencilData : public vtkDataObject
00047 {
00048 public:
00049   static vtkImageStencilData *New();
00050   vtkTypeRevisionMacro(vtkImageStencilData, vtkDataObject);
00051   void PrintSelf(ostream& os, vtkIndent indent);
00052 
00053 
00054 #ifndef VTK_REMOVE_LEGACY_CODE
00055 
00056   virtual vtkDataObject* MakeObject();
00057 #endif
00058   
00059   void Initialize();
00060   void DeepCopy(vtkDataObject *o);
00061   void ShallowCopy(vtkDataObject *f);
00062   void InternalImageStencilDataCopy(vtkImageStencilData *s);
00063 
00066   int GetDataObjectType() { return VTK_DATA_OBJECT; }
00067 
00069   int GetExtentType() { return VTK_3D_EXTENT; };
00070 
00072 
00080   int GetNextExtent(int &r1, int &r2, int xMin, int xMax,
00081                     int yIdx, int zIdx, int &iter);
00083 
00089   void InsertNextExtent(int r1, int r2, int yIdx, int zIdx);
00090 
00092 
00095   vtkSetVector3Macro(Spacing, float);
00096   vtkGetVector3Macro(Spacing, float);
00098 
00100 
00103   vtkSetVector3Macro(Origin, float);
00104   vtkGetVector3Macro(Origin, float);
00106 
00108 
00111   vtkSetVector6Macro(Extent, int);
00112   vtkGetVector6Macro(Extent, int);
00114 
00116 
00118   vtkSetVector3Macro(OldSpacing, float);
00119   vtkGetVector3Macro(OldSpacing, float);
00121 
00123 
00125   vtkSetVector3Macro(OldOrigin, float);
00126   vtkGetVector3Macro(OldOrigin, float);
00128 
00131   void AllocateExtents();
00132 
00139   void UpdateData();
00140 
00145   void PropagateUpdateExtent();
00146 
00152   void TriggerAsynchronousUpdate();
00153 
00154 protected:
00155   vtkImageStencilData();
00156   ~vtkImageStencilData();
00157 
00160   int SpacingOrOriginHasChanged();
00161 
00163 
00165   float OldSpacing[3];
00166   float OldOrigin[3];
00168 
00170 
00171   float Spacing[3];
00172   float Origin[3];
00174   
00176 
00177   int NumberOfExtentEntries;
00178   int *ExtentListLengths;
00179   int **ExtentLists;
00181 private:
00182   vtkImageStencilData(const vtkImageStencilData&);  // Not implemented.
00183   void operator=(const vtkImageStencilData&);  // Not implemented.
00184 };
00185 
00186 #endif
00187 
00188 
00189