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

Blinn.h

Go to the documentation of this file.
00001 /**
00002  * @file Blinn.h 
00003  */
00004 
00005 #ifndef __BLINN_H
00006 #define __BLINN_H
00007 
00008 #include "Blob.h"
00009 #include "Implicit/Algebraic/Quadric.h"
00010 
00011 /**
00012  * Class Blinn -- Blob (Gaussian) with
00013  * an arbitrary quadric radius function
00014  */
00015 class Blinn : public Blob
00016 {
00017   protected:
00018     double m_b;
00019 
00020   private:
00021     void init(Quadric *f, double b, double r);
00022 
00023   public:
00024     /// Class Constructors                         
00025     Blinn();
00026     Blinn(Quadric *f);
00027     Blinn(Quadric *f, double b);
00028     Blinn(Quadric *f, double b, double r);
00029     
00030     /// Kernel functions
00031     virtual double kernel(double r2);
00032     virtual double dkernel(double r2);
00033     virtual double d2kernel(double r2);
00034 
00035     /// Interval versions of Kernel functions
00036     virtual Intervald kernel(Intervald r2);
00037     virtual Intervald dkernel(Intervald r2);
00038     virtual Intervald d2kernel(Intervald r2);
00039 
00040     /// Accessor functions                      
00041     virtual int  qlen(void);
00042     virtual void _setq(double *q);
00043     virtual void getq(double *q);
00044     virtual void getqname(char **qn);
00045 
00046     virtual void procq(gmVector3 v, double* dfdq);
00047 
00048     MAKE_NAME();
00049 };
00050 
00051 #endif
00052 

Generated on Mon Jun 28 14:58:13 2004 for Advanced Surface Library by doxygen 1.3.4