expression.h File Reference

#include <math/matrix.h>
Include dependency graph for expression.h:

Go to the source code of this file.

Data Structures

class  Literal< Value >
class  ScalarDivided< First, Second >
class  SquareRoot< First >
class  BasicVector3Literal< Element >
class  BasicVector3Identity< Element >
class  VectorScalar< Operation, First, Second >
class  VectorVector< Operation, First, Second >
class  Added< First, Second >
class  Multiplied< First, Second >
class  Negated< First >
class  VectorUnary< First, Operation >
class  VectorCross< First, Second >
class  VectorDot< First, Second >
struct  VectorDot< First, Second >::eval_dot< Index >
struct  VectorDot< First, Second >::eval_dot< IntegralConstant< 0 > >
class  VectorLengthSquared< First >
struct  VectorLengthSquared< First >::eval_squared< Index >
struct  VectorLengthSquared< First >::eval_squared< IntegralConstant< 0 > >
class  Matrix4Literal
class  Matrix4Identity
class  PointMultiplied< First, Second >
class  Matrix4Multiplied< First, Second >
class  MatrixTransposed< First >

Defines

#define INCLUDED_EXPRESSION_H

Typedefs

typedef BasicVector3Literal
< float > 
Vector3Literal
typedef BasicVector3Identity
< float > 
Vector3Identity

Functions

template<typename Value >
Literal< Valuefloat_literal (const Value &value)
template<typename Expression >
float float_for_expression (const Expression &expression)
template<typename First , typename Second >
ScalarDivided< First, Second > float_divided (const First &first, const Second &second)
template<typename First >
ScalarDivided< Literal
< typename First::value_type >
, First > 
float_reciprocal (const First &first)
template<typename First >
SquareRoot< First > float_square_root (const First &first)
template<typename Element >
BasicVector3Literal< Element > vector3_literal (const BasicVector3< Element > &value)
template<typename Element >
BasicVector3Identity< Element > vector3_identity (const BasicVector3< Element > &value)
template<typename Expression >
BasicVector3< typename
Expression::value_type > 
vector3_for_expression (const Expression &expression)
template<typename First , typename Second >
VectorVector< Added< typename
First::value_type, typename
Second::value_type >, First,
Second > 
vector_added (const First &first, const Second &second)
template<typename First , typename Second >
VectorVector< Multiplied
< typename First::value_type,
typename Second::value_type >
, First, Second > 
vector_multiplied (const First &first, const Second &second)
template<typename First , typename Second >
VectorScalar< Multiplied
< typename First::value_type,
typename Second::value_type >
, First, Second > 
vector_scaled (const First &first, const Second &second)
template<typename First >
VectorUnary< First, Negated
< typename First::value_type > > 
vector_negated (const First &first)
template<typename First , typename Second >
VectorCross< First, Second > vector_cross (const First &first, const Second &second)
template<typename First , typename Second >
VectorDot< First, Second > vector_dot (const First &first, const Second &second)
template<typename First >
VectorLengthSquared< First > vector_length_squared (const First &first)
template<typename First >
SquareRoot
< VectorLengthSquared< First > > 
vector_length (const First &first)
template<typename First >
VectorScalar< Multiplied
< typename First::value_type,
typename First::value_type >
, First, ScalarDivided
< Literal< typename
First::value_type >
, SquareRoot
< VectorLengthSquared< First > > > > 
vector_normalised (const First &first)
Matrix4Literal matrix4_literal (const Matrix4 &value)
Matrix4Identity matrix4_identity (const Matrix4 &value)
template<typename Expression >
Matrix4 matrix4_for_expression (const Expression &expression)
template<typename Expression >
Matrix4 matrix4_affine_for_expression (const Expression &expression)
template<typename First , typename Second >
PointMultiplied< First, Second > point_multiplied (const First &point, const Second &matrix)
template<typename First , typename Second >
Matrix4Multiplied< First, Second > matrix4_multiplied (const First &first, const Second &second)
template<typename First >
MatrixTransposed< First > matrix_transposed (const First &first)

Define Documentation

#define INCLUDED_EXPRESSION_H

Definition at line 23 of file expression.h.


Typedef Documentation

Definition at line 160 of file expression.h.

Definition at line 134 of file expression.h.


Function Documentation

template<typename First , typename Second >
ScalarDivided<First, Second> float_divided ( const First &  first,
const Second &  second 
) [inline]

