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

Mover Class Reference

#include <Mover.h>

Inheritance diagram for Mover:

Inheritance graph
[legend]
Collaboration diagram for Mover:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Mover ()
 Default constructor.

virtual gmVector3 dinv (gmVector3 x)
virtual Box3d dinv (Box3d x)
virtual Box4d dinv (Box4d x)
virtual gmMatrix3 dinvjac (gmVector3 x)
virtual IMatrix3d dinvjac (Box< double > x)
virtual double proc (gmVector3 x)
virtual gmVector3 grad (gmVector3 x)
 grad of f(dinv(x)) = grad f(dinv(x)) * dinvjac(x).

virtual gmMatrix3 hess (gmVector3 x)
 Need to fix hess (does nothing now).

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 >)
virtual Intervald proct (Box< double >)
virtual Box3d gradt (Box< double >)
virtual void procq (gmVector3 x, double *q)
 procq Automatically computes df/dq of children.

virtual void getq (double *q)
 getq Automatically gets q of children.

virtual void _setq (double *q)
 _setq Automatically sets q of children.

virtual int qlen ()
 qlen Automatically returns total qlen of children.

virtual int plen ()
 Number of implicit model parameters for this implicit object only, not including its children.

virtual void getqname (char **qn)
 Automatically fills qn with operand parameter names.

 MAKE_NAME ()

Private Member Functions

Box3d m_olrp (Intervald)
 Convenience function for the calculation of a LRP over a time interval for a particular m_x.

bool solve ()
bool impdiff ()
 Use implicit differentiation to propogate change in deformation parameters with change in deformed object parameters.


Private Attributes

gmVector3 m_o
 Translation.


Constructor & Destructor Documentation

Mover::Mover  ) 
 

Default constructor.

Definition at line 22 of file Mover.cpp.

References UnaryOp::m_f, and m_o.


Member Function Documentation

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

_setq Automatically sets q of children.

Does not need to be overridden if op has no parameters. Can be called from subclasses to handle children.

Reimplemented from UnaryOp.

Definition at line 173 of file Mover.cpp.

References impdiff(), and m_o.

Box4d Mover::dinv Box4d  x  )  [virtual]
 

Definition at line 58 of file Mover.cpp.

References m_olrp().

Box3d Mover::dinv Box3d  x  )  [virtual]
 

Definition at line 53 of file Mover.cpp.

References m_o.

gmVector3 Mover::dinv gmVector3  x  )  [virtual]
 

Definition at line 48 of file Mover.cpp.

References m_o.

Referenced by grad(), proc(), and solve().

IMatrix3d Mover::dinvjac Box< double >  x  )  [virtual]
 

Definition at line 70 of file Mover.cpp.

References IMatrix3d::identity().

gmMatrix3 Mover::dinvjac gmVector3  x  )  [virtual]
 

Definition at line 65 of file Mover.cpp.

Referenced by grad().

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

getq Automatically gets q of children.

Does not need to be overridden if op has no parameters. Can be called from subclasses to handle children.

Reimplemented from UnaryOp.

Definition at line 166 of file Mover.cpp.

References m_o.

Referenced by impdiff().

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

Automatically fills qn with operand parameter names.

UnaryOp's with no parameters need not redefine getqname(). UnaryOp's with parameters should set the names of only their parameters and then call UnaryOp::getqname(qn) to let it set its operand's parameters.

Reimplemented from UnaryOp.

Definition at line 186 of file Mover.cpp.

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

Reimplemented from UnaryOp.

Definition at line 116 of file Mover.cpp.

References dinv(), dinvjac(), Implicit::grad(), Implicit::gradt(), and UnaryOp::m_f.

gmVector3 Mover::grad gmVector3  x  )  [virtual]
 

grad of f(dinv(x)) = grad f(dinv(x)) * dinvjac(x).

Reimplemented from UnaryOp.

Definition at line 84 of file Mover.cpp.

References dinv(), dinvjac(), Implicit::grad(), and UnaryOp::m_f.

Referenced by procq().

Box3d Mover::gradt Box< double >  x  )  [virtual]
 

Todo:
Fix me, but may not be calculatable.

Reimplemented from Implicit.

Definition at line 147 of file Mover.cpp.

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

Reimplemented from UnaryOp.

Definition at line 131 of file Mover.cpp.

References Implicit::hess(), IMatrix3d::identity(), and UnaryOp::m_f.

gmMatrix3 Mover::hess gmVector3  x  )  [virtual]
 

Need to fix hess (does nothing now).

Reimplemented from UnaryOp.

Definition at line 97 of file Mover.cpp.

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

bool Mover::impdiff  )  [private]
 

Use implicit differentiation to propogate change in deformation parameters with change in deformed object parameters.

Deformed object given by F(D^-1(x;k);q) = F(x;k;q) where k is the vector of deformation parameters.

Need to compute deltaq = (dq/dk) deltak

dqi/dkj = -Fkj/Fqi

Definition at line 294 of file Mover.cpp.

References Implicit::_setq(), Implicit::getq(), getq(), Implicit::k(), UnaryOp::m_f, RandomStream::next(), Implicit::procq(), procq(), qlen(), and Implicit::qlen().

Referenced by _setq().

Box3d Mover::m_olrp Intervald  t  )  [private]
 

Convenience function for the calculation of a LRP over a time interval for a particular m_x.

We use the "current" and the "last" coefficients to calculate an interval of the coefficients over a given time interval. This is used for 4D critical point finding.

Definition at line 34 of file Mover.cpp.

References Implicit::getqold(), Intervald, m_o, and qlen().

Referenced by dinv().

Mover::MAKE_NAME  ) 
 

int Mover::plen  )  [virtual]
 

Number of implicit model parameters for this implicit object only, not including its children.

Reimplemented from Implicit.

Definition at line 184 of file Mover.cpp.

Intervald Mover::proc Box< double >  x  )  [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 UnaryOp.

Definition at line 103 of file Mover.cpp.

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

double Mover::proc gmVector3  x  )  [virtual]
 

Reimplemented from UnaryOp.

Definition at line 76 of file Mover.cpp.

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

void Mover::procq gmVector3  x,
double *  q
[virtual]
 

procq Automatically computes df/dq of children.

Does not need to be overridden if op has no parameters. Can be called from subclasses to handle children.

Reimplemented from UnaryOp.

Definition at line 152 of file Mover.cpp.

References grad(), and UnaryOp::m_f.

Referenced by impdiff().

Intervald Mover::proct Box< double >  x  )  [virtual]
 

Todo:
Fix me, but may not be calculatable.

Reimplemented from Implicit.

Definition at line 139 of file Mover.cpp.

References Intervald.

int Mover::qlen void   )  [virtual]
 

qlen Automatically returns total qlen of children.

Does not need to be overridden if op has no parameters. Can be called from subclasses to handle children.

Reimplemented from UnaryOp.

Definition at line 183 of file Mover.cpp.

Referenced by impdiff(), and m_olrp().

bool Mover::solve  )  [private]
 

Definition at line 193 of file Mover.cpp.

References dinv(), dot(), Implicit::getq(), Implicit::grad(), Implicit::k(), UnaryOp::m_f, RandomStream::next(), Implicit::proc(), Implicit::procq(), Implicit::qlen(), and Implicit::setq().


Member Data Documentation

gmVector3 Mover::m_o [private]
 

Translation.

Definition at line 16 of file Mover.h.

Referenced by _setq(), dinv(), getq(), m_olrp(), and Mover().


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