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