VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkSphere.h 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 =========================================================================*/ 00030 #ifndef __vtkSphere_h 00031 #define __vtkSphere_h 00032 00033 #include "vtkImplicitFunction.h" 00034 00035 class VTK_FILTERING_EXPORT vtkSphere : public vtkImplicitFunction 00036 { 00037 public: 00038 vtkTypeMacro(vtkSphere,vtkImplicitFunction); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00042 static vtkSphere *New(); 00043 00045 00046 double EvaluateFunction(double x[3]); 00047 double EvaluateFunction(double x, double y, double z) 00048 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ; 00050 00052 void EvaluateGradient(double x[3], double n[3]); 00053 00055 00056 vtkSetMacro(Radius,double); 00057 vtkGetMacro(Radius,double); 00059 00061 00062 vtkSetVector3Macro(Center,double); 00063 vtkGetVectorMacro(Center,double,3); 00065 00067 00073 static void ComputeBoundingSphere(float *pts, vtkIdType numPts, float sphere[4], 00074 vtkIdType hints[2]); 00075 static void ComputeBoundingSphere(double *pts, vtkIdType numPts, double sphere[4], 00076 vtkIdType hints[2]); 00078 00080 00086 static void ComputeBoundingSphere(float **spheres, vtkIdType numSpheres, float sphere[4], 00087 vtkIdType hints[2]); 00088 static void ComputeBoundingSphere(double **spheres, vtkIdType numSpheres, double sphere[4], 00089 vtkIdType hints[2]); 00091 00092 protected: 00093 vtkSphere(); 00094 ~vtkSphere() {}; 00095 00096 double Radius; 00097 double Center[3]; 00098 00099 private: 00100 vtkSphere(const vtkSphere&); // Not implemented. 00101 void operator=(const vtkSphere&); // Not implemented. 00102 }; 00103 00104 #endif 00105 00106