VTK
dox/Common/DataModel/vtkQuadric.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkQuadric.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 =========================================================================*/
00029 #ifndef __vtkQuadric_h
00030 #define __vtkQuadric_h
00031 
00032 #include "vtkCommonDataModelModule.h" // For export macro
00033 #include "vtkImplicitFunction.h"
00034 
00035 class VTKCOMMONDATAMODEL_EXPORT vtkQuadric : public vtkImplicitFunction
00036 {
00037 public:
00038   vtkTypeMacro(vtkQuadric,vtkImplicitFunction);
00039   void PrintSelf(ostream& os, vtkIndent indent);
00040 
00042   static vtkQuadric *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 g[3]);
00053 
00055 
00056   void SetCoefficients(double a[10]);
00057   void SetCoefficients(double a0, double a1, double a2, double a3, double a4,
00058                        double a5, double a6, double a7, double a8, double a9);
00059   vtkGetVectorMacro(Coefficients,double,10);
00061 
00062 protected:
00063   vtkQuadric();
00064   ~vtkQuadric() {}
00065 
00066   double Coefficients[10];
00067 
00068 private:
00069   vtkQuadric(const vtkQuadric&);  // Not implemented.
00070   void operator=(const vtkQuadric&);  // Not implemented.
00071 };
00072 
00073 #endif
00074 
00075