| 1 |
/* RCSid: $Id: mx3.h,v 2.5 2003/07/14 22:24:00 schorsch Exp $ */
|
| 2 |
#ifndef _RAD_MX3_H_
|
| 3 |
#define _RAD_MX3_H_
|
| 4 |
|
| 5 |
#include <string.h>
|
| 6 |
|
| 7 |
#ifdef __cplusplus
|
| 8 |
extern "C" {
|
| 9 |
#endif
|
| 10 |
|
| 11 |
#define mx3_copy(a, b) memcpy(b, a, 3*3*sizeof(double))
|
| 12 |
|
| 13 |
/* FLOAT VERSIONS */
|
| 14 |
extern float mx3f_adjoint(/* a, b */);
|
| 15 |
extern void mx3f_mul(/* a, b, c */);
|
| 16 |
extern void mx3f_print(/* str, a */);
|
| 17 |
extern void mx3f_translate_mat(/* tx, ty, a */);
|
| 18 |
extern void mx3f_translate(/* a, tx, ty */);
|
| 19 |
extern void mx3f_scale_mat(/* sx, sy, a */);
|
| 20 |
extern void mx3f_scale(/* a, sx, sy */);
|
| 21 |
extern void mx3f_transform(/* p, a, q */);
|
| 22 |
extern float mx3f_transform_div(/* p, a, q */);
|
| 23 |
#define mx3f_copy(a, b) memcpy(b, a, 3*3*sizeof(float))
|
| 24 |
|
| 25 |
/* DOUBLE VERSIONS */
|
| 26 |
extern double mx3d_adjoint(double a[3][3], double b[3][3]);
|
| 27 |
extern void mx3d_mul(double a[3][3], double b[3][3], double c[3][3]);
|
| 28 |
extern void mx3d_print(/* str, a */); /* XXX doesn't exist */
|
| 29 |
extern void mx3d_translate_mat(double tx, double ty, double m[3][3]);
|
| 30 |
extern void mx3d_translate(double m[3][3], double tx, double ty);
|
| 31 |
extern void mx3d_scale_mat(double sx, double sy, double m[3][3]);
|
| 32 |
extern void mx3d_scale(double m[3][3], double sx, double sy);
|
| 33 |
extern void mx3d_transform(double p[3], double a[3][3], double q[3]);
|
| 34 |
extern double mx3d_transform_div(double p[3], double a[3][3], double q[2]);
|
| 35 |
#define mx3d_copy(a, b) memcpy(b, a, 3*3*sizeof(double))
|
| 36 |
|
| 37 |
#ifdef __cplusplus
|
| 38 |
}
|
| 39 |
#endif
|
| 40 |
#endif /* _RAD_MX3_H_ */
|