## RiAffineTMatrix3

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 RiAffineTMatrix3
{
 public: friend RiTMatrix3Factory; RiAffineTMatrix3(); RiVector3 ApplyLocation( const RiVector3& v ) const; RiVector3 ApplyDirection( const RiVector3& v ) const; RiVector3 ApplyNormal( const RiVector3& v ) const; RiVector3 ApplyInverseLocation( const RiVector3& v ) const; RiVector3 ApplyInverseDirection( const RiVector3& v ) const; RiVector3 ApplyInverseNormal( const RiVector3& v ) const; RiAffineTMatrix3 operator*( const RiAffineTMatrix3& ) const; RiReal GetData( int row, int col ) const; RiReal GetDeterminant() const; protected: RiReal data[ 3][4]; RiReal idata[ 3][4];
}; // RiAffineTMatrix3

#### 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 03 | | 10 11 12 13 | | 20 21 22 23 | | 30 31 32 33 | For affine transforms, row 3 is implictly 0 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

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

#### friend RiTMatrix3Factory;

nd RiTMatrix3Factory;No documentation available.

```    friend RiTMatrix3Factory;
```

#### RiAffineTMatrix3();

fineTMatrix3();No documentation available.

```    RiAffineTMatrix3();
```

#### RiVector3 ApplyLocation( const RiVector3& v ) const;

changes a location (point)

```    RiVector3 ApplyLocation( const RiVector3& v ) const;
```

#### RiVector3 ApplyDirection( const RiVector3& v ) const;

changes a direction (offset)

```    RiVector3 ApplyDirection( const RiVector3& v ) const;
```

#### RiVector3 ApplyNormal( const RiVector3& v ) const;

changes a perpendicular (offset)

```    RiVector3 ApplyNormal( const RiVector3& v ) const;
```

#### RiVector3 ApplyInverseLocation( const RiVector3& v ) const;

changes a location (point)

```    RiVector3 ApplyInverseLocation( const RiVector3& v ) const;
```

#### RiVector3 ApplyInverseDirection( const RiVector3& v ) const;

changes a direction (offset)

```    RiVector3 ApplyInverseDirection( const RiVector3& v ) const;
```

#### RiVector3 ApplyInverseNormal( const RiVector3& v ) const;

changes a perpendicular (offset)

```    RiVector3 ApplyInverseNormal( const RiVector3& v ) const;
```

#### RiAffineTMatrix3 operator*( const RiAffineTMatrix3& ) const;

```    RiAffineTMatrix3 operator*( const RiAffineTMatrix3& ) const;
```

#### RiReal GetData( int row, int col ) const;

```    RiReal GetData( int row, int col ) const;
```

#### RiReal GetDeterminant() const;

```    RiReal GetDeterminant() const;
```

#### RiReal data[3][4];

al data[3][4];No documentation available.

```    RiReal data[3][4];
```

#### RiReal idata[3][4];

al idata[3][4];No documentation available.

```    RiReal idata[3][4];
```

### All Members

public:
friend RiTMatrix3Factory;
RiVector3 ApplyLocation( const RiVector3& v ) const;
RiVector3 ApplyDirection( const RiVector3& v ) const;
RiVector3 ApplyNormal( const RiVector3& v ) const;
RiVector3 ApplyInverseLocation( const RiVector3& v ) const;
RiVector3 ApplyInverseDirection( const RiVector3& v ) const;
RiVector3 ApplyInverseNormal( const RiVector3& v ) const;
RiAffineTMatrix3 operator*( const RiAffineTMatrix3& ) const;
RiReal GetData( int row, int col ) const;
RiReal GetDeterminant() const;
protected:
RiReal data[3][4];
RiReal idata[3][4];

### 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:07 2000 .