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

Blinn Class Reference

#include <Blinn.h>

Inheritance diagram for Blinn:

Inheritance graph
[legend]
Collaboration diagram for Blinn:

Collaboration graph
[legend]
List of all members.

Detailed Description

Class Blinn -- Blob (Gaussian) with an arbitrary quadric radius function.

Definition at line 15 of file Blinn.h.

Public Member Functions

 Blinn ()
 Class Constructors.

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

 Blinn (Quadric *f, double b)
 Class Constructor: Takes a pointer to an arbitrary quadric and scalar Blobbiness b as agruments and initializes Radius to 1.

 Blinn (Quadric *f, double b, double r)
 Class Constructor: Takes a pointer to an arbitrary quadric, a scalar Blobbiness b, and a scalar Blob Radius r as agruments.

virtual double kernel (double r2)
 Kernel functions.

virtual double dkernel (double r2)
 Kernel derivative of the Blinn Blob is defined as follows:.

virtual double d2kernel (double r2)
 Kernel second derivative of the Blinn 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 ()

Protected Attributes

double m_b

Private Member Functions

void init (Quadric *f, double b, double r)
 Called by the various constructors to allow for a single location for the init of a Blinn object.


Constructor & Destructor Documentation

Blinn::Blinn  ) 
 

Class Constructors.

Definition at line 23 of file Blinn.cpp.

References init().

Blinn::Blinn Quadric f  ) 
 

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

Definition at line 34 of file Blinn.cpp.

References init().

Blinn::Blinn Quadric f,
double  b
 

Class Constructor: Takes a pointer to an arbitrary quadric and scalar Blobbiness b as agruments and initializes Radius to 1.

Definition at line 45 of file Blinn.cpp.

References init().

Blinn::Blinn Quadric f,
double  b,
double  r
 

Class Constructor: Takes a pointer to an arbitrary quadric, a scalar Blobbiness b, and a scalar Blob Radius r as agruments.

Definition at line 56 of file Blinn.cpp.

References init().


Member Function Documentation

void Blinn::_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 151 of file Blinn.cpp.

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

Intervald Blinn::d2kernel Intervald  r2  )  [virtual]
 

Implements Blob.

Definition at line 124 of file Blinn.cpp.

References dkernel(), Intervald, m_b, and Blob::m_r.

double Blinn::d2kernel double  r2  )  [virtual]
 

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

d/d2r^2 = (-B/R^2)(-B/R^2) f(r^2)

where f(r^2) = kernel eval'd at r^2

Implements Blob.

Definition at line 104 of file Blinn.cpp.

References dkernel(), m_b, and Blob::m_r.

Intervald Blinn::dkernel Intervald  r2  )  [virtual]
 

Implements Blob.

Definition at line 118 of file Blinn.cpp.

References Intervald, kernel(), m_b, and Blob::m_r.

double Blinn::dkernel double  r2  )  [virtual]
 

Kernel derivative of the Blinn Blob is defined as follows:.

d/dr^2 = (-B/R^2) f(r^2)

where f(r^2) = kernel eval'd at r^2 B = blobbiness R = rest radius

Implements Blob.

Definition at line 90 of file Blinn.cpp.

References kernel(), m_b, and Blob::m_r.

Referenced by d2kernel().

void Blinn::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 179 of file Blinn.cpp.

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

void Blinn::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 206 of file Blinn.cpp.

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

void Blinn::init Quadric f,
double  b,
double  r
[private]
 

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

Definition at line 15 of file Blinn.cpp.

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

Referenced by Blinn().

Intervald Blinn::kernel Intervald  r2  )  [virtual]
 

Interval versions of Kernel functions.

Implements Blob.

Definition at line 110 of file Blinn.cpp.

References Interval< Type >::exp(), Intervald, m_b, and Blob::m_r.

double Blinn::kernel double  r2  )  [virtual]
 

Kernel functions.

The Blinn Blob f(v) is defined as: f(v) = exp (-(B/R^2)r^2 + B)

where r^2 = quadric f(v)

Implements Blob.

Definition at line 70 of file Blinn.cpp.

References m_b, and Blob::m_r.

Referenced by dkernel().

Blinn::MAKE_NAME  ) 
 

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

Derivatives of parameters defined as follows:.

d/dB = f(v)(-(1/R^2)r^2 + 1) d/dR = f(v)((2B/R^3)r^2) d/dr^2 = f(v)(-(B/R^2)(df/dq r^2))

where f(v) = exp (-(B/R^2)r^2 + B) r^2 = quadric radius function

Reimplemented from UnaryOp.

Definition at line 234 of file Blinn.cpp.

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

int Blinn::qlen void   )  [virtual]
 

Accessor functions.

Reimplemented from UnaryOp.

Definition at line 134 of file Blinn.cpp.

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

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


Member Data Documentation

double Blinn::m_b [protected]
 

Definition at line 18 of file Blinn.h.

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


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