moab
|
Homogeneous coordinate vector. More...
#include <HomXform.hpp>
Public Member Functions | |
HomCoord () | |
constructors | |
HomCoord (const int coords[], const int num_coords=4) | |
HomCoord (const int coord0, const int coord1, const int coord2, const int coord3) | |
HomCoord (const int coord0, const int coord1, const int coord2) | |
HomCoord (const HomCoord &coord) | |
void | set (const int coords[]) |
set function | |
void | set (const int i, const int j, const int k, const int h=1) |
const int * | hom_coord () const |
get function | |
int | i () const |
parameter-based access functions | |
int | j () const |
int | k () const |
int | h () const |
int | length_squared () const |
squared length | |
int | length () const |
length | |
void | normalize () |
normalize | |
HomCoord & | operator*= (const HomXform &rhs2) |
operators | |
HomCoord | operator* (const HomXform &rhs2) const |
HomCoord & | operator*= (const int mult) |
HomCoord | operator* (const int mult) const |
HomCoord & | operator/= (const HomXform &rhs2) |
HomCoord | operator/ (const HomXform &rhs2) const |
HomCoord & | operator/= (const int mult) |
HomCoord | operator/ (const int mult) const |
HomCoord & | operator+= (const HomCoord &rhs1) |
HomCoord | operator+ (const HomCoord &rhs1) const |
HomCoord & | operator-= (const HomCoord &rhs1) |
HomCoord | operator- (const HomCoord &rhs1) const |
HomCoord & | operator= (const HomCoord &rhs) |
int | operator% (const HomCoord &rhs) const |
HomCoord | operator* (const HomCoord &rhs) const |
HomCoord & | operator*= (const HomCoord &rhs) |
bool | operator== (const HomCoord &rhs1) const |
bool | operator!= (const HomCoord &rhs1) const |
bool | operator>= (const HomCoord &rhs1) const |
bool | operator<= (const HomCoord &rhs1) const |
bool | operator> (const HomCoord &rhs1) const |
bool | operator< (const HomCoord &rhs1) const |
int | operator[] (const int ¶m) const |
int & | operator[] (const int ¶m) |
Static Public Attributes | |
static HomCoord | unitv [3] = {HomCoord(1,0,0), HomCoord(0,1,0), HomCoord(0,0,1)} |
static HomCoord | IDENTITY |
Private Attributes | |
int | homCoord [4] |
coordinate data | |
Friends | |
class | HomXform |
Homogeneous coordinate vector.
Definition at line 43 of file HomXform.hpp.
moab::HomCoord::HomCoord | ( | ) | [inline] |
moab::HomCoord::HomCoord | ( | const int | coords[], |
const int | num_coords = 4 |
||
) | [inline] |
Definition at line 186 of file HomXform.hpp.
moab::HomCoord::HomCoord | ( | const int | coord0, |
const int | coord1, | ||
const int | coord2, | ||
const int | coord3 | ||
) | [inline] |
moab::HomCoord::HomCoord | ( | const int | coord0, |
const int | coord1, | ||
const int | coord2 | ||
) | [inline] |
moab::HomCoord::HomCoord | ( | const HomCoord & | coord | ) | [inline] |
Definition at line 210 of file HomXform.hpp.
{ #if defined(__INTEL_COMPILER) && (__INTEL_COMPILER < 1310) // Hack Intel compiler 12 issues with -O2 optimization int coord0 = coords[0]; int coord1 = coords[1]; int coord2 = coords[2]; int coord3 = coords[3]; homCoord[0] = coord0; homCoord[1] = coord1; homCoord[2] = coord2; homCoord[3] = coord3; #else homCoord[0] = coords[0]; homCoord[1] = coords[1]; homCoord[2] = coords[2]; homCoord[3] = coords[3]; #endif }
int moab::HomCoord::h | ( | ) | const [inline] |
Definition at line 82 of file HomXform.hpp.
{return homCoord[3];}
const int* moab::HomCoord::hom_coord | ( | ) | const [inline] |
int moab::HomCoord::i | ( | ) | const [inline] |
int moab::HomCoord::j | ( | ) | const [inline] |
Definition at line 80 of file HomXform.hpp.
{return homCoord[1];}
int moab::HomCoord::k | ( | ) | const [inline] |
Definition at line 81 of file HomXform.hpp.
{return homCoord[2];}
int moab::HomCoord::length | ( | ) | const [inline] |
int moab::HomCoord::length_squared | ( | ) | const [inline] |
void moab::HomCoord::normalize | ( | ) | [inline] |
bool moab::HomCoord::operator!= | ( | const HomCoord & | rhs1 | ) | const [inline] |
int moab::HomCoord::operator% | ( | const HomCoord & | rhs | ) | const [inline] |
Definition at line 278 of file HomXform.hpp.
Definition at line 352 of file HomXform.hpp.
{ return HomCoord( // homCoord[0]*rhs2[4*0+0] + homCoord[1]*rhs2[4*1+0] + // homCoord[2]*rhs2[4*2+0] + homCoord[3]*rhs2[4*3+0], homCoord[0]*rhs2.xForm[0] + homCoord[1]*rhs2.xForm[4] + homCoord[2]*rhs2.xForm[8] + homCoord[3]*rhs2.xForm[12], // homCoord[0]*rhs2.xForm[4*0+1] + homCoord[1]*rhs2.xForm[4*1+1] + // homCoord[2]*rhs2.xForm[4*2+1] + homCoord[3]*rhs2.xForm[4*3+1], homCoord[0]*rhs2.xForm[1] + homCoord[1]*rhs2.xForm[5] + homCoord[2]*rhs2.xForm[9] + homCoord[3]*rhs2.xForm[13], // homCoord[0]*rhs2.xForm[4*0+2] + homCoord[1]*rhs2.xForm[4*1+2] + // homCoord[2]*rhs2.xForm[4*2+2] + homCoord[3]*rhs2.xForm[4*3+2], homCoord[0]*rhs2.xForm[2] + homCoord[1]*rhs2.xForm[6] + homCoord[2]*rhs2.xForm[10] + homCoord[3]*rhs2.xForm[14], // homCoord[0]*rhs2.xForm[4*0+3] + homCoord[1]*rhs2.xForm[4*1+3] + // homCoord[2]*rhs2.xForm[4*2+3] + homCoord[3]*rhs2.xForm[4*3+3] homCoord[0]*rhs2.xForm[3] + homCoord[1]*rhs2.xForm[7] + homCoord[2]*rhs2.xForm[11] + homCoord[3]*rhs2.xForm[15] ); }
HomCoord moab::HomCoord::operator* | ( | const int | mult | ) | const [inline] |
Definition at line 403 of file HomXform.hpp.
operators
Definition at line 377 of file HomXform.hpp.
{ *this = HomCoord( // homCoord[0]*rhs2.xForm[4*0+0] + homCoord[1]*rhs2.xForm[4*1+0] + // homCoord[2]*rhs2.xForm[4*2+0] + homCoord[3]*rhs2.xForm[4*3+0], homCoord[0]*rhs2.xForm[0] + homCoord[1]*rhs2.xForm[4] + homCoord[2]*rhs2.xForm[8] + homCoord[3]*rhs2.xForm[12], // homCoord[0]*rhs2.xForm[4*0+1] + homCoord[1]*rhs2.xForm[4*1+1] + // homCoord[2]*rhs2.xForm[4*2+1] + homCoord[3]*rhs2.xForm[4*3+1], homCoord[0]*rhs2.xForm[1] + homCoord[1]*rhs2.xForm[5] + homCoord[2]*rhs2.xForm[9] + homCoord[3]*rhs2.xForm[13], // homCoord[0]*rhs2.xForm[4*0+2] + homCoord[1]*rhs2.xForm[4*1+2] + // homCoord[2]*rhs2.xForm[4*2+2] + homCoord[3]*rhs2.xForm[4*3+2], homCoord[0]*rhs2.xForm[2] + homCoord[1]*rhs2.xForm[6] + homCoord[2]*rhs2.xForm[10] + homCoord[3]*rhs2.xForm[14], // homCoord[0]*rhs2.xForm[4*0+3] + homCoord[1]*rhs2.xForm[4*1+3] + // homCoord[2]*rhs2.xForm[4*2+3] + homCoord[3]*rhs2.xForm[4*3+3] homCoord[0]*rhs2.xForm[3] + homCoord[1]*rhs2.xForm[7] + homCoord[2]*rhs2.xForm[11] + homCoord[3]*rhs2.xForm[15] ); return *this; }
HomCoord & moab::HomCoord::operator*= | ( | const int | mult | ) | [inline] |
Definition at line 408 of file HomXform.hpp.
Definition at line 442 of file HomXform.hpp.
{ return HomCoord(*this) += rhs2; }
Definition at line 447 of file HomXform.hpp.
Definition at line 429 of file HomXform.hpp.
{ return HomCoord(*this) -= rhs2; }
Definition at line 434 of file HomXform.hpp.
Definition at line 455 of file HomXform.hpp.
{ return HomCoord(*this) /= rhs2; }
HomCoord moab::HomCoord::operator/ | ( | const int | mult | ) | const [inline] |
Definition at line 460 of file HomXform.hpp.
{ HomXform inv = rhs2.inverse(); *this *= inv; return *this; }
HomCoord & moab::HomCoord::operator/= | ( | const int | mult | ) | [inline] |
Definition at line 421 of file HomXform.hpp.
bool moab::HomCoord::operator< | ( | const HomCoord & | rhs1 | ) | const [inline] |
bool moab::HomCoord::operator<= | ( | const HomCoord & | rhs1 | ) | const [inline] |
bool moab::HomCoord::operator== | ( | const HomCoord & | rhs1 | ) | const [inline] |
bool moab::HomCoord::operator> | ( | const HomCoord & | rhs1 | ) | const [inline] |
bool moab::HomCoord::operator>= | ( | const HomCoord & | rhs1 | ) | const [inline] |
int moab::HomCoord::operator[] | ( | const int & | param | ) | const [inline] |
Definition at line 467 of file HomXform.hpp.
{ return homCoord[param]; }
int & moab::HomCoord::operator[] | ( | const int & | param | ) | [inline] |
Definition at line 472 of file HomXform.hpp.
{ return homCoord[param]; }
void moab::HomCoord::set | ( | const int | coords[] | ) | [inline] |
void moab::HomCoord::set | ( | const int | i, |
const int | j, | ||
const int | k, | ||
const int | h = 1 |
||
) | [inline] |
friend class HomXform [friend] |
Definition at line 56 of file HomXform.hpp.
int moab::HomCoord::homCoord[4] [private] |
coordinate data
Definition at line 52 of file HomXform.hpp.
HomCoord moab::HomCoord::IDENTITY [static] |
Definition at line 59 of file HomXform.hpp.
HomCoord moab::HomCoord::unitv = {HomCoord(1,0,0), HomCoord(0,1,0), HomCoord(0,0,1)} [static] |
Definition at line 58 of file HomXform.hpp.