Rosetta 3.3
Public Types | Public Member Functions | Friends
numeric::xyzTriple< T > Class Template Reference

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

#include <xyzTriple.hh>

Collaboration diagram for numeric::xyzTriple< T >:
Collaboration graph
[legend]

List of all members.

Public Types

typedefValue
typedef T & Reference
typedef T const & ConstReference
typedef T * Pointer
typedef T const * ConstPointer
typedefvalue_type
typedef T & reference
typedef T const & const_reference
typedef T * pointer
typedef T const * const_pointer
typedef void iterator_category
typedef void difference_type

Public Member Functions

 xyzTriple ()
 Default constructor.
 xyzTriple (xyzTriple const &v)
 Copy constructor.
template<typename U >
 xyzTriple (xyzTriple< U > const &v)
 Copy constructor.
 xyzTriple (Value const &t)
 Uniform value constructor.
 xyzTriple (Value const &x_a, Value const &y_a, Value const &z_a)
 Triple value constructor.
template<typename U >
 xyzTriple (U const *p)
 Pointer to contiguous values constructor.
 ~xyzTriple ()
 Destructor.
xyzTripleoperator= (xyzTriple const &v)
 Copy assignment.
template<typename U >
xyzTripleoperator= (xyzTriple< U > const &v)
 Copy assignment.
template<typename U >
xyzTripleoperator= (U const *p)
 Assignment from pointer to contiguous values.
template<typename U >
xyzTripleoperator+= (xyzTriple< U > const &v)
 += xyzTriple
template<typename U >
xyzTripleoperator-= (xyzTriple< U > const &v)
 -= xyzTriple
template<typename U >
xyzTriplescaled_assign (Value const &t, xyzTriple< U > const &v)
 Assign Value * xyzTriple.
template<typename U >
xyzTriplescaled_add (Value const &t, xyzTriple< U > const &v)
 Add Value * xyzTriple.
template<typename U >
xyzTriplescaled_sub (Value const &t, xyzTriple< U > const &v)
 Subtract Value * xyzTriple.
xyzTripleoperator= (Value const &t)
 = Value
xyzTripleoperator+= (Value const &t)
 += Value
xyzTripleoperator-= (Value const &t)
 -= Value
xyzTripleoperator*= (Value const &t)
 *= Value
xyzTripleoperator/= (Value const &t)
 /= Value
xyzTripleassign (Value const &x_a, Value const &y_a, Value const &z_a)
 Triple value assignment.
xyzTripleclear ()
 Clear.
xyzTriplezero ()
 Zero.
xyzTriplenegate ()
 Negate.
xyzTriple operator- () const
 -xyzTriple (negated copy)
xyzTriple negated () const
 Negated copy.
void negated (xyzTriple &a) const
 Negated: Return via argument (slightly faster)
xyzTriplemin (xyzTriple const &v)
 Set minimum coordinates wrt another xyzTriple.
xyzTriplemax (xyzTriple const &v)
 Set maximum coordinates wrt another xyzTriple.
xyzTriplenormalize ()
 Normalize.
void normalized (xyzTriple &a) const
 Normalized.
xyzTriplenormalize_or_zero ()
 Normalize: zero xyzTriple if length is zero.
void normalized_or_zero (xyzTriple &a) const
 Normalized: zero xyzTriple if length is zero.
xyzTriplenormalize_any ()
 Normalize: arbitrary normalized xyzTriple if length is zero.
void normalized_any (xyzTriple &a) const
 Normalized: arbitrary normalized xyzTriple if length is zero.
xyzTriplenormalize (Value const &length_a)
 Normalize to a length.
void normalized (Value const &length_a, xyzTriple &a) const
 Normalized to a length.
xyzTriplenormalize_or_zero (Value const &length_a)
 Normalize to a length: zero xyzTriple if length is zero.
void normalized_or_zero (Value const &length_a, xyzTriple &a) const
 Normalized to a length: zero xyzTriple if length is zero.
xyzTriplenormalize_any (Value const &length_a)
 Normalize to a length: arbitrary normalized xyzTriple if length is zero.
void normalized_any (Value const &length_a, xyzTriple &a) const
 Normalized to a length: arbitrary normalized xyzTriple if length is zero.
