--- ray/src/px/mx3.h 2003/02/22 02:07:27 2.2 +++ ray/src/px/mx3.h 2004/03/28 20:33:14 2.6 @@ -1,31 +1,40 @@ -/* RCSid: $Id: mx3.h,v 2.2 2003/02/22 02:07:27 greg Exp $ */ -#ifndef MX3_HDR -#define MX3_HDR +/* RCSid: $Id: mx3.h,v 2.6 2004/03/28 20:33:14 schorsch Exp $ */ +#ifndef _RAD_MX3_H_ +#define _RAD_MX3_H_ -#define mx3_copy(a, b) bcopy(a, b, 3*3*sizeof(double)) +#include +#ifdef __cplusplus +extern "C" { +#endif + +#define mx3_copy(a, b) memcpy(b, a, 3*3*sizeof(double)) + /* FLOAT VERSIONS */ -float mx3f_adjoint(/* a, b */); -void mx3f_mul(/* a, b, c */); -void mx3f_print(/* str, a */); -void mx3f_translate_mat(/* tx, ty, a */); -void mx3f_translate(/* a, tx, ty */); -void mx3f_scale_mat(/* sx, sy, a */); -void mx3f_scale(/* a, sx, sy */); -void mx3f_transform(/* p, a, q */); -float mx3f_transform_div(/* p, a, q */); -#define mx3f_copy(a, b) bcopy(a, b, 3*3*sizeof(float)) +extern float mx3f_adjoint(/* a, b */); +extern void mx3f_mul(/* a, b, c */); +extern void mx3f_print(/* str, a */); +extern void mx3f_translate_mat(/* tx, ty, a */); +extern void mx3f_translate(/* a, tx, ty */); +extern void mx3f_scale_mat(/* sx, sy, a */); +extern void mx3f_scale(/* a, sx, sy */); +extern void mx3f_transform(/* p, a, q */); +extern float mx3f_transform_div(/* p, a, q */); +#define mx3f_copy(a, b) memcpy(b, a, 3*3*sizeof(float)) /* DOUBLE VERSIONS */ -double mx3d_adjoint(/* a, b */); -void mx3d_mul(/* a, b, c */); -void mx3d_print(/* str, a */); -void mx3d_translate_mat(/* tx, ty, a */); -void mx3d_translate(/* a, tx, ty */); -void mx3d_scale_mat(/* sx, sy, a */); -void mx3d_scale(/* a, sx, sy */); -void mx3d_transform(/* p, a, q */); -double mx3d_transform_div(/* p, a, q */); -#define mx3d_copy(a, b) bcopy(a, b, 3*3*sizeof(double)) +extern double mx3d_adjoint(double a[3][3], double b[3][3]); +extern void mx3d_mul(double a[3][3], double b[3][3], double c[3][3]); +extern void mx3d_print(/* str, a */); /* XXX doesn't exist */ +extern void mx3d_translate_mat(double tx, double ty, double m[3][3]); +extern void mx3d_translate(double m[3][3], double tx, double ty); +extern void mx3d_scale_mat(double sx, double sy, double m[3][3]); +extern void mx3d_scale(double m[3][3], double sx, double sy); +extern void mx3d_transform(double p[3], double a[3][3], double q[3]); +extern double mx3d_transform_div(double p[3], double a[3][3], double q[2]); +#define mx3d_copy(a, b) memcpy(b, a, 3*3*sizeof(double)) +#ifdef __cplusplus +} #endif +#endif /* _RAD_MX3_H_ */