1 |
|
/* RCSid: $Id$ */ |
2 |
< |
#ifndef MX3_HDR |
3 |
< |
#define MX3_HDR |
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 |
< |
float mx3f_adjoint(/* a, b */); |
15 |
< |
void mx3f_mul(/* a, b, c */); |
16 |
< |
void mx3f_print(/* str, a */); |
17 |
< |
void mx3f_translate_mat(/* tx, ty, a */); |
18 |
< |
void mx3f_translate(/* a, tx, ty */); |
19 |
< |
void mx3f_scale_mat(/* sx, sy, a */); |
20 |
< |
void mx3f_scale(/* a, sx, sy */); |
21 |
< |
void mx3f_transform(/* p, a, q */); |
22 |
< |
float mx3f_transform_div(/* p, a, q */); |
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 |
< |
double mx3d_adjoint(/* a, b */); |
27 |
< |
void mx3d_mul(/* a, b, c */); |
28 |
< |
void mx3d_print(/* str, a */); |
29 |
< |
void mx3d_translate_mat(/* tx, ty, a */); |
30 |
< |
void mx3d_translate(/* a, tx, ty */); |
31 |
< |
void mx3d_scale_mat(/* sx, sy, a */); |
32 |
< |
void mx3d_scale(/* a, sx, sy */); |
33 |
< |
void mx3d_transform(/* p, a, q */); |
34 |
< |
double mx3d_transform_div(/* p, a, q */); |
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_ */ |