xyzTriple normalized () const
 Normalized copy.
xyzTriple normalized_or_zero () const
 Normalized copy: Zero xyzTriple if length is zero.
xyzTriple normalized_any () const
 Normalized copy: Arbitrary normalized xyzTriple if length is zero.
xyzTriple normalized (Value const &length_a) const
 Normalized to a length copy.
xyzTriple normalized_or_zero (Value const &length_a) const
 Normalized to a length copy: Zero xyzTriple if length is zero.
xyzTriple normalized_any (Value const &length_a) const
 Normalized to a length copy: Arbitrary normalized xyzTriple if length is zero.
xyzTripleproject_normal (xyzTriple const &v)
 Project normal.
xyzTriple projected_normal (xyzTriple const &v) const
 Projected normal copy.
void projected_normal (xyzTriple const &v, xyzTriple &a) const
 Projected normal.
xyzTripleproject_parallel (xyzTriple const &v)
 Project parallel.
xyzTriple projected_parallel (xyzTriple const &v) const
 Projected parallel copy.
void projected_parallel (xyzTriple const &v, xyzTriple &a)
 Projected parallel.
Value distance (xyzTriple const &v) const
 Distance.
Value distance_squared (xyzTriple const &v) const
 Distance squared.
Value dot (xyzTriple const &v) const
 Dot product.
Value dot_product (xyzTriple const &v) const
 Dot product.
Value inner_product (xyzTriple const &v) const
 Inner product ( == dot product )
xyzTriple cross (xyzTriple const &v) const
 Cross product.
xyzTriple cross_product (xyzTriple const &v) const
 Cross product.
bool is_zero () const
 Is zero?
bool is_normalized () const
 Is exactly normalized?
bool is_normalized (Value const &tol) const
 Is normalized to within a tolerance?
bool is_unit () const
 Is exactly a unit vector?
bool is_unit (Value const &tol) const
 Is a unit vector to within a tolerance?
Value const & x () const
 Value x const.
Valuex ()
 Value x.
Value const & y () const
 Value y const.
Valuey ()
 Value y.
Value const & z () const
 Value z const.
Valuez ()
 Value z.
Value length () const
 Length.
Value length_squared () const
 Length squared.
Value norm () const
 Norm.
Value norm_squared () const
 Norm squared.
Value magnitude () const
 Magnitude.
Value magnitude_squared () const
 Magnitude squared.
void x (Value const &x_a)
 x assignment
void y (Value const &y_a)
 y assignment
void z (Value const &z_a)
 z assignment
Value const & operator[] (int const i) const
 xyzTriple[ i ] const: 0-based index
Valueoperator[] (int const i)
 xyzTriple[ i ]: 0-based index
Value const & operator() (int const i) const
 xyzTriple( i ) const: 1-based index
Valueoperator() (int const i)
 xyzTriple( i ): 1-based index
bool equal_length (xyzTriple const &v)
 Equal length?
bool not_equal_length (xyzTriple const &v)
 Not equal length?
bool longer (xyzTriple const &v)
 Longer?
bool longer_or_equal (xyzTriple const &v)
 Longer or equal length?
bool shorter (xyzTriple const &v)
 Shorter?
bool shorter_or_equal (xyzTriple const &v)
 Shorter or equal length?

Friends

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

Detailed Description

template<typename T>
class numeric::xyzTriple< T >

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


Member Typedef Documentation

template<typename T>
typedef T const* numeric::xyzTriple< T >::const_pointer
template<typename T>
typedef T const& numeric::xyzTriple< T >::const_reference
template<typename T>
typedef T const* numeric::xyzTriple< T >::ConstPointer
template<typename T>
typedef T const& numeric::xyzTriple< T >::ConstReference
template<typename T>
typedef void numeric::xyzTriple< T >::difference_type
template<typename T>
typedef void numeric::xyzTriple< T >::iterator_category
template<typename T>
typedef T* numeric::xyzTriple< T >::pointer
template<typename T>
typedef T* numeric::xyzTriple< T >::Pointer
template<typename T>
typedef T& numeric::xyzTriple< T >::reference
template<typename T>
typedef T& numeric::xyzTriple< T >::Reference
template<typename T>
typedef T numeric::xyzTriple< T >::Value
template<typename T>
typedef T numeric::xyzTriple< T >::value_type

