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

Wyvill Class Reference

#include <Wyvill.h>

Inheritance diagram for Wyvill:

Inheritance graph
[legend]
Collaboration diagram for Wyvill:

Collaboration graph
[legend]
List of all members.

Detailed Description

Class Wyvill -- Polynomial Blob with an arbitrary quadric radius function.

Definition at line 15 of file Wyvill.h.

Public Member Functions

 Wyvill ()
 Class Constructors.

 Wyvill (Quadric *f)
 Class Constructor: Takes a pointer to an arbitrary quadric as an argument and initializes Radius to 1.

 Wyvill (Quadric *f, double r)
 Class Constructor: Takes a pointer to an arbitrary quadric and a scalar radius r as agruments.

virtual double kernel (double r2)
 Kernel functions.

virtual double dkernel (double r2)
 The derivatives (wrt r2, not r !!!) of the kernel.

virtual double d2kernel (double r2)
 Kernel second derivative of the Polynomial Blob is defined as follows:.

virtual Intervald kernel (Intervald r2)
 Interval versions of Kernel functions.

virtual Intervald dkernel (Intervald r2)
virtual Intervald d2kernel (Intervald r2)
virtual int qlen (void)
 Accessor functions.

virtual void _setq (double *q)
 Function setq sets the parameters defining the Blob to those specified by array q.

virtual void getq (double *q)
 Function getq returns an array q of the parameter values defining the present Blob.

virtual void getqname (char **qn)
 Function getqname returns an array of strings defining in english the names of parameters for the Blob.

virtual void procq (gmVector3 v, double *dfdq)
 Derivatives of parameters defined as follows:.

 MAKE_NAME ()

Private Member Functions

gmVector3 grad1 (gmVector3 v)
gmVector3 grad2 (gmVector3 v)
gmVector3 grad3 (gmVector3 v)
void init (Quadric *, double)
 Called by the various constructors to allow for a single location for the init of a Wyvill object.


Constructor & Destructor Documentation

Wyvill::Wyvill  ) 
 

Class Constructors.

Definition at line 22 of file Wyvill.cpp.

References init().

Wyvill::Wyvill Quadric f  ) 
 

Class Constructor: Takes a pointer to an arbitrary quadric as an argument and initializes Radius to 1.

Definition at line 32 of file Wyvill.cpp.

References init().

Wyvill::Wyvill Quadric f,
double  r
 

Class Constructor: Takes a pointer to an arbitrary quadric and a scalar radius r as agruments.

Definition at line 42 of file Wyvill.cpp.

References init().


Member Function Documentation

void Wyvill::_setq double *  q  )  [virtual]
 

Function setq sets the parameters defining the Blob to those specified by array q.

Note:
Does not alter q

Reimplemented from UnaryOp.

Definition at line 165 of file Wyvill.cpp.

References Implicit::_setq(), UnaryOp::m_f, Blob::m_r, qlen(), and Implicit::qlen().

Intervald Wyvill::d2kernel Intervald  r2  )  [virtual]
 

Implements Blob.

Definition at line 133 of file Wyvill.cpp.

References Intervald, and Blob::m_r.

double Wyvill::d2kernel double  r2  )  [virtual]
 

Kernel second derivative of the Polynomial Blob is defined as follows:.

d/d2r^2 = (-24/(9R^6))r^2 + (34/(9R^4)) where r^2 = quadric radius function R = rest radius

Implements Blob.

Definition at line 97 of file Wyvill.cpp.

References Blob::m_r.

Intervald Wyvill::dkernel Intervald  r2  )  [virtual]
 

Implements Blob.

Definition at line 121 of file Wyvill.cpp.

References Intervald, and Blob::m_r.

double Wyvill::dkernel double  r2  )  [virtual]
 

The derivatives (wrt r2, not r !!!) of the kernel.

Todo:
These should default to central differences.

Implements Blob.

Definition at line 77 of file Wyvill.cpp.

References Blob::m_r.

void Wyvill::getq double *  q  )  [virtual]
 

Function getq returns an array q of the parameter values defining the present Blob.

Array length required to be at least this->qlen () in size

Reimplemented from UnaryOp.

Definition at line 191 of file Wyvill.cpp.

References Implicit::getq(), UnaryOp::m_f, Blob::m_r, qlen(), and Implicit::qlen().

void Wyvill::getqname char **  qn  )  [virtual]
 

Function getqname returns an array of strings defining in english the names of parameters for the Blob.

Array required to have at least qlen () pointers to strings

Reimplemented from UnaryOp.

Definition at line 217 of file Wyvill.cpp.

References Implicit::getqname(), UnaryOp::m_f, qlen(), and Implicit::qlen().

gmVector3 Wyvill::grad1 gmVector3  v  )  [private]
 

gmVector3 Wyvill::grad2 gmVector3  v  )  [private]
 

gmVector3 Wyvill::grad3 gmVector3  v  )  [private]
 

void Wyvill::init Quadric f,
double  r
[private]
 

Called by the various constructors to allow for a single location for the init of a Wyvill object.

Definition at line 15 of file Wyvill.cpp.

References UnaryOp::m_f, and Blob::m_r.

Referenced by Wyvill().

Intervald Wyvill::kernel Intervald  r2  )  [virtual]
 

Interval versions of Kernel functions.

Implements Blob.

Definition at line 108 of file Wyvill.cpp.

References Intervald, and Blob::m_r.

double Wyvill::kernel double  r2  )  [virtual]
 

Kernel functions.

The Poly Blob f(v) is defined as: f(v) = -4/9(r^2/R^2)^3 + 17/9(r^2/R^2)^2 - 22/9(r^2/R^2) + 1 where r^2 = quadric radius function

Implements Blob.

Definition at line 55 of file Wyvill.cpp.

References Blob::m_r.

Wyvill::MAKE_NAME  ) 
 

void Wyvill::procq gmVector3  x,
double *  dfdq
[virtual]
 

Derivatives of parameters defined as follows:.

d/dR = (24/(9R^7)) ((r^2)^3) - (68/(9R^5)) ((r^2)^2) + (44/(9R^3))r^2 d/dr^2 = (-12/(9R^6)) ((r^2)^2) (df/dq r^2) + ( 34/(9R^4)) (r^2) (df/dq r^2) + (-22/(9R^2)) (df/dq r^2) where r^2 = quadric radius function R = rest radius

Reimplemented from UnaryOp.

Definition at line 244 of file Wyvill.cpp.

References UnaryOp::m_f, Blob::m_r, Implicit::proc(), Implicit::procq(), qlen(), and Implicit::qlen().

int Wyvill::qlen void   )  [virtual]
 

Accessor functions.

Reimplemented from UnaryOp.

Definition at line 148 of file Wyvill.cpp.

References UnaryOp::m_f, and Implicit::qlen().

Referenced by _setq(), getq(), getqname(), and procq().


The documentation for this class was generated from the following files:
Generated on Mon Jun 28 15:03:24 2004 for Advanced Surface Library by doxygen 1.3.4