# Matrix Mathematics

## Functions

void | lib3ds_matrix_zero (Lib3dsMatrix m)
void | lib3ds_matrix_identity (Lib3dsMatrix m)
void | lib3ds_matrix_copy (Lib3dsMatrix dest, Lib3dsMatrix src)
void | lib3ds_matrix_neg (Lib3dsMatrix m)
void | lib3ds_matrix_abs (Lib3dsMatrix m)
void | lib3ds_matrix_transpose (Lib3dsMatrix m)
void | lib3ds_matrix_add (Lib3dsMatrix m, Lib3dsMatrix a, Lib3dsMatrix b)
void | lib3ds_matrix_sub (Lib3dsMatrix m, Lib3dsMatrix a, Lib3dsMatrix b)
void | lib3ds_matrix_mul (Lib3dsMatrix m, Lib3dsMatrix a, Lib3dsMatrix b)
void | lib3ds_matrix_scalar (Lib3dsMatrix m, Lib3dsFloat k)
Lib3dsFloat | lib3ds_matrix_det (Lib3dsMatrix m)
void | lib3ds_matrix_adjoint (Lib3dsMatrix m)
Lib3dsBool | lib3ds_matrix_inv (Lib3dsMatrix m)
void | lib3ds_matrix_translate_xyz (Lib3dsMatrix m, Lib3dsFloat x, Lib3dsFloat y, Lib3dsFloat z)
void | lib3ds_matrix_translate (Lib3dsMatrix m, Lib3dsVector t)
void | lib3ds_matrix_scale_xyz (Lib3dsMatrix m, Lib3dsFloat x, Lib3dsFloat y, Lib3dsFloat z)
void | lib3ds_matrix_scale (Lib3dsMatrix m, Lib3dsVector s)
void | lib3ds_matrix_rotate_x (Lib3dsMatrix m, Lib3dsFloat phi)
void | lib3ds_matrix_rotate_y (Lib3dsMatrix m, Lib3dsFloat phi)
void | lib3ds_matrix_rotate_z (Lib3dsMatrix m, Lib3dsFloat phi)
void | lib3ds_matrix_rotate (Lib3dsMatrix m, Lib3dsQuat q)
void | lib3ds_matrix_rotate_axis (Lib3dsMatrix m, Lib3dsVector axis, Lib3dsFloat angle)
void | lib3ds_matrix_camera (Lib3dsMatrix matrix, Lib3dsVector pos, Lib3dsVector tgt, Lib3dsFloat roll)
void | lib3ds_matrix_dump (Lib3dsMatrix matrix)

## Detailed Description

Author:
  J.E. Hoffmann <je-h@gmx.net>

## Function Documentation

void lib3ds_matrix_abs | ( | Lib3dsMatrix | m | ) |

void lib3ds_matrix_add | ( | Lib3dsMatrix | m,
|  | Lib3dsMatrix | a,
|  | Lib3dsMatrix | b
| ) |

void lib3ds_matrix_adjoint | ( | Lib3dsMatrix | m | ) |

void lib3ds_matrix_camera | ( | Lib3dsMatrix | matrix,
|  | Lib3dsVector | pos,
|  | Lib3dsVector | tgt,
|  | Lib3dsFloat | roll
| ) |

void lib3ds_matrix_copy | ( | Lib3dsMatrix | dest,
|  | Lib3dsMatrix | src
| ) |

Lib3dsFloat lib3ds_matrix_det | ( | Lib3dsMatrix | m | ) |

void lib3ds_matrix_dump | ( | Lib3dsMatrix | matrix | ) |

void lib3ds_matrix_identity | ( | Lib3dsMatrix | m | ) |

Lib3dsBool lib3ds_matrix_inv | ( | Lib3dsMatrix | m | ) |

| GGemsII, K.Wu, Fast Matrix Inversion

void lib3ds_matrix_mul | ( | Lib3dsMatrix | m,
|  | Lib3dsMatrix | a,
|  | Lib3dsMatrix | b
| ) |

void lib3ds_matrix_neg | ( | Lib3dsMatrix | m | ) |

void lib3ds_matrix_rotate | ( | Lib3dsMatrix | m,
|  | Lib3dsQuat | q
| ) |

void lib3ds_matrix_rotate_axis | ( | Lib3dsMatrix | m,
|  | Lib3dsVector | axis,
|  | Lib3dsFloat | angle
| ) |

void lib3ds_matrix_rotate_x | ( | Lib3dsMatrix | m,
|  | Lib3dsFloat | phi
| ) |

void lib3ds_matrix_rotate_y | ( | Lib3dsMatrix | m,
|  | Lib3dsFloat | phi
| ) |

void lib3ds_matrix_rotate_z | ( | Lib3dsMatrix | m,
|  | Lib3dsFloat | phi
| ) |

void lib3ds_matrix_scalar | ( | Lib3dsMatrix | m,
|  | Lib3dsFloat | k
| ) |

void lib3ds_matrix_scale | ( | Lib3dsMatrix | m,
|  | Lib3dsVector | s
| ) |

void lib3ds_matrix_scale_xyz | ( | Lib3dsMatrix | m,
|  | Lib3dsFloat | x,
|  | Lib3dsFloat | y,
|  | Lib3dsFloat | z
| ) |

void lib3ds_matrix_sub | ( | Lib3dsMatrix | m,
|  | Lib3dsMatrix | a,
|  | Lib3dsMatrix | b
| ) |

void lib3ds_matrix_translate | ( | Lib3dsMatrix | m,
|  | Lib3dsVector | t
| ) |

void lib3ds_matrix_translate_xyz | ( | Lib3dsMatrix | m,
|  | Lib3dsFloat | x,
|  | Lib3dsFloat | y,
|  | Lib3dsFloat | z
| ) |

void lib3ds_matrix_transpose | ( | Lib3dsMatrix | m | ) |

void lib3ds_matrix_zero | ( | Lib3dsMatrix | m | ) |