Constructor & Destructor Documentation

template<typename T>
numeric::xyzTriple< T >::xyzTriple ( ) [inline]
template<typename T>
numeric::xyzTriple< T >::xyzTriple ( xyzTriple< T > const &  v) [inline]

Copy constructor.

template<typename T>
template<typename U >
numeric::xyzTriple< T >::xyzTriple ( xyzTriple< U > const &  v) [inline]

Copy constructor.

template<typename T>
numeric::xyzTriple< T >::xyzTriple ( Value const &  t) [inline, explicit]

Uniform value constructor.

template<typename T>
numeric::xyzTriple< T >::xyzTriple ( Value const &  x_a,
Value const &  y_a,
Value const &  z_a 
) [inline]

Triple value constructor.

template<typename T>
template<typename U >
numeric::xyzTriple< T >::xyzTriple ( U const *  p) [inline, explicit]

Pointer to contiguous values constructor.

Note:
U must be assignable to a Value
Warning:
No way to check that argument points to three values
Argument missing an & operator will quietly call the uniform value constructor
template<typename T>
numeric::xyzTriple< T >::~xyzTriple ( ) [inline]

Destructor.


Member Function Documentation

template<typename T>
xyzTriple& numeric::xyzTriple< T >::assign ( Value const &  x_a,
Value const &  y_a,
Value const &  z_a 
) [inline]

Triple value assignment.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::clear ( ) [inline]

Clear.

template<typename T>
xyzTriple numeric::xyzTriple< T >::cross ( xyzTriple< T > const &  v) const [inline]

Cross product.

References numeric::xyzTriple< T >::xyzTriple().

template<typename T>
xyzTriple numeric::xyzTriple< T >::cross_product ( xyzTriple< T > const &  v) const [inline]

Cross product.

References numeric::xyzTriple< T >::xyzTriple().

template<typename T>
Value numeric::xyzTriple< T >::distance ( xyzTriple< T > const &  v) const [inline]

Distance.

References numeric::square().

template<typename T>
Value numeric::xyzTriple< T >::distance_squared ( xyzTriple< T > const &  v) const [inline]

Distance squared.

References numeric::square().

template<typename T>
Value numeric::xyzTriple< T >::dot ( xyzTriple< T > const &  v) const [inline]
template<typename T>
Value numeric::xyzTriple< T >::dot_product ( xyzTriple< T > const &  v) const [inline]

Dot product.

template<typename T>
bool numeric::xyzTriple< T >::equal_length ( xyzTriple< T > const &  v) [inline]

Equal length?

References numeric::xyzTriple< T >::length_squared().

template<typename T>
Value numeric::xyzTriple< T >::inner_product ( xyzTriple< T > const &  v) const [inline]

Inner product ( == dot product )

template<typename T>
bool numeric::xyzTriple< T >::is_normalized ( ) const [inline]

Is exactly normalized?

References numeric::xyzTriple< T >::length_squared().

template<typename T>
bool numeric::xyzTriple< T >::is_normalized ( Value const &  tol) const [inline]

Is normalized to within a tolerance?

References numeric::xyzTriple< T >::length_squared(), and loops_kic::tol.

template<typename T>
bool numeric::xyzTriple< T >::is_unit ( ) const [inline]

Is exactly a unit vector?

References numeric::xyzTriple< T >::length_squared().

template<typename T>
bool numeric::xyzTriple< T >::is_unit ( Value const &  tol) const [inline]

Is a unit vector to within a tolerance?

References numeric::xyzTriple< T >::length_squared(), and loops_kic::tol.

template<typename T>
bool numeric::xyzTriple< T >::is_zero ( ) const [inline]

Is zero?

template<typename T>
Value numeric::xyzTriple< T >::length ( ) const [inline]
template<typename T>
Value numeric::xyzTriple< T >::length_squared ( ) const [inline]
template<typename T>
bool numeric::xyzTriple< T >::longer ( xyzTriple< T > const &  v) [inline]
template<typename T>
bool numeric::xyzTriple< T >::longer_or_equal ( xyzTriple< T > const &  v) [inline]

