]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/warpzonelib/anglestransform.qh
#include this
[xonotic/xonotic-data.pk3dir.git] / qcsrc / warpzonelib / anglestransform.qh
1 #ifndef ANGLETRANSFORM_H
2 #define ANGLETRANSFORM_H
3
4 #if defined(CSQC)
5     #include "../common/util-pre.qh"
6     #include "../client/sys-pre.qh"
7     #include "../dpdefs/csprogsdefs.qc"
8     #include "../client/sys-post.qh"
9     #include "../client/Defs.qc"
10     #include "../dpdefs/keycodes.qc"
11     #include "../common/constants.qh"
12     #include "../common/stats.qh"
13 #elif defined(MENUQC)
14 #elif defined(SVQC)
15     #include "../common/util-pre.qh"
16     #include "../server/sys-pre.qh"
17     #include "../dpdefs/progsdefs.qc"
18     #include "../dpdefs/dpextensions.qc"
19     #include "../server/sys-post.qh"
20 #endif
21
22 #define POSITIVE_PITCH_IS_DOWN
23
24 #ifdef POSITIVE_PITCH_IS_DOWN
25 #define fixedmakevectors makevectors
26 vector fixedvectoangles(vector a);
27 vector fixedvectoangles2(vector a, vector b);
28 #else
29 void fixedmakevectors(vector a);
30 #define fixedvectoangles2 vectoangles2
31 #define fixedvectoangles vectoangles
32 #endif
33
34 vector AnglesTransform_Apply(vector transform, vector v);
35 vector AnglesTransform_Multiply(vector t1, vector t2); // A B
36 vector AnglesTransform_Invert(vector transform);
37 vector AnglesTransform_TurnDirectionFU(vector transform);
38 vector AnglesTransform_TurnDirectionFR(vector transform);
39 vector AnglesTransform_RightDivide(vector to_transform, vector from_transform); // A B^-1
40 vector AnglesTransform_LeftDivide(vector from_transform, vector to_transform); // A^-1 B
41
42 vector AnglesTransform_Normalize(vector t, float minimize_roll); // makes sure all angles are in their range: yaw in -180..180, pitch in -90..90, roll in -180..180 (or if minimize_roll is set, pitch in -180..180, roll in -90..90)
43
44 vector AnglesTransform_ApplyToAngles(vector transform, vector v);
45 vector AnglesTransform_ApplyToVAngles(vector transform, vector v);
46 vector AnglesTransform_FromAngles(vector v);
47 vector AnglesTransform_ToAngles(vector v);
48 vector AnglesTransform_FromVAngles(vector v);
49 vector AnglesTransform_ToVAngles(vector v);
50
51 // transformed = original * transform + postshift
52 vector AnglesTransform_Multiply_GetPostShift(vector sf0, vector st0, vector t1, vector st1);
53 vector AnglesTransform_PrePostShift_GetPostShift(vector sf, vector t, vector st);
54 #endif