lux::Transform Class Reference

#include <transform.h>

Collaboration diagram for lux::Transform:
[legend]

List of all members.

Public Member Functions

 Transform ()
 Transform (float mat[4][4])
 Transform (const boost::shared_ptr< Matrix4x4 > &mat)
 Transform (const boost::shared_ptr< Matrix4x4 > &mat, const boost::shared_ptr< Matrix4x4 > &minv)
Transform GetInverse () const
boost::shared_ptr< Matrix4x4GetMatrix () const
bool HasScale () const
Point operator() (const Point &pt) const
void operator() (const Point &pt, Point *ptrans) const
Vector operator() (const Vector &v) const
void operator() (const Vector &v, Vector *vt) const
Normal operator() (const Normal &) const
void operator() (const Normal &, Normal *nt) const
Ray operator() (const Ray &r) const
void operator() (const Ray &r, Ray *rt) const
BBox operator() (const BBox &b) const
Transform operator* (const Transform &t2) const
bool SwapsHandedness () const

Private Attributes

boost::shared_ptr< Matrix4x4m
boost::shared_ptr< Matrix4x4mInv

Static Private Attributes

static const boost::shared_ptr
< Matrix4x4
MAT_IDENTITY

Friends

ostream & operator<< (ostream &, const Transform &)

Detailed Description

Definition at line 36 of file transform.h.


Constructor & Destructor Documentation

lux::Transform::Transform (  )  [inline]

Definition at line 39 of file transform.h.

References m, MAT_IDENTITY, and mInv.

Referenced by operator()(), and operator*().

lux::Transform::Transform ( float  mat[4][4]  )  [inline]

Definition at line 43 of file transform.h.

lux::Transform::Transform ( const boost::shared_ptr< Matrix4x4 > &  mat  )  [inline]

Definition at line 51 of file transform.h.

References m.

lux::Transform::Transform ( const boost::shared_ptr< Matrix4x4 > &  mat,
const boost::shared_ptr< Matrix4x4 > &  minv 
) [inline]

Definition at line 55 of file transform.h.

References m, and mInv.


Member Function Documentation

Transform lux::Transform::GetInverse (  )  const [inline]
boost::shared_ptr<Matrix4x4> lux::Transform::GetMatrix (  )  const [inline]

Definition at line 64 of file transform.h.

References m.

Referenced by lux::MotionSystem::MotionSystem().

bool lux::Transform::HasScale (  )  const

Definition at line 142 of file transform.cpp.

Referenced by lux::Light::Light().

BBox lux::Transform::operator() ( const BBox b  )  const
void lux::Transform::operator() ( const Ray r,
Ray rt 
) const [inline]

Definition at line 101 of file transform.h.

References lux::Ray::d, lux::Ray::maxt, lux::Ray::mint, lux::Ray::o, and lux::Ray::time.

Ray lux::Transform::operator() ( const Ray r  )  const [inline]

Definition at line 92 of file transform.h.

References lux::Ray::d, lux::Ray::maxt, lux::Ray::mint, lux::Ray::o, and lux::Ray::time.

void lux::Transform::operator() ( const Normal n,
Normal nt 
) const [inline]

Definition at line 68 of file transform.h.

Normal lux::Transform::operator() ( const Normal n  )  const [inline]

Definition at line 61 of file transform.h.

References m, mInv, and Transform().

void lux::Transform::operator() ( const Vector v,
Vector vt 
) const [inline]

Definition at line 53 of file transform.h.

Vector lux::Transform::operator() ( const Vector v  )  const [inline]

Definition at line 46 of file transform.h.

void lux::Transform::operator() ( const Point pt,
Point ptrans 
) const [inline]

Definition at line 36 of file transform.h.

Point lux::Transform::operator() ( const Point pt  )  const [inline]

Definition at line 24 of file transform.h.

Transform lux::Transform::operator* ( const Transform t2  )  const

Definition at line 163 of file transform.cpp.

References m, mInv, lux::Matrix4x4::Mul(), and Transform().

bool lux::Transform::SwapsHandedness (  )  const [inline]

Definition at line 76 of file transform.h.


Friends And Related Function Documentation

ostream& operator<< ( ostream &  os,
const Transform t 
) [friend]

Definition at line 34 of file transform.cpp.


Member Data Documentation

boost::shared_ptr<Matrix4x4> lux::Transform::m [private]

Definition at line 81 of file transform.h.

Referenced by GetMatrix(), operator()(), operator*(), lux::operator<<(), and Transform().

const boost::shared_ptr< Matrix4x4 > lux::Transform::MAT_IDENTITY [static, private]
Initial value:
        boost::shared_ptr<Matrix4x4>(new Matrix4x4())

Definition at line 83 of file transform.h.

Referenced by Transform().

boost::shared_ptr<Matrix4x4> lux::Transform::mInv [private]

Definition at line 81 of file transform.h.

Referenced by operator()(), operator*(), and Transform().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208