/usr/include/allegro/inline/fix.inl is in liballegro4-dev 2:4.4.2-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | /* ______ ___ ___
* /\ _ \ /\_ \ /\_ \
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
* /\____/
* \_/__/
*
* Fix class inline functions.
*
* By Shawn Hargreaves.
*
* See readme.txt for copyright information.
*/
#ifndef ALLEGRO_FIX_INL
#define ALLEGRO_FIX_INL
#ifdef __cplusplus
inline fix operator + (const fix x, const fix y) { fix t; t.v = x.v + y.v; return t; }
inline fix operator + (const fix x, const int y) { fix t; t.v = x.v + itofix(y); return t; }
inline fix operator + (const int x, const fix y) { fix t; t.v = itofix(x) + y.v; return t; }
inline fix operator + (const fix x, const long y) { fix t; t.v = x.v + itofix(y); return t; }
inline fix operator + (const long x, const fix y) { fix t; t.v = itofix(x) + y.v; return t; }
inline fix operator + (const fix x, const float y) { fix t; t.v = x.v + ftofix(y); return t; }
inline fix operator + (const float x, const fix y) { fix t; t.v = ftofix(x) + y.v; return t; }
inline fix operator + (const fix x, const double y) { fix t; t.v = x.v + ftofix(y); return t; }
inline fix operator + (const double x, const fix y) { fix t; t.v = ftofix(x) + y.v; return t; }
inline fix operator - (const fix x, const fix y) { fix t; t.v = x.v - y.v; return t; }
inline fix operator - (const fix x, const int y) { fix t; t.v = x.v - itofix(y); return t; }
inline fix operator - (const int x, const fix y) { fix t; t.v = itofix(x) - y.v; return t; }
inline fix operator - (const fix x, const long y) { fix t; t.v = x.v - itofix(y); return t; }
inline fix operator - (const long x, const fix y) { fix t; t.v = itofix(x) - y.v; return t; }
inline fix operator - (const fix x, const float y) { fix t; t.v = x.v - ftofix(y); return t; }
inline fix operator - (const float x, const fix y) { fix t; t.v = ftofix(x) - y.v; return t; }
inline fix operator - (const fix x, const double y) { fix t; t.v = x.v - ftofix(y); return t; }
inline fix operator - (const double x, const fix y) { fix t; t.v = ftofix(x) - y.v; return t; }
inline fix operator * (const fix x, const fix y) { fix t; t.v = fixmul(x.v, y.v); return t; }
inline fix operator * (const fix x, const int y) { fix t; t.v = x.v * y; return t; }
inline fix operator * (const int x, const fix y) { fix t; t.v = x * y.v; return t; }
inline fix operator * (const fix x, const long y) { fix t; t.v = x.v * y; return t; }
inline fix operator * (const long x, const fix y) { fix t; t.v = x * y.v; return t; }
inline fix operator * (const fix x, const float y) { fix t; t.v = ftofix(fixtof(x.v) * y); return t; }
inline fix operator * (const float x, const fix y) { fix t; t.v = ftofix(x * fixtof(y.v)); return t; }
inline fix operator * (const fix x, const double y) { fix t; t.v = ftofix(fixtof(x.v) * y); return t; }
inline fix operator * (const double x, const fix y) { fix t; t.v = ftofix(x * fixtof(y.v)); return t; }
inline fix operator / (const fix x, const fix y) { fix t; t.v = fixdiv(x.v, y.v); return t; }
inline fix operator / (const fix x, const int y) { fix t; t.v = x.v / y; return t; }
inline fix operator / (const int x, const fix y) { fix t; t.v = fixdiv(itofix(x), y.v); return t; }
inline fix operator / (const fix x, const long y) { fix t; t.v = x.v / y; return t; }
inline fix operator / (const long x, const fix y) { fix t; t.v = fixdiv(itofix(x), y.v); return t; }
inline fix operator / (const fix x, const float y) { fix t; t.v = ftofix(fixtof(x.v) / y); return t; }
inline fix operator / (const float x, const fix y) { fix t; t.v = ftofix(x / fixtof(y.v)); return t; }
inline fix operator / (const fix x, const double y) { fix t; t.v = ftofix(fixtof(x.v) / y); return t; }
inline fix operator / (const double x, const fix y) { fix t; t.v = ftofix(x / fixtof(y.v)); return t; }
inline fix operator << (const fix x, const int y) { fix t; t.v = x.v << y; return t; }
inline fix operator >> (const fix x, const int y) { fix t; t.v = x.v >> y; return t; }
inline int operator == (const fix x, const fix y) { return (x.v == y.v); }
inline int operator == (const fix x, const int y) { return (x.v == itofix(y)); }
inline int operator == (const int x, const fix y) { return (itofix(x) == y.v); }
inline int operator == (const fix x, const long y) { return (x.v == itofix(y)); }
inline int operator == (const long x, const fix y) { return (itofix(x) == y.v); }
inline int operator == (const fix x, const float y) { return (x.v == ftofix(y)); }
inline int operator == (const float x, const fix y) { return (ftofix(x) == y.v); }
inline int operator == (const fix x, const double y) { return (x.v == ftofix(y)); }
inline int operator == (const double x, const fix y) { return (ftofix(x) == y.v); }
inline int operator != (const fix x, const fix y) { return (x.v != y.v); }
inline int operator != (const fix x, const int y) { return (x.v != itofix(y)); }
inline int operator != (const int x, const fix y) { return (itofix(x) != y.v); }
inline int operator != (const fix x, const long y) { return (x.v != itofix(y)); }
inline int operator != (const long x, const fix y) { return (itofix(x) != y.v); }
inline int operator != (const fix x, const float y) { return (x.v != ftofix(y)); }
inline int operator != (const float x, const fix y) { return (ftofix(x) != y.v); }
inline int operator != (const fix x, const double y) { return (x.v != ftofix(y)); }
inline int operator != (const double x, const fix y) { return (ftofix(x) != y.v); }
inline int operator < (const fix x, const fix y) { return (x.v < y.v); }
inline int operator < (const fix x, const int y) { return (x.v < itofix(y)); }
inline int operator < (const int x, const fix y) { return (itofix(x) < y.v); }
inline int operator < (const fix x, const long y) { return (x.v < itofix(y)); }
inline int operator < (const long x, const fix y) { return (itofix(x) < y.v); }
inline int operator < (const fix x, const float y) { return (x.v < ftofix(y)); }
inline int operator < (const float x, const fix y) { return (ftofix(x) < y.v); }
inline int operator < (const fix x, const double y) { return (x.v < ftofix(y)); }
inline int operator < (const double x, const fix y) { return (ftofix(x) < y.v); }
inline int operator > (const fix x, const fix y) { return (x.v > y.v); }
inline int operator > (const fix x, const int y) { return (x.v > itofix(y)); }
inline int operator > (const int x, const fix y) { return (itofix(x) > y.v); }
inline int operator > (const fix x, const long y) { return (x.v > itofix(y)); }
inline int operator > (const long x, const fix y) { return (itofix(x) > y.v); }
inline int operator > (const fix x, const float y) { return (x.v > ftofix(y)); }
inline int operator > (const float x, const fix y) { return (ftofix(x) > y.v); }
inline int operator > (const fix x, const double y) { return (x.v > ftofix(y)); }
inline int operator > (const double x, const fix y) { return (ftofix(x) > y.v); }
inline int operator <= (const fix x, const fix y) { return (x.v <= y.v); }
inline int operator <= (const fix x, const int y) { return (x.v <= itofix(y)); }
inline int operator <= (const int x, const fix y) { return (itofix(x) <= y.v); }
inline int operator <= (const fix x, const long y) { return (x.v <= itofix(y)); }
inline int operator <= (const long x, const fix y) { return (itofix(x) <= y.v); }
inline int operator <= (const fix x, const float y) { return (x.v <= ftofix(y)); }
inline int operator <= (const float x, const fix y) { return (ftofix(x) <= y.v); }
inline int operator <= (const fix x, const double y) { return (x.v <= ftofix(y)); }
inline int operator <= (const double x, const fix y) { return (ftofix(x) <= y.v); }
inline int operator >= (const fix x, const fix y) { return (x.v >= y.v); }
inline int operator >= (const fix x, const int y) { return (x.v >= itofix(y)); }
inline int operator >= (const int x, const fix y) { return (itofix(x) >= y.v); }
inline int operator >= (const fix x, const long y) { return (x.v >= itofix(y)); }
inline int operator >= (const long x, const fix y) { return (itofix(x) >= y.v); }
inline int operator >= (const fix x, const float y) { return (x.v >= ftofix(y)); }
inline int operator >= (const float x, const fix y) { return (ftofix(x) >= y.v); }
inline int operator >= (const fix x, const double y) { return (x.v >= ftofix(y)); }
inline int operator >= (const double x, const fix y) { return (ftofix(x) >= y.v); }
inline fix sqrt(fix x) { fix t; t.v = fixsqrt(x.v); return t; }
inline fix cos(fix x) { fix t; t.v = fixcos(x.v); return t; }
inline fix sin(fix x) { fix t; t.v = fixsin(x.v); return t; }
inline fix tan(fix x) { fix t; t.v = fixtan(x.v); return t; }
inline fix acos(fix x) { fix t; t.v = fixacos(x.v); return t; }
inline fix asin(fix x) { fix t; t.v = fixasin(x.v); return t; }
inline fix atan(fix x) { fix t; t.v = fixatan(x.v); return t; }
inline fix atan2(fix x, fix y) { fix t; t.v = fixatan2(x.v, y.v); return t; }
inline void get_translation_matrix(MATRIX *m, fix x, fix y, fix z)
{
get_translation_matrix(m, x.v, y.v, z.v);
}
inline void get_scaling_matrix(MATRIX *m, fix x, fix y, fix z)
{
get_scaling_matrix(m, x.v, y.v, z.v);
}
inline void get_x_rotate_matrix(MATRIX *m, fix r)
{
get_x_rotate_matrix(m, r.v);
}
inline void get_y_rotate_matrix(MATRIX *m, fix r)
{
get_y_rotate_matrix(m, r.v);
}
inline void get_z_rotate_matrix(MATRIX *m, fix r)
{
get_z_rotate_matrix(m, r.v);
}
inline void get_rotation_matrix(MATRIX *m, fix x, fix y, fix z)
{
get_rotation_matrix(m, x.v, y.v, z.v);
}
inline void get_align_matrix(MATRIX *m, fix xfront, fix yfront, fix zfront, fix xup, fix yup, fix zup)
{
get_align_matrix(m, xfront.v, yfront.v, zfront.v, xup.v, yup.v, zup.v);
}
inline void get_vector_rotation_matrix(MATRIX *m, fix x, fix y, fix z, fix a)
{
get_vector_rotation_matrix(m, x.v, y.v, z.v, a.v);
}
inline void get_transformation_matrix(MATRIX *m, fix scale, fix xrot, fix yrot, fix zrot, fix x, fix y, fix z)
{
get_transformation_matrix(m, scale.v, xrot.v, yrot.v, zrot.v, x.v, y.v, z.v);
}
inline void get_camera_matrix(MATRIX *m, fix x, fix y, fix z, fix xfront, fix yfront, fix zfront, fix xup, fix yup, fix zup, fix fov, fix aspect)
{
get_camera_matrix(m, x.v, y.v, z.v, xfront.v, yfront.v, zfront.v, xup.v, yup.v, zup.v, fov.v, aspect.v);
}
inline void qtranslate_matrix(MATRIX *m, fix x, fix y, fix z)
{
qtranslate_matrix(m, x.v, y.v, z.v);
}
inline void qscale_matrix(MATRIX *m, fix scale)
{
qscale_matrix(m, scale.v);
}
inline fix vector_length(fix x, fix y, fix z)
{
fix t;
t.v = vector_length(x.v, y.v, z.v);
return t;
}
inline void normalize_vector(fix *x, fix *y, fix *z)
{
normalize_vector(&x->v, &y->v, &z->v);
}
inline void cross_product(fix x1, fix y_1, fix z1, fix x2, fix y2, fix z2, fix *xout, fix *yout, fix *zout)
{
cross_product(x1.v, y_1.v, z1.v, x2.v, y2.v, z2.v, &xout->v, &yout->v, &zout->v);
}
inline fix dot_product(fix x1, fix y_1, fix z1, fix x2, fix y2, fix z2)
{
fix t;
t.v = dot_product(x1.v, y_1.v, z1.v, x2.v, y2.v, z2.v);
return t;
}
inline void apply_matrix(MATRIX *m, fix x, fix y, fix z, fix *xout, fix *yout, fix *zout)
{
apply_matrix(m, x.v, y.v, z.v, &xout->v, &yout->v, &zout->v);
}
inline void persp_project(fix x, fix y, fix z, fix *xout, fix *yout)
{
persp_project(x.v, y.v, z.v, &xout->v, &yout->v);
}
#endif /* ifdef __cplusplus */
#endif /* ifndef ALLEGRO_FIX_INL */
|