67#define bn_mat_zero(_m) { \
68 bu_log("%s:%d bn_mat_zero() is deprecated, use MAT_ZERO()\n", \
69 __FILE__, __LINE__); \
70 (_m)[0] = (_m)[1] = (_m)[2] = (_m)[3] = \
71 (_m)[4] = (_m)[5] = (_m)[6] = (_m)[7] = \
72 (_m)[8] = (_m)[9] = (_m)[10] = (_m)[11] = \
73 (_m)[12] = (_m)[13] = (_m)[14] = (_m)[15] = 0.0; }
77#define bn_mat_idn(_m) { \
78 bu_log("%s:%d bn_mat_idn() is deprecated, use MAT_IDN()\n", \
79 __FILE__, __LINE__); \
80 (_m)[1] = (_m)[2] = (_m)[3] = (_m)[4] = \
81 (_m)[6] = (_m)[7] = (_m)[8] = (_m)[9] = \
82 (_m)[11] = (_m)[12] = (_m)[13] = (_m)[14] = 0.0; \
83 (_m)[0] = (_m)[5] = (_m)[10] = (_m)[15] = 1.0; }
88#define bn_mat_copy(_d, _s) { \
89 bu_log("%s:%d bn_mat_copy() is deprecated, use MAT_COPY()\n", \
90 __FILE__, __LINE__); \
101 (_d)[10] = (_s)[10];\
102 (_d)[11] = (_s)[11];\
103 (_d)[12] = (_s)[12];\
104 (_d)[13] = (_s)[13];\
105 (_d)[14] = (_s)[14];\
106 (_d)[15] = (_s)[15]; }
265 double beta,
double ggamma);
320 const struct bn_tol *tol);
406 const struct bn_tol *tol);
477 const struct bn_tol *tol);
494BN_EXPORT
extern int bn_opt_mat(
struct bu_vls *msg,
size_t argc,
const char **argv,
void *set_var);
Header file for the BRL-CAD common definitions.
void deering_persp_mat(fastf_t *m, const fastf_t *l, const fastf_t *h, const fastf_t *eye)
void bn_mat_lookat(mat_t rot, const vect_t dir, int yflip)
void bn_mat_print(const char *title, const mat_t m)
void bn_mat_arb_rot(mat_t m, const point_t pt, const vect_t dir, const fastf_t ang)
void bn_vtoh_move(hvect_t h, const vect_t v)
void bn_mat_xform_about_pnt(mat_t mat, const mat_t xform, const point_t pnt)
void bn_vec_perp(vect_t new_vec, const vect_t old_vec)
void bn_mat_ae(mat_t m, double azimuth, double elev)
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_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 bn_mat_angles(mat_t mat, double alpha, double beta, double ggamma)
void bn_ae_vec(fastf_t *azp, fastf_t *elp, const vect_t v)
void bn_matXvec(hvect_t ov, const mat_t im, const hvect_t iv)
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_eigen2x2(fastf_t *val1, fastf_t *val2, vect_t vec1, vect_t vec2, fastf_t a, fastf_t b, fastf_t c)
void bn_mat_fromto(mat_t m, const fastf_t *from, const fastf_t *to, const struct bn_tol *tol)
void bn_htov_move(vect_t v, const hvect_t h)
int bn_mat_scale_about_pnt(mat_t mat, const point_t pnt, const double scale)
void bn_mat_mul3(mat_t o, const mat_t a, const mat_t b, const mat_t c)
void bn_mat_print_vls(const char *title, const mat_t m, struct bu_vls *vls)
void bn_vec_aed(vect_t vec, fastf_t az, fastf_t el, fastf_t dist)
void bn_mat_inv(mat_t output, const mat_t input)
void bn_mat_trn(mat_t om, const mat_t im)
void bn_mat_yrot(mat_t m, double siny, double cosy)
void bn_vec_ortho(vect_t out, const vect_t in)
int bn_opt_mat(struct bu_vls *msg, size_t argc, const char **argv, void *set_var)
const mat_t bn_mat_identity
void bn_mat_print_guts(const char *title, const mat_t m, char *buf, int buflen)
double bn_atan2(double x, double y)
void bn_mat_zrot(mat_t m, double sinz, double cosz)
void persp_mat(mat_t m, fastf_t fovy, fastf_t aspect, fastf_t near1, fastf_t far1, fastf_t backoff)
void bn_mat_mul(mat_t o, const mat_t a, const mat_t b)
void bn_mat_xrot(mat_t m, double sinx, double cosx)
int bn_mat_ck(const char *title, const mat_t m)
matp_t bn_mat_dup(const mat_t in)
fastf_t bn_mat_det3(const mat_t m)
int bn_mat_inverse(mat_t output, const mat_t input)
void bn_vec_ae(vect_t vec, fastf_t az, fastf_t el)
void bn_mat_angles_rad(mat_t mat, double alpha, double beta, double ggamma)
void bn_mat_mul2(const mat_t i, mat_t o)
int bn_mat_is_equal(const mat_t a, const mat_t b, const struct bn_tol *tol)
int bn_mat_is_non_unif(const mat_t m)
int bn_mat_is_identity(const mat_t m)
fastf_t bn_mat_determinant(const mat_t m)
void mike_persp_mat(fastf_t *pmat, const fastf_t *eye)
void int float float float * scale
fastf_t vect_t[ELEMENTS_PER_VECT]
3-tuple vector
double fastf_t
fastest 64-bit (or larger) floating point type
fastf_t mat_t[ELEMENTS_PER_MAT]
4x4 matrix
fastf_t hvect_t[ELEMENTS_PER_HVECT]
4-tuple vector
fastf_t * matp_t
pointer to a 4x4 matrix
fastf_t point_t[ELEMENTS_PER_POINT]
3-tuple point
fundamental vector, matrix, quaternion math macros