RiAffineTMatrix2

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

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

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 .