VIPER REFERENCE MANUAL


NAME
iflXYZC - x,y,z,c 4-tuple template class with aritmetic operations

HEADER FILE
#include <ifl/iflCoord.h>

PUBLIC METHOD SUMMARY

   Constructing
template<class T> iflXYZC (  );
template<class T> iflXYZC ( s);
template<class T> iflXYZC ( x, T y, T z, T c);
template<class T> iflXYZC ( const iflXYZC& that);

   Initializing
iflXYZC& init ( X, T Y, T Z, T C);

   Assignment operators
inline iflXYZC& operator= ( const iflXYZC& that);
inline iflXYZC& operator+= ( const iflXYZC& that);
inline iflXYZC& operator-= ( const iflXYZC& that);
inline iflXYZC& operator*= ( const iflXYZC& that);
inline iflXYZC& operator/= ( const iflXYZC& that);
inline iflXYZC& operator%= ( const iflXYZC& that);
inline iflXYZC& operator&= ( const iflXYZC& that);
inline iflXYZC& operator|= ( const iflXYZC& that);

   Comparison operators
inline int operator== ( const iflXYZC& that) const;
inline int operator!= ( const iflXYZC& that) const;
inline int operator<= ( const iflXYZC& that) const;
inline int operator>= ( const iflXYZC& that) const;
inline int operator< ( const iflXYZC& that) const;
inline int operator> ( const iflXYZC& that) const;

   Componentwise arithmetic operators
inline iflXYZC operator+ ( const iflXYZC& that) const;
inline iflXYZC operator- ( const iflXYZC& that) const;
inline iflXYZC operator* ( const iflXYZC& that) const;
inline iflXYZC operator/ ( const iflXYZC& that) const;
inline iflXYZC operator% ( const iflXYZC& that) const;
inline iflXYZC operator& ( const iflXYZC& that) const;
inline iflXYZC operator| ( const iflXYZC& that) const;

   Indexed member access
T& operator[] ( iflAxis axis);

PUBLIC MEMBER SUMMARY
T x, y, z, c;

CLASS DESCRIPTION
This is a simple template class to hold (x,y,z,c) 4-tuples. It also defines a number of convenience operators.

METHOD DESCRIPTIONS

   iflXYZC()
template<class T> iflXYZC (  );
template<class T> iflXYZC ( s);
template<class T> iflXYZC ( x, T y, T z, T c);
template<class T> iflXYZC ( const iflXYZC& that);

The first constructor creates an uninitialized object. The remaining constructors create an iflXYZC initialized from either a scalar value, s, (assigned to all members), a triplet of values, x, y, z and c (assigned to each corresponding member) or another iflXYZC object, that, of the same type (copied to the new object).

   Assignment operators
inline iflXYZC& operator= ( const iflXYZC& that);
inline iflXYZC& operator+= ( const iflXYZC& that);
inline iflXYZC& operator-= ( const iflXYZC& that);
inline iflXYZC& operator*= ( const iflXYZC& that);
inline iflXYZC& operator/= ( const iflXYZC& that);
inline iflXYZC& operator%= ( const iflXYZC& that);
inline iflXYZC& operator&= ( const iflXYZC& that);
inline iflXYZC& operator|= ( const iflXYZC& that);

These methods perform standard assignment operators between each member of this object and the object indicated by that.

   Comparison operators
inline int operator== ( const iflXYZC& that) const;
inline int operator!= ( const iflXYZC& that) const;
inline int operator<= ( const iflXYZC& that) const;
inline int operator>= ( const iflXYZC& that) const;
inline int operator< ( const iflXYZC& that) const;
inline int operator> ( const iflXYZC& that) const;

These method performs standard comparison operators between each member of this object and the object indicated by that.

   Componentwise arithmetic operators
inline iflXYZC operator+ ( const iflXYZC& that) const;
inline iflXYZC operator- ( const iflXYZC& that) const;
inline iflXYZC operator* ( const iflXYZC& that) const;
inline iflXYZC operator/ ( const iflXYZC& that) const;
inline iflXYZC operator% ( const iflXYZC& that) const;
inline iflXYZC operator& ( const iflXYZC& that) const;
inline iflXYZC operator| ( const iflXYZC& that) const;

These method performs standard aritmetic and bit operators between each member of this object and the object indicated by that.

   init()
iflXYZC& init ( X, T Y, T Z, T C);

The iflXYZC object's x, y, z, c members are initialized from a 4-tuple of values, X, Y, Z and C, respectively.

   operator[]()
T& operator[] ( iflAxis axis);

This method accesses the members of this object as if it were stored as a four element array with x at index 0 and c at index 3. These offsets are also encoded symbolically using the iflAxis enum as iflX, iflY , iflZ and iflC.

MEMBER DESCRIPTIONS

   x, y, z, c
T x, y, z, c;

The 4-tuple of values of type T stored in an iflXYZC<T> object.