34 const float s = 1.0f -
t;
36 r[0] = s *
a[0] +
t * b[0];
37 r[1] = s *
a[1] +
t * b[1];
43 float r[2],
const float a[2],
const float b[2],
const float c[2],
const float t[3])
45 r[0] =
a[0] *
t[0] + b[0] *
t[1] +
c[0] *
t[2];
46 r[1] =
a[1] *
t[0] + b[1] *
t[1] +
c[1] *
t[2];
51 const float s = 1.0f -
t;
53 r[0] = s *
a[0] +
t * b[0];
54 r[1] = s *
a[1] +
t * b[1];
55 r[2] = s *
a[2] +
t * b[2];
60 const float s = 1.0f -
t;
62 r[0] = s *
a[0] +
t * b[0];
63 r[1] = s *
a[1] +
t * b[1];
64 r[2] = s *
a[2] +
t * b[2];
65 r[3] = s *
a[3] +
t * b[3];
84 if (
UNLIKELY(cosom < (-1.0f + FLT_EPSILON))) {
90 target[0] =
w[0] *
a[0] +
w[1] * b[0];
91 target[1] =
w[0] *
a[1] +
w[1] * b[1];
92 target[2] =
w[0] *
a[2] +
w[1] * b[2];
106 if (
UNLIKELY(cosom < (1.0f + FLT_EPSILON))) {
112 target[0] =
w[0] *
a[0] +
w[1] * b[0];
113 target[1] =
w[0] *
a[1] +
w[1] * b[1];
175 float q0[2],
q1[2], q2[2], r0[2], r1[2];
192 float p[3],
const float v1[3],
const float v2[3],
const float v3[3],
const float w[3])
194 p[0] =
v1[0] *
w[0] +
v2[0] *
w[1] + v3[0] *
w[2];
195 p[1] =
v1[1] *
w[0] +
v2[1] *
w[1] + v3[1] *
w[2];
196 p[2] =
v1[2] *
w[0] +
v2[2] *
w[1] + v3[2] *
w[2];
208 p[0] =
v1[0] *
w[0] +
v2[0] *
w[1] + v3[0] *
w[2] + v4[0] *
w[3];
209 p[1] =
v1[1] *
w[0] +
v2[1] *
w[1] + v3[1] *
w[2] + v4[1] *
w[3];
210 p[2] =
v1[2] *
w[0] +
v2[2] *
w[1] + v3[2] *
w[2] + v4[2] *
w[3];
214 float p[4],
const float v1[4],
const float v2[4],
const float v3[4],
const float w[3])
216 p[0] =
v1[0] *
w[0] +
v2[0] *
w[1] + v3[0] *
w[2];
217 p[1] =
v1[1] *
w[0] +
v2[1] *
w[1] + v3[1] *
w[2];
218 p[2] =
v1[2] *
w[0] +
v2[2] *
w[1] + v3[2] *
w[2];
219 p[3] =
v1[3] *
w[0] +
v2[3] *
w[1] + v3[3] *
w[2];
229 p[0] =
v1[0] *
w[0] +
v2[0] *
w[1] + v3[0] *
w[2] + v4[0] *
w[3];
230 p[1] =
v1[1] *
w[0] +
v2[1] *
w[1] + v3[1] *
w[2] + v4[1] *
w[3];
231 p[2] =
v1[2] *
w[0] +
v2[2] *
w[1] + v3[2] *
w[2] + v4[2] *
w[3];
232 p[3] =
v1[3] *
w[0] +
v2[3] *
w[1] + v3[3] *
w[2] + v4[3] *
w[3];
236 float p[3],
const float v1[3],
const float v2[3],
const float v3[3],
const float uv[2])
238 p[0] =
v1[0] + ((
v2[0] -
v1[0]) * uv[0]) + ((v3[0] -
v1[0]) * uv[1]);
239 p[1] =
v1[1] + ((
v2[1] -
v1[1]) * uv[0]) + ((v3[1] -
v1[1]) * uv[1]);
240 p[2] =
v1[2] + ((
v2[2] -
v1[2]) * uv[0]) + ((v3[2] -
v1[2]) * uv[1]);
245 const float s = 1.0f -
t;
247 target[0] = (char)
floorf(s *
a[0] +
t * b[0]);
248 target[1] = (char)
floorf(s *
a[1] +
t * b[1]);
249 target[2] = (char)
floorf(s *
a[2] +
t * b[2]);
258 const float s = 1.0f -
t;
260 target[0] = (char)
floorf(s *
a[0] +
t * b[0]);
261 target[1] = (char)
floorf(s *
a[1] +
t * b[1]);
262 target[2] = (char)
floorf(s *
a[2] +
t * b[2]);
263 target[3] = (char)
floorf(s *
a[3] +
t * b[3]);
272 r[0] = 0.5f * (
a[0] + b[0]);
273 r[1] = 0.5f * (
a[1] + b[1]);
274 r[2] = 0.5f * (
a[2] + b[2]);
279 r[0] = 0.5f * (
a[0] + b[0]);
280 r[1] = 0.5f * (
a[1] + b[1]);
285 v[0] = (
v1[0] +
v2[0] + v3[0]) / 3.0f;
286 v[1] = (
v1[1] +
v2[1] + v3[1]) / 3.0f;
291 v[0] = (
v1[0] +
v2[0] + v3[0]) / 3.0f;
292 v[1] = (
v1[1] +
v2[1] + v3[1]) / 3.0f;
293 v[2] = (
v1[2] +
v2[2] + v3[2]) / 3.0f;
297 float v[3],
const float v1[3],
const float v2[3],
const float v3[3],
const float v4[3])
299 v[0] = (
v1[0] +
v2[0] + v3[0] + v4[0]) / 4.0f;
300 v[1] = (
v1[1] +
v2[1] + v3[1] + v4[1]) / 4.0f;
301 v[2] = (
v1[2] +
v2[2] + v3[2] + v4[2]) / 4.0f;
306 const float factor = 1.0f / (
float)nbr;
309 for (
uint i = 0; i < nbr; i++) {
372 v[0] =
v1[0] + (
v1[0] -
v2[0]);
373 v[1] =
v1[1] + (
v1[1] -
v2[1]);
374 v[2] =
v1[2] + (
v1[2] -
v2[2]);
375 v[3] =
v1[3] + (
v1[3] -
v2[3]);
380 v[0] =
v1[0] + (
v1[0] -
v2[0]);
381 v[1] =
v1[1] + (
v1[1] -
v2[1]);
382 v[2] =
v1[2] + (
v1[2] -
v2[2]);
387 v[0] =
v1[0] + (
v1[0] -
v2[0]);
388 v[1] =
v1[1] + (
v1[1] -
v2[1]);
419 float vec1[3], vec2[3];
430 float cos_v3v3v3(
const float p1[3],
const float p2[3],
const float p3[3])
432 float vec1[3], vec2[3];
445 float vec1[3], vec2[3];
455 float vec1[2], vec2[2];
457 vec1[0] = b[0] -
a[0];
458 vec1[1] = b[1] -
a[1];
460 vec2[0] = b[0] -
c[0];
461 vec2[1] = b[1] -
c[1];
470 float cos_v2v2v2(
const float p1[2],
const float p2[2],
const float p3[2])
472 float vec1[2], vec2[2];
485 float vec1[2], vec2[2];
501 const float perp_dot = (
v1[1] *
v2[0]) - (
v1[0] *
v2[1]);
542 float v1_proj[3], v2_proj[3];
553 float v1_proj[3], v2_proj[3], tproj[3];
579 float vec1[3], vec2[3];
592 float vec1[3], vec2[3];
600 void angle_tri_v3(
float angles[3],
const float v1[3],
const float v2[3],
const float v3[3])
602 float ed1[3], ed2[3], ed3[3];
615 angles[2] = (
float)
M_PI - (angles[0] + angles[1]);
619 float angles[4],
const float v1[3],
const float v2[3],
const float v3[3],
const float v4[3])
621 float ed1[3], ed2[3], ed3[3], ed4[3];
646 for (i = 0; i <
len; i++) {
667 out[0] =
mul * v_proj[0];
668 out[1] =
mul * v_proj[1];
683 out[0] =
mul * v_proj[0];
684 out[1] =
mul * v_proj[1];
685 out[2] =
mul * v_proj[2];
697 out[0] =
mul * v_proj[0];
698 out[1] =
mul * v_proj[1];
699 out[2] =
mul * v_proj[2];
710 out[0] =
mul * v_proj[0];
711 out[1] =
mul * v_proj[1];
722 out[0] =
mul * v_proj[0];
723 out[1] =
mul * v_proj[1];
724 out[2] =
mul * v_proj[2];
744 out[0] = p[0] - (
mul * v_plane[0]);
745 out[1] = p[1] - (
mul * v_plane[1]);
746 out[2] = p[2] - (
mul * v_plane[2]);
753 out[0] = p[0] - (
mul * v_plane[0]);
754 out[1] = p[1] - (
mul * v_plane[1]);
762 out[0] = p[0] - (
mul * v_plane[0]);
763 out[1] = p[1] - (
mul * v_plane[1]);
764 out[2] = p[2] - (
mul * v_plane[2]);
772 out[0] = p[0] - (
mul * v_plane[0]);
773 out[1] = p[1] - (
mul * v_plane[1]);
793 float d_12[3], d_23[3];
824 out[0] =
v[0] - (dot2 *
normal[0]);
825 out[1] =
v[1] - (dot2 *
normal[1]);
826 out[2] =
v[2] - (dot2 *
normal[2]);
835 out[0] =
v[0] - (dot2 *
normal[0]);
836 out[1] =
v[1] - (dot2 *
normal[1]);
837 out[2] =
v[2] - (dot2 *
normal[2]);
847 const float eps = FLT_EPSILON;
851 const float d = 1.0f /
sqrtf(f);
858 r_n2[0] = -n[2] * r_n1[1];
859 r_n2[1] = n[2] * r_n1[0];
860 r_n2[2] = n[0] * r_n1[1] - n[1] * r_n1[0];
864 r_n1[0] = (n[2] < 0.0f) ? -1.0f : 1.0f;
865 r_n1[1] = r_n1[2] = r_n2[0] = r_n2[2] = 0.0f;
883 out[0] = -
v[1] -
v[2];
889 out[1] = -
v[0] -
v[2];
895 out[2] = -
v[0] -
v[1];
921 r[0] = co * p[0] - si * p[1];
922 r[1] = si * p[0] + co * p[1];
940 out[0] = ((costheta + (1 - costheta) * axis[0] * axis[0]) * p[0]) +
941 (((1 - costheta) * axis[0] * axis[1] - axis[2] * sintheta) * p[1]) +
942 (((1 - costheta) * axis[0] * axis[2] + axis[1] * sintheta) * p[2]);
944 out[1] = (((1 - costheta) * axis[0] * axis[1] + axis[2] * sintheta) * p[0]) +
945 ((costheta + (1 - costheta) * axis[1] * axis[1]) * p[1]) +
946 (((1 - costheta) * axis[1] * axis[2] - axis[0] * sintheta) * p[2]);
948 out[2] = (((1 - costheta) * axis[0] * axis[2] - axis[1] * sintheta) * p[0]) +
949 (((1 - costheta) * axis[1] * axis[2] + axis[0] * sintheta) * p[1]) +
950 ((costheta + (1 - costheta) * axis[2] * axis[2]) * p[2]);
968 printf(
"%s: %.8f %.8f\n",
str,
v[0],
v[1]);
973 printf(
"%s: %.8f %.8f %.8f\n",
str,
v[0],
v[1],
v[2]);
978 printf(
"%s: %.8f %.8f %.8f %.8f\n",
str,
v[0],
v[1],
v[2],
v[3]);
984 printf(
"%s[%d]:",
str, n);
986 printf(
" %.8f",
v[i++]);
993 if (
min[0] > vec[0]) {
996 if (
min[1] > vec[1]) {
999 if (
min[2] > vec[2]) {
1002 if (
min[3] > vec[3]) {
1006 if (
max[0] < vec[0]) {
1009 if (
max[1] < vec[1]) {
1012 if (
max[2] < vec[2]) {
1015 if (
max[3] < vec[3]) {
1022 if (
min[0] > vec[0]) {
1025 if (
min[1] > vec[1]) {
1028 if (
min[2] > vec[2]) {
1032 if (
max[0] < vec[0]) {
1035 if (
max[1] < vec[1]) {
1038 if (
max[2] < vec[2]) {
1045 if (
min[0] > vec[0]) {
1048 if (
min[1] > vec[1]) {
1052 if (
max[0] < vec[0]) {
1055 if (
max[1] < vec[1]) {
1095 #define SWAP_AXIS(a, b) \
1097 SWAP(float, v[a], v[b]); \
1098 SWAP(int, r_axis_order[a], r_axis_order[b]); \
1129 double dot_vn_vn(
const float *array_src_a,
const float *array_src_b,
const int size)
1132 const float *array_pt_a = array_src_a + (
size - 1);
1133 const float *array_pt_b = array_src_b + (
size - 1);
1136 d += (
double)(*(array_pt_a--) * *(array_pt_b--));
1144 const float *array_pt =
array + (
size - 1);
1147 d +=
sqr_db((
double)(*(array_pt--)));
1174 int *array_pt = array_tar + (
size - 1);
1175 int j = start + (
size - 1);
1178 *(array_pt--) = j--;
1184 uint *array_pt = array_tar + (
size - 1);
1188 *(array_pt--) = j--;
1194 float *array_pt = array_tar + (
size - 1);
1197 *(array_pt--) = start + step * (
float)(i);
1203 float *array_pt = array_tar + (
size - 1);
1206 *(array_pt--) *= -1.0f;
1212 float *tar = array_tar + (
size - 1);
1213 const float *src = array_src + (
size - 1);
1216 *(tar--) = -*(src--);
1222 float *tar = array_tar + (
size - 1);
1223 const float *src = array_src + (
size - 1);
1226 *(tar--) *= *(src--);
1231 const float *array_src_a,
1232 const float *array_src_b,
1235 float *tar = array_tar + (
size - 1);
1236 const float *src_a = array_src_a + (
size - 1);
1237 const float *src_b = array_src_b + (
size - 1);
1240 *(tar--) = *(src_a--) * *(src_b--);
1246 float *array_pt = array_tar + (
size - 1);
1255 float *tar = array_tar + (
size - 1);
1256 const float *src = array_src + (
size - 1);
1259 *(tar--) = *(src--) * f;
1265 float *tar = array_tar + (
size - 1);
1266 const float *src = array_src + (
size - 1);
1269 *(tar--) += *(src--);
1274 const float *array_src_a,
1275 const float *array_src_b,
1278 float *tar = array_tar + (
size - 1);
1279 const float *src_a = array_src_a + (
size - 1);
1280 const float *src_b = array_src_b + (
size - 1);
1283 *(tar--) = *(src_a--) + *(src_b--);
1287 void madd_vn_vn(
float *array_tar,
const float *array_src,
const float f,
const int size)
1289 float *tar = array_tar + (
size - 1);
1290 const float *src = array_src + (
size - 1);
1293 *(tar--) += *(src--) * f;
1298 const float *array_src_a,
1299 const float *array_src_b,
1303 float *tar = array_tar + (
size - 1);
1304 const float *src_a = array_src_a + (
size - 1);
1305 const float *src_b = array_src_b + (
size - 1);
1308 *(tar--) = *(src_a--) + (*(src_b--) * f);
1314 float *tar = array_tar + (
size - 1);
1315 const float *src = array_src + (
size - 1);
1318 *(tar--) -= *(src--);
1323 const float *array_src_a,
1324 const float *array_src_b,
1327 float *tar = array_tar + (
size - 1);
1328 const float *src_a = array_src_a + (
size - 1);
1329 const float *src_b = array_src_b + (
size - 1);
1332 *(tar--) = *(src_a--) - *(src_b--);
1336 void msub_vn_vn(
float *array_tar,
const float *array_src,
const float f,
const int size)
1338 float *tar = array_tar + (
size - 1);
1339 const float *src = array_src + (
size - 1);
1342 *(tar--) -= *(src--) * f;
1347 const float *array_src_a,
1348 const float *array_src_b,
1352 float *tar = array_tar + (
size - 1);
1353 const float *src_a = array_src_a + (
size - 1);
1354 const float *src_b = array_src_b + (
size - 1);
1357 *(tar--) = *(src_a--) - (*(src_b--) * f);
1363 const float s = 1.0f -
t;
1364 float *tar = array_tar + (
size - 1);
1365 const float *src = array_src + (
size - 1);
1368 *(tar) = (s * *(tar)) + (
t * *(src));
1376 int *tar = array_tar + (
size - 1);
1385 short *tar = array_tar + (
size - 1);
1412 float *tar = array_tar + (
size - 1);
1425 double *tar = array_tar + (
size - 1);
1426 const double *src = array_src + (
size - 1);
1429 *(tar--) += *(src--);
1434 const double *array_src_a,
1435 const double *array_src_b,
1438 double *tar = array_tar + (
size - 1);
1439 const double *src_a = array_src_a + (
size - 1);
1440 const double *src_b = array_src_b + (
size - 1);
1443 *(tar--) = *(src_a--) + *(src_b--);
1449 double *array_pt = array_tar + (
size - 1);
1458 const double s = 1.0f -
t;
1460 target[0] = s *
a[0] +
t * b[0];
1461 target[1] = s *
a[1] +
t * b[1];
1462 target[2] = s *
a[2] +
t * b[2];
1467 const double s = 1.0f -
t;
1469 target[0] = s *
a[0] +
t * b[0];
1470 target[1] = s *
a[1] +
t * b[1];
typedef float(TangentPoint)[2]
#define BLI_ASSERT_UNIT_V2(v)
MINLINE float saasin(float fac)
#define BLI_ASSERT_UNIT_V3(v)
MINLINE int axis_dominant_v3_single(const float vec[3])
void interp_dot_slerp(const float t, const float cosom, float w[2])
MINLINE bool is_zero_v3_db(const double a[3]) ATTR_WARN_UNUSED_RESULT
MINLINE float len_squared_v2(const float v[2]) ATTR_WARN_UNUSED_RESULT
MINLINE float len_squared_v3(const float v[3]) ATTR_WARN_UNUSED_RESULT
MINLINE float len_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void madd_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void madd_v2_v2v2fl(float r[2], const float a[2], const float b[2], float f)
MINLINE float normalize_v3(float r[3])
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void sub_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void negate_v3_v3(float r[3], const float a[3])
MINLINE double dot_v3v3_db(const double a[3], const double b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE bool is_zero_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void negate_v2_v2(float r[2], const float a[2])
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE bool equals_v2v2(const float v1[2], const float v2[2]) ATTR_WARN_UNUSED_RESULT
MINLINE float normalize_v3_v3(float r[3], const float a[3])
MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE void zero_v2(float r[2])
MINLINE float dot_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
MINLINE bool equals_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void madd_v3_v3v3fl(float r[3], const float a[3], const float b[3], float f)
MINLINE bool is_zero_v2(const float a[3]) ATTR_WARN_UNUSED_RESULT
MINLINE float len_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void zero_v3(float r[3])
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
MINLINE float normalize_v2(float r[2])
MINLINE void zero_v3_db(double r[3])
Strict compiler flags for areas of code we want to ensure don't do conversions without us knowing abo...
typedef double(DMatrix)[4][4]
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
static void mul(btAlignedObjectArray< T > &items, const Q &value)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
IconTextureDrawCall normal
void mid_v3_v3v3v3v3(float v[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3])
void copy_vn_fl(float *array_tar, const int size, const float val)
void project_v2_v2v2_normalized(float out[2], const float p[2], const float v_proj[2])
void madd_vn_vn(float *array_tar, const float *array_src, const float f, const int size)
void add_vn_vn_d(double *array_tar, const double *array_src, const int size)
void negate_vn(float *array_tar, const int size)
void interp_v2_v2v2(float r[2], const float a[2], const float b[2], const float t)
void reflect_v3_v3v3_db(double out[3], const double v[3], const double normal[3])
void angle_quad_v3(float angles[4], const float v1[3], const float v2[3], const float v3[3], const float v4[3])
void axis_sort_v3(const float axis_values[3], int r_axis_order[3])
void interp_v3_v3v3(float r[3], const float a[3], const float b[3], const float t)
void sub_vn_vn(float *array_tar, const float *array_src, const int size)
void mul_vn_db(double *array_tar, const int size, const double f)
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
void rotate_v2_v2fl(float r[2], const float p[2], const float angle)
void mul_vn_vn_fl(float *array_tar, const float *array_src, const int size, const float f)
void copy_vn_i(int *array_tar, const int size, const int val)
void print_v3(const char *str, const float v[3])
void madd_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const float f, const int size)
bool is_finite_v2(const float v[2])
void minmax_v3v3_v3_array(float r_min[3], float r_max[3], const float(*vec_arr)[3], int nbr)
void project_plane_normalized_v2_v2v2(float out[2], const float p[2], const float v_plane[2])
void interp_v4_v4v4_char(char target[4], const char a[4], const char b[4], const float t)
float angle_on_axis_v3v3_v3(const float v1[3], const float v2[3], const float axis[3])
float normalize_vn(float *array_tar, const int size)
float angle_v3v3v3(const float a[3], const float b[3], const float c[3])
void reflect_v3_v3v3(float out[3], const float v[3], const float normal[3])
bool is_finite_v4(const float v[4])
void interp_v3_v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float w[3])
float angle_normalized_v3v3(const float v1[3], const float v2[3])
void interp_v4_v4v4v4v4(float p[4], const float v1[4], const float v2[4], const float v3[4], const float v4[4], const float w[4])
void sub_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const int size)
void interp_v3_v3v3_db(double target[3], const double a[3], const double b[3], const double t)
double dot_vn_vn(const float *array_src_a, const float *array_src_b, const int size)
void angle_tri_v3(float angles[3], const float v1[3], const float v2[3], const float v3[3])
void add_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const int size)
void interp_v3_v3v3_char(char target[3], const char a[3], const char b[3], const float t)
void mid_v3_angle_weighted(float r[3])
float angle_v3v3(const float a[3], const float b[3])
void interp_v4_v4v4(float r[4], const float a[4], const float b[4], const float t)
void mid_v2_v2v2v2(float v[2], const float v1[2], const float v2[2], const float v3[2])
void project_v3_plane(float out[3], const float plane_no[3], const float plane_co[3])
float cos_v3v3v3(const float p1[3], const float p2[3], const float p3[3])
void add_vn_vn(float *array_tar, const float *array_src, const int size)
void project_v3_v3v3_normalized(float out[3], const float p[3], const float v_proj[3])
void interp_v2_v2v2v2(float r[2], const float a[2], const float b[2], const float c[2], const float t[3])
void print_v4(const char *str, const float v[4])
bool interp_v3_v3v3_slerp(float target[3], const float a[3], const float b[3], const float t)
float normalize_vn_vn(float *array_tar, const float *array_src, const int size)
bool is_finite_v3(const float v[3])
void negate_vn_vn(float *array_tar, const float *array_src, const int size)
void project_v3_v3v3(float out[3], const float p[3], const float v_proj[3])
void minmax_v2v2_v2(float min[2], float max[2], const float vec[2])
void project_plane_v3_v3v3(float out[3], const float p[3], const float v_plane[3])
void interp_v3_v3v3_slerp_safe(float target[3], const float a[3], const float b[3], const float t)
void copy_vn_short(short *array_tar, const int size, const short val)
void project_plane_normalized_v3_v3v3(float out[3], const float p[3], const float v_plane[3])
void msub_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const float f, const int size)
void interp_v3_v3v3_uchar(uchar target[3], const uchar a[3], const uchar b[3], const float t)
void print_v2(const char *str, const float v[2])
void mid_v3_v3v3_angle_weighted(float r[3], const float a[3], const float b[3])
void rotate_v3_v3v3fl(float r[3], const float p[3], const float axis[3], const float angle)
void ortho_v3_v3(float out[3], const float v[3])
float angle_v2v2(const float a[2], const float b[2])
void interp_v2_v2v2_db(double target[2], const double a[2], const double b[2], const double t)
void interp_v4_v4v4v4(float p[4], const float v1[4], const float v2[4], const float v3[4], const float w[3])
void flip_v2_v2v2(float v[2], const float v1[2], const float v2[2])
float cos_v2v2v2(const float p1[2], const float p2[2], const float p3[2])
void print_vn(const char *str, const float v[], const int n)
void interp_v3_v3v3v3v3(float p[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3], const float w[4])
void minmax_v4v4_v4(float min[4], float max[4], const float vec[4])
void dist_ensure_v2_v2fl(float v1[2], const float v2[2], const float dist)
void mid_v2_v2v2(float r[2], const float a[2], const float b[2])
void range_vn_u(uint *array_tar, const int size, const uint start)
void interp_v4_v4v4_uchar(uchar target[4], const uchar a[4], const uchar b[4], const float t)
void ortho_v2_v2(float out[2], const float v[2])
void mul_vn_vnvn(float *array_tar, const float *array_src_a, const float *array_src_b, const int size)
void interp_v2_v2v2_slerp_safe(float target[2], const float a[2], const float b[2], const float t)
void mid_v3_v3_array(float r[3], const float(*vec_arr)[3], const uint nbr)
void angle_poly_v3(float *angles, const float *verts[3], int len)
void range_vn_fl(float *array_tar, const int size, const float start, const float step)
void interp_vn_vn(float *array_tar, const float *array_src, const float t, const int size)
double len_squared_vn(const float *array, const int size)
void mid_v3_v3v3(float r[3], const float a[3], const float b[3])
void ortho_basis_v3v3_v3(float r_n1[3], float r_n2[3], const float n[3])
void mul_vn_vn(float *array_tar, const float *array_src, const int size)
void msub_vn_vn(float *array_tar, const float *array_src, const float f, const int size)
void add_vn_vnvn_d(double *array_tar, const double *array_src_a, const double *array_src_b, const int size)
void range_vn_i(int *array_tar, const int size, const int start)
void flip_v4_v4v4(float v[4], const float v1[4], const float v2[4])
void flip_v3_v3v3(float v[3], const float v1[3], const float v2[3])
void project_plane_v2_v2v2(float out[2], const float p[2], const float v_plane[2])
float angle_v2v2v2(const float a[2], const float b[2], const float c[2])
float angle_normalized_v2v2(const float a[2], const float b[2])
bool interp_v2_v2v2_slerp(float target[2], const float a[2], const float b[2], const float t)
void dist_ensure_v3_v3fl(float v1[3], const float v2[3], const float dist)
void project_v3_v3v3_db(double out[3], const double p[3], const double v_proj[3])
float angle_on_axis_v3v3v3_v3(const float v1[3], const float v2[3], const float v3[3], const float axis[3])
void mul_vn_fl(float *array_tar, const int size, const float f)
void copy_vn_uchar(uchar *array_tar, const int size, const uchar val)
void interp_v3_v3v3v3_uv(float p[3], const float v1[3], const float v2[3], const float v3[3], const float uv[2])
float angle_signed_on_axis_v3v3v3_v3(const float v1[3], const float v2[3], const float v3[3], const float axis[3])
void rotate_normalized_v3_v3v3fl(float out[3], const float p[3], const float axis[3], const float angle)
MINLINE double sqr_db(double f)
float angle_signed_on_axis_v3v3_v3(const float v1[3], const float v2[3], const float axis[3])
void mid_v3_v3v3v3(float v[3], const float v1[3], const float v2[3], const float v3[3])
void interp_v2_v2v2v2v2_cubic(float p[2], const float v1[2], const float v2[2], const float v3[2], const float v4[2], const float u)
void project_v2_v2v2(float out[2], const float p[2], const float v_proj[2])
void bisect_v3_v3v3v3(float r[3], const float a[3], const float b[3], const float c[3])
void copy_vn_ushort(ushort *array_tar, const int size, const ushort val)
float angle_signed_v2v2(const float v1[2], const float v2[2])