VISH  0.2
Namespaces | Classes | Typedefs | Functions | Variables
Eagle Namespace Reference

The "Eagle" namespace contains classes that implement vector and geometric algebra as well as interpolation procedures that ultimately allow the construction of camera paths. More...

Namespaces

Classes

Typedefs

Arguments for computational constructors

Functions

<A HREF="http://www.astro.virginia.edu/~eww6n/math/LegendrePolynomial.html">Legendre polynom</A> of order l,m

Variables


Detailed Description

The "Eagle" namespace contains classes that implement vector and geometric algebra as well as interpolation procedures that ultimately allow the construction of camera paths.

The naming of the namespace is inspired by the sharp eye of the eagle, that requires description by the mathematics of geometric algebra. A camera path's purpose is a smooth flight through a virtual scene, like an eagle smoothly flies through a real scene.


Typedef Documentation

typedef int Eagle::OperatorID_t

The type identifying an Operator.

See class Operator for usage.

typedef TypedNode<double> Eagle::ScalarNode

Base class for evaluation of a scalar function that has been parsed from some input.

   RefPtr<ScalarNode>   MyNode = ...;

   EvaluationContext    EV;
   double       value = MyNode->eval(EV);

Base class for evaluation of a vector-valued function that has been parsed from some input.

   using namespace Eagle;

   RefPtr<VectorNode>   MyNode = ...;

   EvaluationContext    EV;
   PhysicalSpace::tvector value = MyNode->eval(EV);

Function Documentation

double Eagle::norm ( const PhysicalSpace::tvector &  v) [inline]

Compute the Euclidan norm of a vector.

Note that if just the square of the norm is required, then function norm2() is more efficient since the square root does not need to be taken.

template<int N, class Value >
Value Eagle::operator* ( const Row< N, Value > &  l,
const Column< N, Value > &  r 
) [inline]

Contraction operation: multiply row by column.

Note that the reverse operation, ie. multiplying a column by a row, is the tensor product and yields a $n n$ matrix.

template<class ResultType >
MemCore::RefPtr<typename ResultType::TypedNode_t>* Eagle::RefNode ( ResultType *  N)

ingroup parzival Create a new reference pointer appropriate for the class given.

This is a convenience function for the Quest parser, since that one can only deal with native C pointers in the main union data type. It is not supposed to be used anywhere else than in this specific context.

template<typename T >
T Eagle::sinc ( x) [inline]

The sinc(x) function, save for x=0, and numerically stable around x=0.

When the sine function is written as a taylor series,

\[ sin(x) = x - x^3/3! + x^5/5! - x^7/7! \]

we get the sinc(x) function as

\[ sin(x)/x = 1 - x^2/(2*3) + x^4/(2*3*4*5) - \cdots = 1 - x^2 [ 1 - x^2 / 20 ] / 6 \]