Longer or equal length?

References numeric::xyzTriple< T >::length_squared().

template<typename T>
Value numeric::xyzTriple< T >::magnitude ( ) const [inline]

Magnitude.

template<typename T>
Value numeric::xyzTriple< T >::magnitude_squared ( ) const [inline]

Magnitude squared.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::max ( xyzTriple< T > const &  v) [inline]

Set maximum coordinates wrt another xyzTriple.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::min ( xyzTriple< T > const &  v) [inline]

Set minimum coordinates wrt another xyzTriple.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::negate ( ) [inline]

Negate.

template<typename T>
xyzTriple numeric::xyzTriple< T >::negated ( ) const [inline]

Negated copy.

References numeric::xyzTriple< T >::xyzTriple().

template<typename T>
void numeric::xyzTriple< T >::negated ( xyzTriple< T > &  a) const [inline]

Negated: Return via argument (slightly faster)

template<typename T>
Value numeric::xyzTriple< T >::norm ( ) const [inline]

Norm.

template<typename T>
Value numeric::xyzTriple< T >::norm_squared ( ) const [inline]

Norm squared.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::normalize ( ) [inline]

Normalize.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple& numeric::xyzTriple< T >::normalize ( Value const &  length_a) [inline]

Normalize to a length.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple& numeric::xyzTriple< T >::normalize_any ( Value const &  length_a) [inline]

Normalize to a length: arbitrary normalized xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple& numeric::xyzTriple< T >::normalize_any ( ) [inline]

Normalize: arbitrary normalized xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple& numeric::xyzTriple< T >::normalize_or_zero ( ) [inline]

Normalize: zero xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple& numeric::xyzTriple< T >::normalize_or_zero ( Value const &  length_a) [inline]

Normalize to a length: zero xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple numeric::xyzTriple< T >::normalized ( ) const [inline]
template<typename T>
xyzTriple numeric::xyzTriple< T >::normalized ( Value const &  length_a) const [inline]

Normalized to a length copy.

