Filtering/vtkSuperquadric.h Source File

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Filtering/vtkSuperquadric.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkSuperquadric.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 =========================================================================*/
    00056 #ifndef __vtkSuperquadric_h
    00057 #define __vtkSuperquadric_h
    00058
    00059 #include "vtkImplicitFunction.h"
    00060
    00061 #define VTK_MIN_SUPERQUADRIC_THICKNESS  1e-4
    00062
    00063 class VTK_FILTERING_EXPORT vtkSuperquadric : public vtkImplicitFunction
    00064 {
    00065 public:
    00069   static vtkSuperquadric *New();
    00070
    00071   vtkTypeRevisionMacro(vtkSuperquadric,vtkImplicitFunction);
    00072   void PrintSelf(ostream& os, vtkIndent indent);
    00073
    00074   // ImplicitFunction interface
    00075   float EvaluateFunction(float x[3]);
    00076   float EvaluateFunction(float x, float y, float z)
    00077     {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
    00078   void EvaluateGradient(float x[3], float g[3]);
    00079
    00081
    00082   vtkSetVector3Macro(Center,float);
    00083   vtkGetVectorMacro(Center,float,3);
    00085
    00087
    00088   vtkSetVector3Macro(Scale,float);
    00089   vtkGetVectorMacro(Scale,float,3);
    00091
    00093
    00095   vtkGetMacro(Thickness,float);
    00096   vtkSetClampMacro(Thickness,float,VTK_MIN_SUPERQUADRIC_THICKNESS,1.0f);
    00098
    00100
    00102   vtkGetMacro(PhiRoundness,float);
    00103   void SetPhiRoundness(float e);
    00105
    00107
    00109   vtkGetMacro(ThetaRoundness,float);
    00110   void SetThetaRoundness(float e);
    00112
    00114
    00115   vtkSetMacro(Size,float);
    00116   vtkGetMacro(Size,float);
    00118
    00120
    00122   vtkBooleanMacro(Toroidal,int);
    00123   vtkGetMacro(Toroidal,int);
    00124   vtkSetMacro(Toroidal,int);
    00126
    00127 protected:
    00128   vtkSuperquadric();
    00129   ~vtkSuperquadric() {};
    00130
    00131   int Toroidal;
    00132   float Thickness;
    00133   float Size;
    00134   float PhiRoundness;
    00135   float ThetaRoundness;
    00136   float Center[3];
    00137   float Scale[3];
    00138 private:
    00139   vtkSuperquadric(const vtkSuperquadric&);  // Not implemented.
    00140   void operator=(const vtkSuperquadric&);  // Not implemented.
    00141 };
    00142
    00143 #endif
    00144
    00145