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

Blob Class Reference

#include <Blob.h>

Inheritance diagram for Blob:

Inheritance graph
[legend]
Collaboration diagram for Blob:

Collaboration graph
[legend]
List of all members.

Detailed Description

A pure virtual Blob class collecting methods common to all blobby models.

Blob is a unary operator that assumes a quadric operand that returns radius squared. A separate real kernel function of one variable is defined by its instances that accepts the squared radius and returns a quasi-Gaussian bump.

Definition at line 21 of file Blob.h.

Public Member Functions

virtual double kernel (double r2)=0
 The kernel function defined by instances.

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

virtual double d2kernel (double r2)=0
virtual Intervald kernel (Intervald r2)=0
virtual Intervald dkernel (Intervald r2)=0
virtual Intervald d2kernel (Intervald r2)=0
virtual double proc (gmVector3 x)
 proc just applies the kernel to the squared-radius

virtual gmVector3 grad (gmVector3 x)
 Blob gradient.

virtual gmMatrix3 hess (gmVector3 x)
 Blob Hessian Uses chain rule.

virtual Intervald proc (Box< double > x)
 Interval version of proc().

virtual Box3d grad (Box< double > x)
 Interval version of grad().

virtual IMatrix3d hess (Box< double > x)
 Interval version of hess().

virtual const char ** getPixmapXPM (const int &size) const
 Returns the Pixmap for the Surface as a char* in the XPM image format.


Protected Attributes

double m_r
 The radius of blob object.


Member Function Documentation

virtual Intervald Blob::d2kernel Intervald  r2  )  [pure virtual]
 

Implemented in Blinn, and Wyvill.

virtual double Blob::d2kernel double  r2  )  [pure virtual]
 

Implemented in Blinn, and Wyvill.

Referenced by hess().

virtual Intervald Blob::dkernel Intervald  r2  )  [pure virtual]
 

Implemented in Blinn, and Wyvill.

virtual double Blob::dkernel double  r2  )  [pure virtual]
 

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

Todo:
These should default to central differences.

Implemented in Blinn, and Wyvill.

Referenced by grad(), and hess().

virtual const char** Blob::getPixmapXPM const int &  size  )  const [inline, virtual]
 

Returns the Pixmap for the Surface as a char* in the XPM image format.

This is a icon that can be used to represent the implicit in a GUI environment.

Reimplemented from Implicit.

Definition at line 118 of file Blob.h.

virtual Box3d Blob::grad Box< double >  x  )  [inline, virtual]
 

Interval version of grad().

Reimplemented from UnaryOp.

Definition at line 87 of file Blob.h.

References dkernel(), Implicit::grad(), Intervald, UnaryOp::m_f, and Implicit::proc().

virtual gmVector3 Blob::grad gmVector3  x  )  [inline, virtual]
 

Blob gradient.

Uses chain rule for gradient d/dx blob(x) = d/dx kernel(m_f(x)) = dkernel(m_f(x))dm_f(x)/dx

Reimplemented from UnaryOp.

Definition at line 54 of file Blob.h.

References dkernel(), Implicit::grad(), UnaryOp::m_f, and Implicit::proc().

virtual IMatrix3d Blob::hess Box< double >  x  )  [inline, virtual]
 

Interval version of hess().

Reimplemented from UnaryOp.

Definition at line 101 of file Blob.h.

References d2kernel(), dkernel(), Implicit::grad(), Implicit::hess(), Intervald, UnaryOp::m_f, outer(), and Implicit::proc().

virtual gmMatrix3 Blob::hess gmVector3  x  )  [inline, virtual]
 

Blob Hessian Uses chain rule.

d2/dx2 blob(x) = d/dx dkernel(m_f(x))dm_f(x)/dx = d2kernel(m_f(x))/dx2 (dm_f(x)/dx)^2 + dkernel(m_f(x))/dx d2m_f(x)/dx2

Reimplemented from UnaryOp.

Definition at line 67 of file Blob.h.

References d2kernel(), dkernel(), Implicit::grad(), Implicit::hess(), UnaryOp::m_f, outer(), and Implicit::proc().

virtual Intervald Blob::kernel Intervald  r2  )  [pure virtual]
 

Implemented in Blinn, and Wyvill.

virtual double Blob::kernel double  r2  )  [pure virtual]
 

The kernel function defined by instances.

Implemented in Blinn, and Wyvill.

Referenced by proc().

virtual Intervald Blob::proc Box< double >  x  )  [inline, virtual]
 

Interval version of proc().

Reimplemented from UnaryOp.

Definition at line 78 of file Blob.h.

References Intervald, kernel(), UnaryOp::m_f, and Implicit::proc().

virtual double Blob::proc gmVector3  x  )  [inline, virtual]
 

proc just applies the kernel to the squared-radius

Reimplemented from UnaryOp.

Definition at line 42 of file Blob.h.

References kernel(), UnaryOp::m_f, and Implicit::proc().


Member Data Documentation

double Blob::m_r [protected]
 

The radius of blob object.

Definition at line 24 of file Blob.h.

Referenced by Wyvill::_setq(), Blinn::_setq(), Wyvill::d2kernel(), Blinn::d2kernel(), Wyvill::dkernel(), Blinn::dkernel(), Wyvill::getq(), Blinn::getq(), Wyvill::init(), Blinn::init(), Wyvill::kernel(), Blinn::kernel(), Wyvill::procq(), and Blinn::procq().


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