The linear transform functions all deal with objects whose type is
** Transform**.

#define Transform_elem( transform, i, j )

- Is used to set or retrieve the value of the
'th row and`i`'th column of the transform, where .`j`

public void make_identity_transform( Transform *transform )

- Creates a four by four identity transform.

public void transform_point( Transform *transform, Real x, Real y, Real z, Real *x_trans, Real *y_trans, Real *z_trans )

- Transforms a three dimensional point by the given transform,
passing back the three transformed coordinates.

public void transform_vector( Transform *transform, Real x, Real y, Real z, Real *x_trans, Real *y_trans, Real *z_trans )

- Transforms a three dimensional vector by the given transform,
passing back the three transformed coordinates. The only difference
between transforming a point and a vector is that transforming a
vector does not involve the translational component of the transform.

public void inverse_transform_point( Transform *transform, Real x, Real y, Real z, Real *x_trans, Real *y_trans, Real *z_trans )

- Assuming the transform is an orthogonal transform (no shear
components), the point is transformed by the inverse of the
transform.

public void inverse_transform_vector( Transform *transform, Real x, Real y, Real z, Real *x_trans, Real *y_trans, Real *z_trans )

- Assuming the transform is an orthogonal transform (no shear
components), the vector is transformed by the inverse of the
transform.

public void concat_transforms( Transform *result, Transform *t1, Transform *t2 )

- Multiplies the transform
by the transform`t2`, storing the product in`t1`. Transforming a point by`result`is equivalent to transforming the point by`result`, then transforming the result by`t1`.`t2`

Fri Feb 17 15:37:42 EST 1995