Definition at line 75 of file expression.h.

template<typename Expression >
float float_for_expression ( const Expression &  expression  )  [inline]

Definition at line 51 of file expression.h.

template<typename Value >
Literal<Value> float_literal ( const Value value  )  [inline]

Definition at line 45 of file expression.h.

Referenced by float_reciprocal().

template<typename First >
ScalarDivided<Literal<typename First::value_type> , First> float_reciprocal ( const First &  first  )  [inline]

Definition at line 81 of file expression.h.

References float_literal().

Referenced by vector_normalised().

template<typename First >
SquareRoot<First> float_square_root ( const First &  first  )  [inline]

Definition at line 105 of file expression.h.

Referenced by vector_length().

template<typename Expression >
Matrix4 matrix4_affine_for_expression ( const Expression &  expression  )  [inline]

Definition at line 484 of file expression.h.

template<typename Expression >
Matrix4 matrix4_for_expression ( const Expression &  expression  )  [inline]

Definition at line 475 of file expression.h.

Matrix4Identity matrix4_identity ( const Matrix4 &  value  )  [inline]

Definition at line 469 of file expression.h.

Matrix4Literal matrix4_literal ( const Matrix4 &  value  )  [inline]

Definition at line 446 of file expression.h.

template<typename First , typename Second >
Matrix4Multiplied<First, Second> matrix4_multiplied ( const First &  first,
const Second &  second 
) [inline]

Definition at line 540 of file expression.h.

template<typename First >
MatrixTransposed<First> matrix_transposed ( const First &  first  )  [inline]

Definition at line 566 of file expression.h.

template<typename First , typename Second >
PointMultiplied<First, Second> point_multiplied ( const First &  point,
const Second &  matrix 
) [inline]

Definition at line 512 of file expression.h.

template<typename Expression >
BasicVector3<typename Expression::value_type> vector3_for_expression ( const Expression &  expression  )  [inline]

Definition at line 163 of file expression.h.

template<typename Element >
BasicVector3Identity<Element> vector3_identity ( const BasicVector3< Element > &  value  )  [inline]

Definition at line 155 of file expression.h.

template<typename Element >
BasicVector3Literal<Element> vector3_literal ( const BasicVector3< Element > &  value  )  [inline]

Definition at line 129 of file expression.h.

template<typename First , typename Second >
VectorVector<Added<typename First::value_type, typename Second::value_type> , First, Second> vector_added ( const First &  first,
const Second &  second 
) [inline]

Definition at line 219 of file expression.h.

template<typename First , typename Second >
VectorCross<First, Second> vector_cross ( const First &  first,
const Second &  second 
) [inline]

Definition at line 315 of file expression.h.

template<typename First , typename Second >
VectorDot<First, Second> vector_dot ( const First &  first,
const Second &  second 
) [inline]

Definition at line 360 of file expression.h.

template<typename First >
SquareRoot<VectorLengthSquared<First> > vector_length ( const First &  first  )  [inline]

Definition at line 415 of file expression.h.

References float_square_root(), and vector_length_squared().

Referenced by vector_normalised().

template<typename First >
VectorLengthSquared<First> vector_length_squared ( const First &  first  )  [inline]

Definition at line 409 of file expression.h.

Referenced by vector_length().

template<typename First , typename Second >
VectorVector<Multiplied<typename First::value_type, typename Second::value_type> , First, Second> vector_multiplied ( const First &  first,
const Second &  second 
) [inline]

Definition at line 240 of file expression.h.

template<typename First >
VectorUnary<First, Negated<typename First::value_type> > vector_negated ( const First &  first  )  [inline]

Definition at line 288 of file expression.h.

template<typename First >
VectorScalar<Multiplied<typename First::value_type, typename First::value_type>,First,ScalarDivided <Literal<typename First::value_type>,SquareRoot <VectorLengthSquared<First> > > > vector_normalised ( const First &  first  )  [inline]

Definition at line 423 of file expression.h.

References float_reciprocal(), vector_length(), and vector_scaled().

template<typename First , typename Second >
VectorScalar<Multiplied<typename First::value_type, typename Second::value_type> , First, Second> vector_scaled ( const First &  first,
const Second &  second 
) [inline]

Definition at line 249 of file expression.h.

Referenced by vector_normalised().


Generated by  doxygen 1.6.2