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

Patented/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: Carl.Horton@med.ge.com
00027 
00028      for more information.
00029 
00030 =========================================================================*/
00049 #ifndef __vtkDividingCubes_h
00050 #define __vtkDividingCubes_h
00051 
00052 #include "vtkStructuredPointsToPolyDataFilter.h"
00053 
00054 class vtkDoubleArray;
00055 class vtkIdList;
00056 class vtkVoxel;
00057 
00058 class VTK_PATENTED_EXPORT vtkDividingCubes : public vtkStructuredPointsToPolyDataFilter
00059 {
00060 public:
00061   static vtkDividingCubes *New();
00062   vtkTypeRevisionMacro(vtkDividingCubes,vtkStructuredPointsToPolyDataFilter);
00063   void PrintSelf(ostream& os, vtkIndent indent);
00064 
00066 
00067   vtkSetMacro(Value,double);
00068   vtkGetMacro(Value,double);
00070 
00072 
00073   vtkSetClampMacro(Distance,double,1.0e-06,VTK_DOUBLE_MAX);
00074   vtkGetMacro(Distance,double);
00076 
00078 
00081   vtkSetClampMacro(Increment,int,1,VTK_LARGE_INTEGER);
00082   vtkGetMacro(Increment,int);
00084 
00085 protected:
00086   vtkDividingCubes();
00087   ~vtkDividingCubes();
00088 
00089   void Execute();
00090   void SubDivide(double origin[3], int dim[3], double h[3], double values[8]);
00091 
00092   double Value;
00093   double Distance;
00094   int Increment;
00095 
00096   // working variable
00097   int Count;
00098 
00099   vtkIdList *SubVoxelPts;
00100   vtkVoxel *SubVoxel;
00101   vtkDoubleArray *SubVoxelScalars;
00102   vtkDoubleArray *SubVoxelNormals;
00103 private:
00104   vtkDividingCubes(const vtkDividingCubes&);  // Not implemented.
00105   void operator=(const vtkDividingCubes&);  // Not implemented.
00106 };
00107 
00108 #endif
00109 
00110