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

Difference Class Reference

#include <Difference.h>

Inheritance diagram for Difference:

Inheritance graph
[legend]
Collaboration diagram for Difference:

Collaboration graph
[legend]
List of all members.

Detailed Description

Difference is a class of Implicit that represents the sum of two implicits.

Definition at line 16 of file Difference.h.

Public Member Functions

 Difference ()
 Constructor Defaults to binary op constructor.

virtual double proc (gmVector3 x)
virtual gmVector3 grad (gmVector3 x)
 grad returns the gradient of the function (proc()) for a point or region.

virtual gmMatrix3 hess (gmVector3 x)
 hess returns the Hessian of the function (proc()) for a point or region.

virtual Intervald proc (Box< double >)
 proc returns the evaluation of the function that defines the Implicit surface.

virtual Box3d grad (Box< double >)
virtual IMatrix3d hess (Box< double >)
 MAKE_NAME ()


Constructor & Destructor Documentation

Difference::Difference  )  [inline]
 

Constructor Defaults to binary op constructor.

Definition at line 22 of file Difference.h.

References BinaryOp::m_f, and BinaryOp::m_g.


Member Function Documentation

Box3d Difference::grad Box< double >   )  [virtual]
 

Reimplemented from Implicit.

Definition at line 35 of file Difference.cpp.

References Implicit::grad(), BinaryOp::m_f, and BinaryOp::m_g.

gmVector3 Difference::grad gmVector3  x  )  [virtual]
 

grad returns the gradient of the function (proc()) for a point or region.

Basically, the gradient returns a vector of partial derivatives, or more formally grad(proc()) = (dproc/dx,dproc/dy,dproc/dz).

Note:
Unless grad is overwritten, it defaults to the numerical approximation of the gradient = (proc(x+eps) - proc(x))/eps ...
Parameters:
x Where to evaluate the gradient of the function.
Returns:
The gradient result.
See also:
setEpsilon(double)

Reimplemented from Implicit.

Definition at line 16 of file Difference.cpp.

References Implicit::grad(), BinaryOp::m_f, and BinaryOp::m_g.

IMatrix3d Difference::hess Box< double >   )  [virtual]
 

Reimplemented from Implicit.

Definition at line 41 of file Difference.cpp.

References Implicit::hess(), BinaryOp::m_f, and BinaryOp::m_g.

gmMatrix3 Difference::hess gmVector3  x  )  [virtual]
 

hess returns the Hessian of the function (proc()) for a point or region.

Basically, the Hessian is a matrix of second partial derivatives, or more formally hess(proc()) =

d^2proc/dx^2, d^2proc/dxdy d^2proc/dxdz \ d^2proc/dxdy, d^2proc/dy^2 d^2proc/dydz \ d^2proc/dxdz, d^2proc/dydz d^2proc/dz^2

Note:
Unless hess is overwritten, it defaults to the numerical approximation of the Hessian.
Parameters:
x Where to evaluate the Hessian of the function.
Returns:
The Hessian result.
See also:
setEpsilon(double)
Note:
The Hessian is symmetric for our uses.

Reimplemented from Implicit.

Definition at line 22 of file Difference.cpp.

References Implicit::hess(), BinaryOp::m_f, and BinaryOp::m_g.

Difference::MAKE_NAME  ) 
 

Intervald Difference::proc Box< double >  b  )  [virtual]
 

proc returns the evaluation of the function that defines the Implicit surface.

In normal circumstances, the gmVector3 version of proc defaults to a pure virtual function which means that you must define proc(gmVector3) in its subclasses. When INTERVAL_EVAL_ONLY is defined, the Implicit version of proc defaults to a pure virtual function and the gmVector3 version calls the Interval version. Either way, you must define proc() in subclasses of Implicit.

Parameters:
x Where to evaluate the function.
Returns:
The function result. The function is positive outside the surface and negative inside.

Reimplemented from Implicit.

Definition at line 29 of file Difference.cpp.

References Intervald, BinaryOp::m_f, BinaryOp::m_g, and Implicit::proc().

double Difference::proc gmVector3  x  )  [virtual]
 

Implements Implicit.

Definition at line 10 of file Difference.cpp.

References BinaryOp::m_f, BinaryOp::m_g, and Implicit::proc().


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