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

vtkDividingCubes.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkDividingCubes.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 
00015      THIS CLASS IS PATENTED UNDER UNITED STATES PATENT NUMBER 4,719,585
00016      "Dividing Cubes System and Method for the Display of Surface Structures
00017      Contained Within the Interior Region of a Solid Body".
00018      Application of this software for commercial purposes requires 
00019      a license grant from GE. Contact:
00020 
00021          Carl B. Horton
00022          Sr. Counsel, Intellectual Property
00023          3000 N. Grandview Blvd., W-710
00024          Waukesha, WI  53188
00025          Phone:  (262) 513-4022
00026          E-Mail: [email protected]
00027 
00028      for more information.
00029 
00030 =========================================================================*/
00063 #ifndef __vtkDividingCubes_h
00064 #define __vtkDividingCubes_h
00065 
00066 #include "vtkStructuredPointsToPolyDataFilter.h"
00067 
00068 class vtkDoubleArray;
00069 class vtkIdList;
00070 class vtkVoxel;
00071 
00072 class VTK_PATENTED_EXPORT vtkDividingCubes : public vtkStructuredPointsToPolyDataFilter
00073 {
00074 public:
00075   static vtkDividingCubes *New();
00076   vtkTypeRevisionMacro(vtkDividingCubes,vtkStructuredPointsToPolyDataFilter);
00077   void PrintSelf(ostream& os, vtkIndent indent);
00078 
00080 
00081   vtkSetMacro(Value,double);
00082   vtkGetMacro(Value,double);
00084 
00086 
00087   vtkSetClampMacro(Distance,double,1.0e-06,VTK_DOUBLE_MAX);
00088   vtkGetMacro(Distance,double);
00090 
00092 
00095   vtkSetClampMacro(Increment,int,1,VTK_LARGE_INTEGER);
00096   vtkGetMacro(Increment,int);
00098 
00099 protected:
00100   vtkDividingCubes();
00101   ~vtkDividingCubes();
00102 
00103   void Execute();
00104   void SubDivide(double origin[3], int dim[3], double h[3], double values[8]);
00105 
00106   double Value;
00107   double Distance;
00108   int Increment;
00109 
00110   // working variable
00111   int Count;
00112 
00113   vtkIdList *SubVoxelPts;
00114   vtkVoxel *SubVoxel;
00115   vtkDoubleArray *SubVoxelScalars;
00116   vtkDoubleArray *SubVoxelNormals;
00117 private:
00118   vtkDividingCubes(const vtkDividingCubes&);  // Not implemented.
00119   void operator=(const vtkDividingCubes&);  // Not implemented.
00120 };
00121 
00122 #endif
00123 
00124