RiAffineTMatrix2

An abstract class that represents a homegeneous transform matrix and its inverse.

[ Geometry | Source | Search | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

DESCRIPTION
WARNING

Class Summary

class RiAffineTMatrix2
{
public:
friend RiTMatrix2Factory;
RiAffineTMatrix2();
RiVector2 ApplyLocation( const RiVector2& v ) const;
RiVector2 ApplyDirection( const RiVector2& v ) const;
RiVector2 ApplyNormal( const RiVector2& v ) const;
RiVector2 ApplyInverseLocation( const RiVector2& v ) const;
RiVector2 ApplyInverseDirection( const RiVector2& v ) const;
RiVector2 ApplyInverseNormal( const RiVector2& v ) const;
RiAffineTMatrix2 operator*( const RiAffineTMatrix2& ) const;
RiReal GetData( int row, int col ) const;
protected:
}; // RiAffineTMatrix2


DESCRIPTION

This class is the base class for all transforms. It uses column vectors and right-multiplication, so vnew = M*vold. Individual entries are gotten via the getData() member, which takes two indices and has the following pattern for rows and colums- getData(row,col): | 00 01 02 | | 10 11 12 | | 20 21 22 | For affine transforms, row 2 is implictly 0 0 1. There are three types of transforms for three types of data: locations, directions, and normals. These get more efficient for more and more specific vector types.


WARNING

RiAffineTMatrix2 currently stores 24 floats, so something such as a compact translate matrix cannot be derived effectively.

friend RiTMatrix2Factory;

    friend RiTMatrix2Factory;

RiAffineTMatrix2();

    RiAffineTMatrix2();

RiVector2 ApplyLocation( const RiVector2& v ) const;

changes a location (point)

    RiVector2 ApplyLocation( const RiVector2& v ) const;

RiVector2 ApplyDirection( const RiVector2& v ) const;

changes a direction (offset)

    RiVector2 ApplyDirection( const RiVector2& v ) const;

RiVector2 ApplyNormal( const RiVector2& v ) const;

changes a perpendicular (offset)

    RiVector2 ApplyNormal( const RiVector2& v ) const;

RiVector2 ApplyInverseLocation( const RiVector2& v ) const;

changes a location (point)

    RiVector2 ApplyInverseLocation( const RiVector2& v ) const;

RiVector2 ApplyInverseDirection( const RiVector2& v ) const;

changes a direction (offset)

    RiVector2 ApplyInverseDirection( const RiVector2& v ) const;

RiVector2 ApplyInverseNormal( const RiVector2& v ) const;

changes a perpendicular (offset)

    RiVector2 ApplyInverseNormal( const RiVector2& v ) const;

RiAffineTMatrix2 operator*( const RiAffineTMatrix2& ) const;

    RiAffineTMatrix2 operator*( const RiAffineTMatrix2& ) const;

RiReal GetData( int row, int col ) const;

    RiReal GetData( int row, int col ) const;

All Members

public:
friend RiTMatrix2Factory;
RiVector2 ApplyLocation( const RiVector2& v ) const;
RiVector2 ApplyDirection( const RiVector2& v ) const;
RiVector2 ApplyNormal( const RiVector2& v ) const;
RiVector2 ApplyInverseLocation( const RiVector2& v ) const;
RiVector2 ApplyInverseDirection( const RiVector2& v ) const;
RiVector2 ApplyInverseNormal( const RiVector2& v ) const;
RiAffineTMatrix2 operator*( const RiAffineTMatrix2& ) const;
RiReal GetData( int row, int col ) const;
protected:

Ancestors

Class does not inherit from any other class.


Descendants

Class is not inherited by any others.


Generated from source by the Cocoon utilities on Fri Feb 25 15:15:06 2000 .