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

vtkImplicitVolume.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImplicitVolume.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 =========================================================================*/
00056 #ifndef __vtkImplicitVolume_h
00057 #define __vtkImplicitVolume_h
00058 
00059 #include "vtkImplicitFunction.h"
00060 
00061 class vtkIdList;
00062 class vtkImageData;
00063 
00064 class VTK_FILTERING_EXPORT vtkImplicitVolume : public vtkImplicitFunction
00065 {
00066 public:
00067   vtkTypeRevisionMacro(vtkImplicitVolume,vtkImplicitFunction);
00068   void PrintSelf(ostream& os, vtkIndent indent);
00069 
00072   static vtkImplicitVolume *New();
00073 
00077   unsigned long GetMTime();
00078 
00080 
00082   double EvaluateFunction(double x[3]);
00083   double EvaluateFunction(double x, double y, double z)
00084     {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00086 
00088   void EvaluateGradient(double x[3], double n[3]);
00089 
00091 
00092   virtual void SetVolume(vtkImageData*);
00093   vtkGetObjectMacro(Volume,vtkImageData);
00095 
00097 
00098   vtkSetMacro(OutValue,double);
00099   vtkGetMacro(OutValue,double);
00101 
00103 
00104   vtkSetVector3Macro(OutGradient,double);
00105   vtkGetVector3Macro(OutGradient,double);
00107 
00108 protected:
00109   vtkImplicitVolume();
00110   ~vtkImplicitVolume();
00111 
00112   vtkImageData *Volume; // the structured points
00113   double OutValue;
00114   double OutGradient[3];
00115   // to replace a static
00116   vtkIdList *PointIds;
00117 
00118 private:
00119   vtkImplicitVolume(const vtkImplicitVolume&);  // Not implemented.
00120   void operator=(const vtkImplicitVolume&);  // Not implemented.
00121 };
00122 
00123 #endif
00124 
00125