References numeric::xyzTriple< T >::length(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
void numeric::xyzTriple< T >::normalized ( xyzTriple< T > &  a) const [inline]

Normalized.

References numeric::xyzTriple< T >::length().

template<typename T>
void numeric::xyzTriple< T >::normalized ( Value const &  length_a,
xyzTriple< T > &  a 
) const [inline]

Normalized to a length.

References numeric::xyzTriple< T >::length().

template<typename T>
void numeric::xyzTriple< T >::normalized_any ( Value const &  length_a,
xyzTriple< T > &  a 
) const [inline]

Normalized to a length: arbitrary normalized xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple numeric::xyzTriple< T >::normalized_any ( ) const [inline]

Normalized copy: Arbitrary normalized xyzTriple if length is zero.

References numeric::xyzTriple< T >::length(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
xyzTriple numeric::xyzTriple< T >::normalized_any ( Value const &  length_a) const [inline]

Normalized to a length copy: Arbitrary normalized xyzTriple if length is zero.

References numeric::xyzTriple< T >::length(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
void numeric::xyzTriple< T >::normalized_any ( xyzTriple< T > &  a) const [inline]

Normalized: arbitrary normalized xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
void numeric::xyzTriple< T >::normalized_or_zero ( Value const &  length_a,
xyzTriple< T > &  a 
) const [inline]

Normalized to a length: zero xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
xyzTriple numeric::xyzTriple< T >::normalized_or_zero ( ) const [inline]

Normalized copy: Zero xyzTriple if length is zero.

References numeric::xyzTriple< T >::length(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
xyzTriple numeric::xyzTriple< T >::normalized_or_zero ( Value const &  length_a) const [inline]

Normalized to a length copy: Zero xyzTriple if length is zero.

References numeric::xyzTriple< T >::length(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
void numeric::xyzTriple< T >::normalized_or_zero ( xyzTriple< T > &  a) const [inline]

Normalized: zero xyzTriple if length is zero.

References numeric::xyzTriple< T >::length().

template<typename T>
bool numeric::xyzTriple< T >::not_equal_length ( xyzTriple< T > const &  v) [inline]

Not equal length?

References numeric::xyzTriple< T >::length_squared().

template<typename T>
Value const& numeric::xyzTriple< T >::operator() ( int const  i) const [inline]

xyzTriple( i ) const: 1-based index

template<typename T>
Value& numeric::xyzTriple< T >::operator() ( int const  i) [inline]

xyzTriple( i ): 1-based index

template<typename T>
xyzTriple& numeric::xyzTriple< T >::operator*= ( Value const &  t) [inline]

*= Value

References sd::t.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::operator+= ( Value const &  t) [inline]

+= Value

References sd::t.

template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::operator+= ( xyzTriple< U > const &  v) [inline]
template<typename T>
xyzTriple numeric::xyzTriple< T >::operator- ( ) const [inline]

-xyzTriple (negated copy)

References numeric::xyzTriple< T >::xyzTriple().

template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::operator-= ( xyzTriple< U > const &  v) [inline]
template<typename T>
xyzTriple& numeric::xyzTriple< T >::operator-= ( Value const &  t) [inline]

-= Value

References sd::t.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::operator/= ( Value const &  t) [inline]

/= Value

template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::operator= ( xyzTriple< U > const &  v) [inline]

Copy assignment.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::operator= ( Value const &  t) [inline]

= Value

References sd::t.

template<typename T>
xyzTriple& numeric::xyzTriple< T >::operator= ( xyzTriple< T > const &  v) [inline]

Copy assignment.

template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::operator= ( U const *  p) [inline]

Assignment from pointer to contiguous values.

Warning:
No way to check that argument points to three values

References docking::p.

template<typename T>
Value const& numeric::xyzTriple< T >::operator[] ( int const  i) const [inline]

xyzTriple[ i ] const: 0-based index

template<typename T>
Value& numeric::xyzTriple< T >::operator[] ( int const  i) [inline]

xyzTriple[ i ]: 0-based index

template<typename T>
xyzTriple& numeric::xyzTriple< T >::project_normal ( xyzTriple< T > const &  v) [inline]

Project normal.

Note:
This vector projected normally onto input vector
Not meaningful when v == 0

References numeric::xyzTriple< T >::dot(), and numeric::xyzTriple< T >::length_squared().

template<typename T>
xyzTriple& numeric::xyzTriple< T >::project_parallel ( xyzTriple< T > const &  v) [inline]

Project parallel.

Note:
This vector projected in direction of input vector
Not meaningful when v == 0

References numeric::xyzTriple< T >::dot(), and numeric::xyzTriple< T >::length_squared().

template<typename T>
xyzTriple numeric::xyzTriple< T >::projected_normal ( xyzTriple< T > const &  v) const [inline]

Projected normal copy.

Note:
Copy of this vector projected normally onto input vector
Not meaningful when v == 0

References numeric::xyzTriple< T >::dot(), numeric::xyzTriple< T >::length_squared(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
void numeric::xyzTriple< T >::projected_normal ( xyzTriple< T > const &  v,
xyzTriple< T > &  a 
) const [inline]

Projected normal.

Note:
Copy of this vector projected normally onto first input vector
Not meaningful when v == 0

References numeric::xyzTriple< T >::dot(), and numeric::xyzTriple< T >::length_squared().

template<typename T>
xyzTriple numeric::xyzTriple< T >::projected_parallel ( xyzTriple< T > const &  v) const [inline]

Projected parallel copy.

Note:
Copy of this vector projected in direction of input vector
Not meaningful when v == 0

References numeric::xyzTriple< T >::dot(), numeric::xyzTriple< T >::length_squared(), and numeric::xyzTriple< T >::xyzTriple().

template<typename T>
void numeric::xyzTriple< T >::projected_parallel ( xyzTriple< T > const &  v,
xyzTriple< T > &  a 
) [inline]

Projected parallel.

Note:
Copy of this vector projected in direction of first input vector
Not meaningful when v == 0

References numeric::xyzTriple< T >::dot(), and numeric::xyzTriple< T >::length_squared().

template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::scaled_add ( Value const &  t,
xyzTriple< U > const &  v 
) [inline]

Add Value * xyzTriple.

Note:
Avoids temporary of += Value * xyzTriple
template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::scaled_assign ( Value const &  t,
xyzTriple< U > const &  v 
) [inline]

Assign Value * xyzTriple.

Note:
Avoids temporary of = Value * xyzTriple
template<typename T>
template<typename U >
xyzTriple& numeric::xyzTriple< T >::scaled_sub ( Value const &  t,
xyzTriple< U > const &  v 
) [inline]

Subtract Value * xyzTriple.

Note:
Avoids temporary of -= Value * xyzTriple
template<typename T>
bool numeric::xyzTriple< T >::shorter ( xyzTriple< T > const &  v) [inline]
template<typename T>
bool numeric::xyzTriple< T >::shorter_or_equal ( xyzTriple< T > const &  v) [inline]

Shorter or equal length?

References numeric::xyzTriple< T >::length_squared().

template<typename T>
Value& numeric::xyzTriple< T >::x ( ) [inline]

Value x.

template<typename T>
void numeric::xyzTriple< T >::x ( Value const &  x_a) [inline]

x assignment

template<typename T>
Value const& numeric::xyzTriple< T >::x ( ) const [inline]

Value x const.

Referenced by numeric::operator>>().

template<typename T>
Value& numeric::xyzTriple< T >::y ( ) [inline]

Value y.

template<typename T>
void numeric::xyzTriple< T >::y ( Value const &  y_a) [inline]

y assignment

template<typename T>
Value const& numeric::xyzTriple< T >::y ( ) const [inline]

Value y const.

Referenced by numeric::operator>>().

template<typename T>
Value& numeric::xyzTriple< T >::z ( ) [inline]

Value z.

template<typename T>
Value const& numeric::xyzTriple< T >::z ( ) const [inline]

Value z const.

Referenced by numeric::operator>>().

template<typename T>
void numeric::xyzTriple< T >::z ( Value const &  z_a) [inline]

z assignment

template<typename T>
xyzTriple& numeric::xyzTriple< T >::zero ( ) [inline]

Zero.


Friends And Related Function Documentation

template<typename T>
void add ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > &  r 
) [friend]
template<typename T>
void add ( xyzTriple< T > const &  v,
Value const &  t,
xyzTriple< T > &  r 
) [friend]

Add: xyzTriple + Value.

template<typename T>
void add ( Value const &  t,
xyzTriple< T > const &  v,
xyzTriple< T > &  r 
) [friend]

Add: Value + xyzTriple.

template<typename T>
Value angle_of ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Angle between two vectors (in radians on [ 0, pi ])

Referenced by numeric::angle_of().

template<typename T>
Value angle_of ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c 
) [friend]

Angle formed by three consecutive points (in radians on [ 0, pi ])

Note:
For points a, b, c, the angle is the angle between the vectors a - b and c - b in other words, the positive angle about b from a to c
template<typename T>
xyzTriple center ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Center of 2 xyzTriples.

template<typename T>
xyzTriple center ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c 
) [friend]

Center of 3 xyzTriples.

template<typename T>
void center ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > &  m 
) [friend]

Center of 2 xyzTriples: Return via argument (slightly faster)

template<typename T>
xyzTriple center ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c,
xyzTriple< T > const &  d 
) [friend]

Center of 4 xyzTriples.

template<typename T>
void center ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c,
xyzTriple< T > &  m 
) [friend]

