/
gutil.h
89 lines (71 loc) · 2.59 KB
/
gutil.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
* gutil.h
*
* FUNCTION:
* Provide utilities that allow rotation to occur
* around any axis.
*
* HISTORY:
* created by Linas Vepstas 1990
* added single & double precision, June 1991, Linas Vepstas
*/
#ifndef __GUTIL_H__
#define __GUTIL_H__
#ifdef __GUTIL_DOUBLE
#define gutDouble double
#else
#define gutDouble float
#endif
#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */
/* Rotation Utilities */
extern void rot_axis_f ();
extern void rot_about_axis_f ();
extern void rot_omega_f ();
extern void urot_axis_f ();
extern void urot_about_axis_f ();
extern void urot_omega_f ();
/* double-precision versions */
extern void rot_axis_d ();
extern void rot_about_axis_d ();
extern void rot_omega_d ();
extern void urot_axis_d ();
extern void urot_about_axis_d ();
extern void urot_omega_d ();
/* viewpoint functions */
extern void uview_direction_d ();
extern void uview_direction_f ();
extern void uviewpoint_d ();
extern void uviewpoint_f ();
#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */
/* Rotation Utilities */
extern void rot_axis_f (float omega, float axis[3]);
extern void rot_about_axis_f (float angle, float axis[3]);
extern void rot_omega_f (float axis[3]);
extern void urot_axis_f (float m[4][4], float omega, float axis[3]);
extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]);
extern void urot_omega_f (float m[4][4], float axis[3]);
/* double-precision versions */
extern void rot_axis_d (double omega, double axis[3]);
extern void rot_about_axis_d (double angle, double axis[3]);
extern void rot_omega_d (double axis[3]);
extern void urot_axis_d (double m[4][4], double omega, double axis[3]);
extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]);
extern void urot_omega_d (double m[4][4], double axis[3]);
/* viewpoint functions */
extern void uview_direction_d (double m[4][4], /* returned */
double v21[3], /* input */
double up[3]); /* input */
extern void uview_direction_f (float m[4][4], /* returned */
float v21[3], /* input */
float up[3]); /* input */
extern void uviewpoint_d (double m[4][4], /* returned */
double v1[3], /* input */
double v2[3], /* input */
double up[3]); /* input */
extern void uviewpoint_f (float m[4][4], /* returned */
float v1[3], /* input */
float v2[3], /* input */
float up[3]); /* input */
#endif /* _NO_PROTO */
#endif /* _GUTIL_H__ */
/* ------------------- end of file ---------------------- */