Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound 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   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      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 =========================================================================*/
00065 #ifndef __vtkDividingCubes_h
00066 #define __vtkDividingCubes_h
00067 
00068 #include "vtkStructuredPointsToPolyDataFilter.h"
00069 
00070 class vtkFloatArray;
00071 class vtkIdList;
00072 class vtkVoxel;
00073 
00074 class VTK_PATENTED_EXPORT vtkDividingCubes : public vtkStructuredPointsToPolyDataFilter
00075 {
00076 public:
00077   static vtkDividingCubes *New();
00078   vtkTypeRevisionMacro(vtkDividingCubes,vtkStructuredPointsToPolyDataFilter);
00079   void PrintSelf(ostream& os, vtkIndent indent);
00080 
00082 
00083   vtkSetMacro(Value,float);
00084   vtkGetMacro(Value,float);
00086 
00088 
00089   vtkSetClampMacro(Distance,float,1.0e-06,VTK_LARGE_FLOAT);
00090   vtkGetMacro(Distance,float);
00092 
00094 
00097   vtkSetClampMacro(Increment,int,1,VTK_LARGE_INTEGER);
00098   vtkGetMacro(Increment,int);
00100 
00101 protected:
00102   vtkDividingCubes();
00103   ~vtkDividingCubes();
00104 
00105   void Execute();
00106   void SubDivide(float origin[3], int dim[3], float h[3], float values[8]);
00107 
00108   float Value;
00109   float Distance;
00110   int Increment;
00111 
00112   // working variable
00113   int Count;
00114 
00115   vtkIdList *SubVoxelPts;
00116   vtkVoxel *SubVoxel;
00117   vtkFloatArray *SubVoxelScalars;
00118   vtkFloatArray *SubVoxelNormals;
00119 private:
00120   vtkDividingCubes(const vtkDividingCubes&);  // Not implemented.
00121   void operator=(const vtkDividingCubes&);  // Not implemented.
00122 };
00123 
00124 #endif
00125 
00126