Center of 3 xyzTriples: Return via argument (slightly faster)

template<typename T>
void center ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c,
xyzTriple< T > const &  d,
xyzTriple< T > &  m 
) [friend]

Center of 4 xyzTriples: Return via argument (slightly faster)

template<typename T>
Value cos_of ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Cosine of angle between two vectors.

Referenced by numeric::cos_of(), and numeric::sin_of().

template<typename T>
Value cos_of ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c 
) [friend]

Cosine of angle formed by three consecutive points.

Note:
For points a, b, c, the angle is the angle between the vectors a - b and c - b in other words, the positive angle about b from a to c.
template<typename T>
xyzTriple cross ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Cross product.

template<typename T>
void cross ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > &  c 
) [friend]

Cross product: Return via argument (slightly faster)

template<typename T>
xyzTriple cross_product ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Cross product.

template<typename T>
void cross_product ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > &  c 
) [friend]

Cross product: Return via argument (slightly faster)

template<typename T>
Value distance ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Distance.

template<typename T>
Value distance_squared ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Distance squared.

template<typename T>
void divide ( xyzTriple< T > const &  v,
Value const &  t,
xyzTriple< T > &  r 
) [friend]

Divide: xyzTriple / Value.

template<typename T>
Value dot ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Dot product.

template<typename T>
Value dot_product ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Dot product.

