Rosetta
Classes | Namespaces | Functions
xyzTriple.hh File Reference

Fast (x,y,z)-coordinate vector container. More...

#include <numeric/xyzTriple.fwd.hh>
#include <numeric/trig.functions.hh>
#include <utility/assert.hh>
#include <cmath>
#include <stdexcept>

Classes

class  numeric::xyzTriple< T >
 Fast (x,y,z)-coordinate vector container. More...
 

Namespaces

 numeric
 Unit headers.
 

Functions

template<typename T >
xyzTriple< Tnumeric::operator+ (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple + xyzTriple More...
 
template<typename T >
xyzTriple< Tnumeric::operator+ (xyzTriple< T > const &v, T const &t)
 xyzTriple + T More...
 
template<typename T >
xyzTriple< Tnumeric::operator+ (T const &t, xyzTriple< T > const &v)
 T + xyzTriple. More...
 
template<typename T >
xyzTriple< Tnumeric::operator- (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple - xyzTriple More...
 
template<typename T >
xyzTriple< Tnumeric::operator- (xyzTriple< T > const &v, T const &t)
 xyzTriple - T More...
 
template<typename T >
xyzTriple< Tnumeric::operator- (T const &t, xyzTriple< T > const &v)
 T - xyzTriple. More...
 
template<typename T >
xyzTriple< Tnumeric::operator* (xyzTriple< T > const &v, T const &t)
 xyzTriple * T More...
 
template<typename T >
xyzTriple< Tnumeric::operator* (T const &t, xyzTriple< T > const &v)
 T * xyzTriple. More...
 
template<typename T >
xyzTriple< Tnumeric::operator/ (xyzTriple< T > const &v, T const &t)
 xyzTriple / T More...
 
template<typename T >
void numeric::add (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > &r)
 Add: xyzTriple + xyzTriple. More...
 
template<typename T >
void numeric::add (xyzTriple< T > const &v, T const &t, xyzTriple< T > &r)
 Add: xyzTriple + T. More...
 
template<typename T >
void numeric::add (T const &t, xyzTriple< T > const &v, xyzTriple< T > &r)
 Add: T + xyzTriple. More...
 
template<typename T >
void numeric::subtract (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > &r)
 Subtract: xyzTriple - xyzTriple. More...
 
template<typename T >
void numeric::subtract (xyzTriple< T > const &v, T const &t, xyzTriple< T > &r)
 Subtract: xyzTriple - T. More...
 
template<typename T >
void numeric::subtract (T const &t, xyzTriple< T > const &v, xyzTriple< T > &r)
 Subtract: T - xyzTriple. More...
 
template<typename T >
void numeric::multiply (xyzTriple< T > const &v, T const &t, xyzTriple< T > &r)
 Multiply: xyzTriple * T. More...
 
template<typename T >
void numeric::multiply (T const &t, xyzTriple< T > const &v, xyzTriple< T > &r)
 Multiply: T * xyzTriple. More...
 
template<typename T >
void numeric::divide (xyzTriple< T > const &v, T const &t, xyzTriple< T > &r)
 Divide: xyzTriple / T. More...
 
template<typename T >
xyzTriple< Tnumeric::min (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple with min coordinates of two xyzTriples More...
 
template<typename T >
xyzTriple< Tnumeric::max (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple with max coordinates of two xyzTriples More...
 
template<typename T >
T numeric::distance (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Distance. More...
 
template<typename T >
T numeric::distance_squared (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Distance squared. More...
 
template<typename T >
T numeric::dot (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Dot product. More...
 
template<typename T >
T numeric::dot_product (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Dot product. More...
 
template<typename T >
T numeric::inner_product (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Inner product ( == dot product ) More...
 
template<typename T >
xyzTriple< Tnumeric::cross (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Cross product. More...
 
template<typename T >
xyzTriple< Tnumeric::cross_product (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Cross product. More...
 
template<typename T >
void numeric::cross (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > &c)
 Cross product: Return via argument (slightly faster) More...
 
template<typename T >
void numeric::cross_product (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > &c)
 Cross product: Return via argument (slightly faster) More...
 
template<typename T >
xyzTriple< Tnumeric::midpoint (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Midpoint of 2 xyzTriples. More...
 
template<typename T >
void numeric::midpoint (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > &m)
 Midpoint of 2 xyzTriples: Return via argument (slightly faster) More...
 
template<typename T >
xyzTriple< Tnumeric::center (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Center of 2 xyzTriples. More...
 
template<typename T >
void numeric::center (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > &m)
 Center of 2 xyzTriples: Return via argument (slightly faster) More...
 
template<typename T >
xyzTriple< Tnumeric::center (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c)
 Center of 3 xyzTriples. More...
 
template<typename T >
void numeric::center (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c, xyzTriple< T > &m)
 Center of 3 xyzTriples: Return via argument (slightly faster) More...
 
template<typename T >
xyzTriple< Tnumeric::center (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c, xyzTriple< T > const &d)
 Center of 4 xyzTriples. More...
 
template<typename T >
void numeric::center (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c, xyzTriple< T > const &d, xyzTriple< T > &m)
 Center of 4 xyzTriples: Return via argument (slightly faster) More...
 
template<typename T >
T numeric::angle_of (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Angle between two vectors (in radians on [ 0, pi ]) More...
 
template<typename T >
T numeric::angle_of (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c)
 Angle formed by three consecutive points (in radians on [ 0, pi ]) More...
 
template<typename T >
T numeric::cos_of (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Cosine of angle between two vectors. More...
 
template<typename T >
T numeric::cos_of (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c)
 Cosine of angle formed by three consecutive points. More...
 
template<typename T >
T numeric::sin_of (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Sine of angle between two vectors. More...
 
template<typename T >
T numeric::sin_of (xyzTriple< T > const &a, xyzTriple< T > const &b, xyzTriple< T > const &c)
 Sine of angle formed by three consecutive points. More...
 
template<typename T >
bool numeric::operator== (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple == xyzTriple More...
 
template<typename T >
bool numeric::operator!= (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple != xyzTriple More...
 
template<typename T >
bool numeric::operator< (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple < xyzTriple More...
 
template<typename T >
bool numeric::operator<= (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple <= xyzTriple More...
 
template<typename T >
bool numeric::operator>= (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple >= xyzTriple More...
 
template<typename T >
bool numeric::operator> (xyzTriple< T > const &a, xyzTriple< T > const &b)
 xyzTriple > xyzTriple More...
 
template<typename T >
bool numeric::operator== (xyzTriple< T > const &v, T const &t)
 xyzTriple == T More...
 
template<typename T >
bool numeric::operator!= (xyzTriple< T > const &v, T const &t)
 xyzTriple != T More...
 
template<typename T >
bool numeric::operator< (xyzTriple< T > const &v, T const &t)
 xyzTriple < T More...
 
template<typename T >
bool numeric::operator<= (xyzTriple< T > const &v, T const &t)
 xyzTriple <= T More...
 
template<typename T >
bool numeric::operator>= (xyzTriple< T > const &v, T const &t)
 xyzTriple >= T More...
 
template<typename T >
bool numeric::operator> (xyzTriple< T > const &v, T const &t)
 xyzTriple > T More...
 
template<typename T >
bool numeric::operator== (T const &t, xyzTriple< T > const &v)
 T == xyzTriple. More...
 
template<typename T >
bool numeric::operator!= (T const &t, xyzTriple< T > const &v)
 T != xyzTriple. More...
 
template<typename T >
bool numeric::operator< (T const &t, xyzTriple< T > const &v)
 T < xyzTriple. More...
 
template<typename T >
bool numeric::operator<= (T const &t, xyzTriple< T > const &v)
 T <= xyzTriple. More...
 
template<typename T >
bool numeric::operator>= (T const &t, xyzTriple< T > const &v)
 T >= xyzTriple. More...
 
template<typename T >
bool numeric::operator> (T const &t, xyzTriple< T > const &v)
 T > xyzTriple. More...
 
template<typename T >
bool numeric::equal_length (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Equal length? More...
 
template<typename T >
bool numeric::not_equal_length (xyzTriple< T > const &a, xyzTriple< T > const &b)
 Not equal length? More...
 
template<typename U >
numeric::dot (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Dot product. More...
 
template<typename U >
numeric::dot_product (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Dot product. More...
 
template<typename U >
numeric::inner_product (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Inner product ( == dot product ) More...
 
template<typename U >
bool numeric::equal_length (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Equal length? More...
 
template<typename U >
xyzTriple< U > numeric::cross (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Cross product. More...
 
template<typename U >
xyzTriple< U > numeric::cross_product (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Cross product. More...
 
template<typename U >
void numeric::cross (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > &c)
 Cross product: Return via argument (slightly faster) More...
 
template<typename U >
void numeric::cross_product (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > &c)
 Cross product: Return via argument (slightly faster) More...
 
template<typename U >
xyzTriple< U > numeric::midpoint (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Midpoint of 2 xyzTriples. More...
 
template<typename U >
void numeric::midpoint (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > &m)
 Midpoint of 2 xyzTriples: Return via argument (slightly faster) More...
 
template<typename U >
xyzTriple< U > numeric::center (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Center of 2 xyzTriples. More...
 
template<typename U >
void numeric::center (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > &m)
 Center of 2 xyzTriples: Return via argument (slightly faster) More...
 
template<typename U >
xyzTriple< U > numeric::center (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c)
 Center of 3 xyzTriples. More...
 
template<typename U >
void numeric::center (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c, xyzTriple< U > &m)
 Center of 3 xyzTriples: Return via argument (slightly faster) More...
 
template<typename U >
xyzTriple< U > numeric::center (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c, xyzTriple< U > const &d)
 Center of 4 xyzTriples. More...
 
template<typename U >
void numeric::center (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c, xyzTriple< U > const &d, xyzTriple< U > &m)
 Center of 4 xyzTriples: Return via argument (slightly faster) More...
 
template<typename U >
numeric::angle_of (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Angle between two vectors (in radians on [ 0, pi ]) More...
 
template<typename U >
numeric::angle_of (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c)
 Angle formed by three consecutive points (in radians on [ 0, pi ]) More...
 
template<typename U >
numeric::cos_of (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Cosine of angle between two vectors. More...
 
template<typename U >
numeric::cos_of (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c)
 Cosine of angle formed by three consecutive points. More...
 
template<typename U >
numeric::sin_of (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Sine of angle between two vectors. More...
 
template<typename U >
numeric::sin_of (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > const &c)
 Sine of angle formed by three consecutive points. More...
 
template<typename U >
numeric::distance_squared (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Distance squared. More...
 
template<typename U >
bool numeric::not_equal_length (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Not equal length? More...
 
template<typename U >
void numeric::add (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > &r)
 Add: xyzTriple + xyzTriple. More...
 
template<typename U >
void numeric::add (xyzTriple< U > const &v, U const &t, xyzTriple< U > &r)
 Add: xyzTriple + Value. More...
 
template<typename U >
void numeric::add (U const &t, xyzTriple< U > const &v, xyzTriple< U > &r)
 Add: Value + xyzTriple. More...
 
template<typename U >
void numeric::subtract (xyzTriple< U > const &a, xyzTriple< U > const &b, xyzTriple< U > &r)
 Subtract: xyzTriple - xyzTriple. More...
 
template<typename U >
void numeric::subtract (xyzTriple< U > const &v, U const &t, xyzTriple< U > &r)
 Subtract: xyzTriple - Value. More...
 
template<typename U >
void numeric::subtract (U const &t, xyzTriple< U > const &v, xyzTriple< U > &r)
 Subtract: Value - xyzTriple. More...
 
template<typename U >
void numeric::multiply (xyzTriple< U > const &v, U const &t, xyzTriple< U > &r)
 Multiply: xyzTriple * Value. More...
 
template<typename U >
void numeric::multiply (U const &t, xyzTriple< U > const &v, xyzTriple< U > &r)
 Multiply: Value * xyzTriple. More...
 
template<typename U >
void numeric::divide (xyzTriple< U > const &v, U const &t, xyzTriple< U > &r)
 Divide: xyzTriple / Value. More...
 
template<typename U >
xyzTriple< U > numeric::min (xyzTriple< U > const &a, xyzTriple< U > const &b)
 xyzTriple with min coordinates of two xyzTriples More...
 
template<typename U >
xyzTriple< U > numeric::max (xyzTriple< U > const &a, xyzTriple< U > const &b)
 xyzTriple with max coordinates of two xyzTriples More...
 
template<typename U >
numeric::distance (xyzTriple< U > const &a, xyzTriple< U > const &b)
 Distance. More...
 

Detailed Description

Fast (x,y,z)-coordinate vector container.

Author
Frank M. D'Ippolito (Objex.nosp@m.x@ob.nosp@m.jexx..nosp@m.com)
Stuart G. Mentzer (Stuar.nosp@m.t_Me.nosp@m.ntzer.nosp@m.@obj.nosp@m.exx.c.nosp@m.om)
Remarks
  • Inline, loop-free functions for speed
  • Non-virtual destructor for speed: Not set up for use as a base class
  • Pointer constructor and assignment not available for xyzTriples of pointers
  • Container semantics: lexicographic complete ordering