BRL-CAD
mat.h File Reference
#include "common.h"
#include <stdio.h>
#include "vmath.h"
#include "bu/vls.h"
#include "bn/defines.h"
#include "bn/tol.h"
Include dependency graph for mat.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define bn_mat_zero(_m)
 
#define bn_mat_idn(_m)
 
#define bn_mat_copy(_d, _s)
 

Functions

void bn_mat_print (const char *title, const mat_t m)
 
void bn_mat_print_guts (const char *title, const mat_t m, char *buf, int buflen)
 
void bn_mat_print_vls (const char *title, const mat_t m, struct bu_vls *vls)
 
double bn_atan2 (double x, double y)
 
void bn_mat_mul (mat_t o, const mat_t a, const mat_t b)
 
void bn_mat_mul2 (const mat_t i, mat_t o)
 
void bn_mat_mul3 (mat_t o, const mat_t a, const mat_t b, const mat_t c)
 
void bn_mat_mul4 (mat_t o, const mat_t a, const mat_t b, const mat_t c, const mat_t d)
 
void bn_matXvec (hvect_t ov, const mat_t im, const hvect_t iv)
 
void bn_mat_inv (mat_t output, const mat_t input)
 
int bn_mat_inverse (mat_t output, const mat_t input)
 
void bn_vtoh_move (vect_t h, const vect_t v)
 
void bn_htov_move (vect_t v, const vect_t h)
 
void bn_mat_trn (mat_t om, const mat_t im)
 
void bn_mat_ae (mat_t m, double azimuth, double elev)
 
void bn_ae_vec (fastf_t *azp, fastf_t *elp, const vect_t v)
 
void bn_aet_vec (fastf_t *az, fastf_t *el, fastf_t *twist, vect_t vec_ae, vect_t vec_twist, fastf_t accuracy)
 
void bn_vec_ae (vect_t vec, fastf_t az, fastf_t el)
 
void bn_vec_aed (vect_t vec, fastf_t az, fastf_t el, fastf_t dist)
 
void bn_mat_angles (mat_t mat, double alpha, double beta, double ggamma)
 
void bn_mat_angles_rad (mat_t mat, double alpha, double beta, double ggamma)
 
void bn_eigen2x2 (fastf_t *val1, fastf_t *val2, vect_t vec1, vect_t vec2, fastf_t a, fastf_t b, fastf_t c)
 
void bn_vec_perp (vect_t new_vec, const vect_t old_vec)
 
void bn_mat_fromto (mat_t m, const fastf_t *from, const fastf_t *to, const struct bn_tol *tol)
 
void bn_mat_xrot (mat_t m, double sinx, double cosx)
 
void bn_mat_yrot (mat_t m, double siny, double cosy)
 
void bn_mat_zrot (mat_t m, double sinz, double cosz)
 
void bn_mat_lookat (mat_t rot, const vect_t dir, int yflip)
 
void bn_vec_ortho (vect_t out, const vect_t in)
 
int bn_mat_scale_about_pt (mat_t mat, const point_t pt, const double scale)
 
void bn_mat_xform_about_pt (mat_t mat, const mat_t xform, const point_t pt)
 
int bn_mat_is_equal (const mat_t a, const mat_t b, const struct bn_tol *tol)
 
int bn_mat_is_identity (const mat_t m)
 
void bn_mat_arb_rot (mat_t m, const point_t pt, const vect_t dir, const fastf_t ang)
 
matp_t bn_mat_dup (const mat_t in)
 
int bn_mat_ck (const char *title, const mat_t m)
 
fastf_t bn_mat_det3 (const mat_t m)
 
fastf_t bn_mat_determinant (const mat_t m)
 
int bn_mat_is_non_unif (const mat_t m)
 
void bn_wrt_point_direc (mat_t out, const mat_t change, const mat_t in, const point_t point, const vect_t direc, const struct bn_tol *tol)
 
void persp_mat (mat_t m, fastf_t fovy, fastf_t aspect, fastf_t near1, fastf_t far1, fastf_t backoff)
 
void mike_persp_mat (fastf_t *pmat, const fastf_t *eye)
 
void deering_persp_mat (fastf_t *m, const fastf_t *l, const fastf_t *h, const fastf_t *eye)
 

Variables

const mat_t bn_mat_identity
 Matrix and vector functionality. More...