template<typename T>
bool equal_length ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Equal length?

template<typename T>
Value inner_product ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Inner product ( == dot product )

template<typename T>
xyzTriple max ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

xyzTriple with max coordinates of two xyzTriples

template<typename T>
void midpoint ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > &  m 
) [friend]

Midpoint of 2 xyzTriples: Return via argument (slightly faster)

template<typename T>
xyzTriple midpoint ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Midpoint of 2 xyzTriples.

template<typename T>
xyzTriple min ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

xyzTriple with min coordinates of two xyzTriples

template<typename T>
void multiply ( xyzTriple< T > const &  v,
Value const &  t,
xyzTriple< T > &  r 
) [friend]

Multiply: xyzTriple * Value.

template<typename T>
void multiply ( Value const &  t,
xyzTriple< T > const &  v,
xyzTriple< T > &  r 
) [friend]

Multiply: Value * xyzTriple.

template<typename T>
bool not_equal_length ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Not equal length?

template<typename T>
bool operator!= ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
bool operator!= ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple != Value

template<typename T>
bool operator!= ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value != xyzTriple.

template<typename T>
xyzTriple operator* ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple * Value

template<typename T>
xyzTriple operator* ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value * xyzTriple.

template<typename T>
xyzTriple operator+ ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
xyzTriple operator+ ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value + xyzTriple.

template<typename T>
xyzTriple operator+ ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple + Value

template<typename T>
xyzTriple operator- ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value - xyzTriple.

template<typename T>
xyzTriple operator- ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
xyzTriple operator- ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple - Value

template<typename T>
xyzTriple operator/ ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple / Value

template<typename T>
bool operator< ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple < Value

template<typename T>
bool operator< ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

xyzTriple < xyzTriple: Lexicographic order

template<typename T>
bool operator< ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value < xyzTriple.

template<typename T>
bool operator<= ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
bool operator<= ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple <= Value

template<typename T>
bool operator<= ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value <= xyzTriple.

template<typename T>
bool operator== ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
bool operator== ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value == xyzTriple.

template<typename T>
bool operator== ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple == Value

template<typename T>
bool operator> ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple > Value

template<typename T>
bool operator> ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
bool operator> ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value > xyzTriple.

template<typename T>
bool operator>= ( xyzTriple< T > const &  v,
Value const &  t 
) [friend]

xyzTriple >= Value

template<typename T>
bool operator>= ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]
template<typename T>
bool operator>= ( Value const &  t,
xyzTriple< T > const &  v 
) [friend]

Value >= xyzTriple.

template<typename T>
Value sin_of ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b 
) [friend]

Sine of angle between two vectors.

Referenced by numeric::sin_of().

template<typename T>
Value sin_of ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > const &  c 
) [friend]

Sine of angle formed by three consecutive points.

Note:
For points a, b, c, the angle is the angle between the vectors a - b and c - b in other words, the positive angle about b from a to c
template<typename T>
void subtract ( xyzTriple< T > const &  a,
xyzTriple< T > const &  b,
xyzTriple< T > &  r 
) [friend]

Subtract: xyzTriple - xyzTriple.

template<typename T>
void subtract ( Value const &  t,
xyzTriple< T > const &  v,
xyzTriple< T > &  r 
) [friend]

Subtract: Value - xyzTriple.

template<typename T>
void subtract ( xyzTriple< T > const &  v,
Value const &  t,
xyzTriple< T > &  r 
) [friend]

Subtract: xyzTriple - Value.

template<typename T>
friend class xyzTriple [friend]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines