## go-matrix3x3

go-matrix3x3

## Functions

void | go_matrix3x3_from_euler ()
void | go_matrix3x3_from_euler_transposed ()
void | go_matrix3x3_multiply ()
void | go_matrix3x3_to_euler ()
void | go_matrix3x3_transform ()

## Description

## Functions

### go_matrix3x3_from_euler ()

    void
    go_matrix3x3_from_euler (GOMatrix3x3 *mat,
                             double Psi,
                             double Theta,
                             double Phi);

Initializes `mat` from Euler angles (ZXZ convention).

#### Parameters

mat | GOMatrix3x3. | [out]
Psi | first Euler angle |
Theta | second Euler angle |
Phi | third Euler angle |

### go_matrix3x3_from_euler_transposed ()

    void
    go_matrix3x3_from_euler_transposed (GOMatrix3x3 *mat,
                                        double Psi,
                                        double Theta,
                                        double Phi);

Initializes `mat` from Euler angles (ZXZ convention) and transposes it.

#### Parameters

mat | GOMatrix3x3. | [out]
Psi | first Euler angle |
Theta | second Euler angle |
Phi | third Euler angle |

### go_matrix3x3_multiply ()

    void
    go_matrix3x3_multiply (GOMatrix3x3 *dest,
                           GOMatrix3x3 const *src1,
                           GOMatrix3x3 const *src2);

Multiplies `src1` by `src2` and stores the result in `dest` . `dest` can be either `src1` or `src2` .

#### Parameters

dest | GOMatrix3x3. | [out]
src1 | GOMatrix3x3 |
src2 | GOMatrix3x3 |

### go_matrix3x3_to_euler ()

    void
    go_matrix3x3_to_euler (GOMatrix3x3 const *mat,
                           double *Psi,
                           double *Theta,
                           double *Phi);

Extracts Euler angles (ZXZ convention) from `mat` .

#### Parameters

mat | GOMatrix3x3 |
Psi | first Euler angle. | [out]
Theta | second Euler angle. | [out]
Phi | third Euler angle. | [out]

### go_matrix3x3_transform ()

    void
    go_matrix3x3_transform (GOMatrix3x3 *mat,
                            double xo,
                            double yo,
                            double zo,
                            double *x,
                            double *y,
                            double *z);

Transforms a 3D point (`xo` , `yo` , `zo` ) using the matrix `mat` .

#### Parameters

mat | GOMatrix3x3 |
xo | x coordinate |
yo | y coordinate |
zo | z coordinate |
x | transformed x coordinate. | [out]
y | transformed y coordinate. | [out]
z | transformed z coordinate. | [out]