Blender  V3.3
BLI_math_geom.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
4 #pragma once
5 
10 #include "BLI_compiler_attrs.h"
11 #include "BLI_math_inline.h"
12 
13 #ifdef BLI_MATH_GCC_WARN_PRAGMA
14 # pragma GCC diagnostic push
15 # pragma GCC diagnostic ignored "-Wredundant-decls"
16 #endif
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 /* -------------------------------------------------------------------- */
26 float normal_tri_v3(float n[3], const float v1[3], const float v2[3], const float v3[3]);
27 float normal_quad_v3(
28  float n[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3]);
32 float normal_poly_v3(float n[3], const float verts[][3], unsigned int nr);
33 
34 MINLINE float area_tri_v2(const float v1[2], const float v2[2], const float v3[2]);
35 MINLINE float area_squared_tri_v2(const float v1[2], const float v2[2], const float v3[2]);
36 MINLINE float area_tri_signed_v2(const float v1[2], const float v2[2], const float v3[2]);
37 
38 /* Triangles */
39 
40 float area_tri_v3(const float v1[3], const float v2[3], const float v3[3]);
41 float area_squared_tri_v3(const float v1[3], const float v2[3], const float v3[3]);
42 float area_tri_signed_v3(const float v1[3],
43  const float v2[3],
44  const float v3[3],
45  const float normal[3]);
46 float area_quad_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3]);
47 float area_squared_quad_v3(const float v1[3],
48  const float v2[3],
49  const float v3[3],
50  const float v4[3]);
51 float area_poly_v3(const float verts[][3], unsigned int nr);
52 float area_poly_v2(const float verts[][2], unsigned int nr);
53 float area_squared_poly_v3(const float verts[][3], unsigned int nr);
54 float area_squared_poly_v2(const float verts[][2], unsigned int nr);
55 float area_poly_signed_v2(const float verts[][2], unsigned int nr);
56 float cotangent_tri_weight_v3(const float v1[3], const float v2[3], const float v3[3]);
57 
58 void cross_tri_v3(float n[3], const float v1[3], const float v2[3], const float v3[3]);
59 MINLINE float cross_tri_v2(const float v1[2], const float v2[2], const float v3[2]);
60 void cross_poly_v3(float n[3], const float verts[][3], unsigned int nr);
67 float cross_poly_v2(const float verts[][2], unsigned int nr);
68 
71 /* -------------------------------------------------------------------- */
79 void plane_from_point_normal_v3(float r_plane[4],
80  const float plane_co[3],
81  const float plane_no[3]);
85 void plane_to_point_vector_v3(const float plane[4], float r_plane_co[3], float r_plane_no[3]);
89 void plane_to_point_vector_v3_normalized(const float plane[4],
90  float r_plane_co[3],
91  float r_plane_no[3]);
92 
93 MINLINE float plane_point_side_v3(const float plane[4], const float co[3]);
94 
97 /* -------------------------------------------------------------------- */
104 float volume_tetrahedron_v3(const float v1[3],
105  const float v2[3],
106  const float v3[3],
107  const float v4[3]);
111 float volume_tetrahedron_signed_v3(const float v1[3],
112  const float v2[3],
113  const float v3[3],
114  const float v4[3]);
115 
122 float volume_tri_tetrahedron_signed_v3_6x(const float v1[3], const float v2[3], const float v3[3]);
123 float volume_tri_tetrahedron_signed_v3(const float v1[3], const float v2[3], const float v3[3]);
124 
130 bool is_edge_convex_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3]);
134 bool is_quad_convex_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3]);
135 bool is_quad_convex_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2]);
136 bool is_poly_convex_v2(const float verts[][2], unsigned int nr);
143 int is_quad_flip_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3]);
144 bool is_quad_flip_v3_first_third_fast(const float v1[3],
145  const float v2[3],
146  const float v3[3],
147  const float v4[3]);
149  const float v2[3],
150  const float v3[3],
151  const float v4[3],
152  const float normal[3]);
153 
156 /* -------------------------------------------------------------------- */
163 float dist_squared_to_line_v2(const float p[2], const float l1[2], const float l2[2]);
164 float dist_to_line_v2(const float p[2], const float l1[2], const float l2[2]);
168 float dist_squared_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2]);
169 float dist_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2]);
170 
171 float dist_signed_squared_to_plane_v3(const float p[3], const float plane[4]);
172 float dist_squared_to_plane_v3(const float p[3], const float plane[4]);
176 float dist_signed_to_plane_v3(const float p[3], const float plane[4]);
177 float dist_to_plane_v3(const float p[3], const float plane[4]);
178 
179 /* Plane3 versions. */
180 
181 float dist_signed_squared_to_plane3_v3(const float p[3], const float plane[3]);
182 float dist_squared_to_plane3_v3(const float p[3], const float plane[3]);
183 float dist_signed_to_plane3_v3(const float p[3], const float plane[3]);
184 float dist_to_plane3_v3(const float p[3], const float plane[3]);
185 
189 float dist_squared_to_line_segment_v3(const float p[3], const float l1[3], const float l2[3]);
190 float dist_to_line_segment_v3(const float p[3], const float l1[3], const float l2[3]);
191 float dist_squared_to_line_v3(const float p[3], const float l1[3], const float l2[3]);
192 float dist_to_line_v3(const float p[3], const float l1[3], const float l2[3]);
216 float dist_signed_squared_to_corner_v3v3v3(const float p[3],
217  const float v1[3],
218  const float v2[3],
219  const float v3[3],
220  const float axis_ref[3]);
227 float dist_squared_to_ray_v3_normalized(const float ray_origin[3],
228  const float ray_direction[3],
229  const float co[3]);
236 float dist_squared_ray_to_seg_v3(const float ray_origin[3],
237  const float ray_direction[3],
238  const float v0[3],
239  const float v1[3],
240  float r_point[3],
241  float *r_depth);
242 
246 void aabb_get_near_far_from_plane(const float plane_no[3],
247  const float bbmin[3],
248  const float bbmax[3],
249  float bb_near[3],
250  float bb_afar[3]);
251 
253  float ray_origin[3];
254  float ray_direction[3];
255  float ray_inv_dir[3];
256 };
257 void dist_squared_ray_to_aabb_v3_precalc(struct DistRayAABB_Precalc *neasrest_precalc,
258  const float ray_origin[3],
259  const float ray_direction[3]);
264  const float bb_min[3],
265  const float bb_max[3],
266  float r_point[3],
267  float *r_depth);
271 float dist_squared_ray_to_aabb_v3_simple(const float ray_origin[3],
272  const float ray_direction[3],
273  const float bb_min[3],
274  const float bb_max[3],
275  float r_point[3],
276  float *r_depth);
277 
279  float ray_origin[3];
280  float ray_direction[3];
281  float ray_inv_dir[3];
282  float pmat[4][4];
283  float mval[2];
284 };
290  const float projmat[4][4],
291  const float winsize[2],
292  const float mval[2]);
297  const float bbmin[3],
298  const float bbmax[3],
299  bool r_axis_closest[3]);
300 float dist_squared_to_projected_aabb_simple(const float projmat[4][4],
301  const float winsize[2],
302  const float mval[2],
303  const float bbmin[3],
304  const float bbmax[3]);
305 
307 float dist_seg_seg_v2(const float a1[3], const float a2[3], const float b1[3], const float b2[3]);
308 
309 float closest_to_ray_v3(float r_close[3],
310  const float p[3],
311  const float ray_orig[3],
312  const float ray_dir[3]);
313 float closest_to_line_v2(float r_close[2], const float p[2], const float l1[2], const float l2[2]);
314 double closest_to_line_v2_db(double r_close[2],
315  const double p[2],
316  const double l1[2],
317  const double l2[2]);
322 float closest_to_line_v3(float r_close[3], const float p[3], const float l1[3], const float l2[3]);
328 float closest_to_line_segment_v2(float r_close[2],
329  const float p[2],
330  const float l1[2],
331  const float l2[2]);
332 
341 float closest_seg_seg_v2(float r_closest_a[2],
342  float r_closest_b[2],
343  float *r_lambda_a,
344  float *r_lambda_b,
345  const float a1[2],
346  const float a2[2],
347  const float b1[2],
348  const float b2[2]);
349 
355 float closest_to_line_segment_v3(float r_close[3],
356  const float p[3],
357  const float l1[3],
358  const float l2[3]);
359 void closest_to_plane_normalized_v3(float r_close[3], const float plane[4], const float pt[3]);
369 void closest_to_plane_v3(float r_close[3], const float plane[4], const float pt[3]);
370 void closest_to_plane3_normalized_v3(float r_close[3], const float plane[3], const float pt[3]);
371 void closest_to_plane3_v3(float r_close[3], const float plane[3], const float pt[3]);
372 
377  float r[3], const float p[3], const float v1[3], const float v2[3], const float v3[3]);
378 
379 float ray_point_factor_v3_ex(const float p[3],
380  const float ray_origin[3],
381  const float ray_direction[3],
382  float epsilon,
383  float fallback);
384 float ray_point_factor_v3(const float p[3],
385  const float ray_origin[3],
386  const float ray_direction[3]);
387 
396  const float p[3], const float l1[3], const float l2[3], float epsilon, float fallback);
397 float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3]);
398 
400  const float p[2], const float l1[2], const float l2[2], float epsilon, float fallback);
401 float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2]);
402 
406 float line_plane_factor_v3(const float plane_co[3],
407  const float plane_no[3],
408  const float l1[3],
409  const float l2[3]);
410 
415 void limit_dist_v3(float v1[3], float v2[3], float dist);
416 
419 /* -------------------------------------------------------------------- */
423 /* TODO: int return value consistency. */
424 
425 /* line-line */
426 #define ISECT_LINE_LINE_COLINEAR -1
427 #define ISECT_LINE_LINE_NONE 0
428 #define ISECT_LINE_LINE_EXACT 1
429 #define ISECT_LINE_LINE_CROSS 2
430 
434 int isect_seg_seg_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2]);
438 void isect_seg_seg_v3(const float a0[3],
439  const float a1[3],
440  const float b0[3],
441  const float b1[3],
442  float r_a[3],
443  float r_b[3]);
444 
448 int isect_seg_seg_v2_int(const int v1[2], const int v2[2], const int v3[2], const int v4[2]);
462 int isect_seg_seg_v2_point_ex(const float v0[2],
463  const float v1[2],
464  const float v2[2],
465  const float v3[2],
466  float endpoint_bias,
467  float vi[2]);
469  const float v0[2], const float v1[2], const float v2[2], const float v3[2], float vi[2]);
470 bool isect_seg_seg_v2_simple(const float v1[2],
471  const float v2[2],
472  const float v3[2],
473  const float v4[2]);
486 int isect_seg_seg_v2_lambda_mu_db(const double v1[2],
487  const double v2[2],
488  const double v3[2],
489  const double v4[2],
490  double *r_lambda,
491  double *r_mu);
505 int isect_line_sphere_v3(const float l1[3],
506  const float l2[3],
507  const float sp[3],
508  float r,
509  float r_p1[3],
510  float r_p2[3]);
511 int isect_line_sphere_v2(const float l1[2],
512  const float l2[2],
513  const float sp[2],
514  float r,
515  float r_p1[2],
516  float r_p2[2]);
517 
522  const float v0[2], const float v1[2], const float v2[2], const float v3[2], float r_vi[2]);
529 int isect_line_line_epsilon_v3(const float v1[3],
530  const float v2[3],
531  const float v3[3],
532  const float v4[3],
533  float i1[3],
534  float i2[3],
535  float epsilon);
536 int isect_line_line_v3(const float v1[3],
537  const float v2[3],
538  const float v3[3],
539  const float v4[3],
540  float r_i1[3],
541  float r_i2[3]);
546 bool isect_line_line_strict_v3(const float v1[3],
547  const float v2[3],
548  const float v3[3],
549  const float v4[3],
550  float vi[3],
551  float *r_lambda);
558 bool isect_ray_ray_epsilon_v3(const float ray_origin_a[3],
559  const float ray_direction_a[3],
560  const float ray_origin_b[3],
561  const float ray_direction_b[3],
562  float epsilon,
563  float *r_lambda_a,
564  float *r_lambda_b);
565 bool isect_ray_ray_v3(const float ray_origin_a[3],
566  const float ray_direction_a[3],
567  const float ray_origin_b[3],
568  const float ray_direction_b[3],
569  float *r_lambda_a,
570  float *r_lambda_b);
571 
578 bool isect_ray_plane_v3(const float ray_origin[3],
579  const float ray_direction[3],
580  const float plane[4],
581  float *r_lambda,
582  bool clip);
583 
587 bool isect_point_planes_v3(float (*planes)[4], int totplane, const float p[3]);
592 bool isect_point_planes_v3_negated(const float (*planes)[4], int totplane, const float p[3]);
593 
605 bool isect_line_plane_v3(float r_isect_co[3],
606  const float l1[3],
607  const float l2[3],
608  const float plane_co[3],
609  const float plane_no[3]) ATTR_WARN_UNUSED_RESULT;
610 
618 bool isect_plane_plane_plane_v3(const float plane_a[4],
619  const float plane_b[4],
620  const float plane_c[4],
621  float r_isect_co[3]) ATTR_WARN_UNUSED_RESULT;
633 bool isect_plane_plane_v3(const float plane_a[4],
634  const float plane_b[4],
635  float r_isect_co[3],
636  float r_isect_no[3]) ATTR_WARN_UNUSED_RESULT;
637 
651 bool isect_planes_v3_fn(
652  const float planes[][4],
653  int planes_len,
654  float eps_coplanar,
655  float eps_isect,
656  void (*callback_fn)(const float co[3], int i, int j, int k, void *user_data),
657  void *user_data);
658 
659 /* line/ray triangle */
660 
665 bool isect_line_segment_tri_v3(const float p1[3],
666  const float p2[3],
667  const float v0[3],
668  const float v1[3],
669  const float v2[3],
670  float *r_lambda,
671  float r_uv[2]);
675 bool isect_line_segment_tri_epsilon_v3(const float p1[3],
676  const float p2[3],
677  const float v0[3],
678  const float v1[3],
679  const float v2[3],
680  float *r_lambda,
681  float r_uv[2],
682  float epsilon);
683 bool isect_axial_line_segment_tri_v3(int axis,
684  const float p1[3],
685  const float p2[3],
686  const float v0[3],
687  const float v1[3],
688  const float v2[3],
689  float *r_lambda);
690 
695 bool isect_ray_tri_v3(const float ray_origin[3],
696  const float ray_direction[3],
697  const float v0[3],
698  const float v1[3],
699  const float v2[3],
700  float *r_lambda,
701  float r_uv[2]);
702 bool isect_ray_tri_threshold_v3(const float ray_origin[3],
703  const float ray_direction[3],
704  const float v0[3],
705  const float v1[3],
706  const float v2[3],
707  float *r_lambda,
708  float r_uv[2],
709  float threshold);
710 bool isect_ray_tri_epsilon_v3(const float ray_origin[3],
711  const float ray_direction[3],
712  const float v0[3],
713  const float v1[3],
714  const float v2[3],
715  float *r_lambda,
716  float r_uv[2],
717  float epsilon);
728 bool isect_tri_tri_v3_ex(const float tri_a[3][3],
729  const float tri_b[3][3],
730  float r_i1[3],
731  float r_i2[3],
732  int *r_tri_a_edge_isect_count);
733 bool isect_tri_tri_v3(const float t_a0[3],
734  const float t_a1[3],
735  const float t_a2[3],
736  const float t_b0[3],
737  const float t_b1[3],
738  const float t_b2[3],
739  float r_i1[3],
740  float r_i2[3]);
741 
742 bool isect_tri_tri_v2(const float p1[2],
743  const float q1[2],
744  const float r1[2],
745  const float p2[2],
746  const float q2[2],
747  const float r2[2]);
748 
753  /* Maximal dimension `kz`, and orthogonal dimensions. */
754  int kx, ky, kz;
755 
756  /* Shear constants. */
757  float sx, sy, sz;
758 };
759 
760 void isect_ray_tri_watertight_v3_precalc(struct IsectRayPrecalc *isect_precalc,
761  const float ray_direction[3]);
762 bool isect_ray_tri_watertight_v3(const float ray_origin[3],
763  const struct IsectRayPrecalc *isect_precalc,
764  const float v0[3],
765  const float v1[3],
766  const float v2[3],
767  float *r_dist,
768  float r_uv[2]);
772 bool isect_ray_tri_watertight_v3_simple(const float ray_origin[3],
773  const float ray_direction[3],
774  const float v0[3],
775  const float v1[3],
776  const float v2[3],
777  float *r_lambda,
778  float r_uv[2]);
779 
780 bool isect_ray_seg_v2(const float ray_origin[2],
781  const float ray_direction[2],
782  const float v0[2],
783  const float v1[2],
784  float *r_lambda,
785  float *r_u);
786 
787 bool isect_ray_line_v3(const float ray_origin[3],
788  const float ray_direction[3],
789  const float v0[3],
790  const float v1[3],
791  float *r_lambda);
792 
793 /* Point in polygon. */
794 
795 bool isect_point_poly_v2(const float pt[2],
796  const float verts[][2],
797  unsigned int nr,
798  bool use_holes);
799 bool isect_point_poly_v2_int(const int pt[2],
800  const int verts[][2],
801  unsigned int nr,
802  bool use_holes);
803 
808  const float p[2], const float v1[2], const float v2[2], const float v3[2], const float v4[2]);
809 
810 int isect_point_tri_v2(const float pt[2], const float v1[2], const float v2[2], const float v3[2]);
814 bool isect_point_tri_v2_cw(const float pt[2],
815  const float v1[2],
816  const float v2[2],
817  const float v3[2]);
827 int isect_point_tri_v2_int(int x1, int y1, int x2, int y2, int a, int b);
828 bool isect_point_tri_prism_v3(const float p[3],
829  const float v1[3],
830  const float v2[3],
831  const float v3[3]);
838 bool isect_point_tri_v3(const float p[3],
839  const float v1[3],
840  const float v2[3],
841  const float v3[3],
842  float r_isect_co[3]);
843 
847 bool isect_aabb_aabb_v3(const float min1[3],
848  const float max1[3],
849  const float min2[3],
850  const float max2[3]);
851 
853  float ray_origin[3];
854  float ray_inv_dir[3];
855  int sign[3];
856 };
857 
859  const float ray_origin[3],
860  const float ray_direction[3]);
861 bool isect_ray_aabb_v3(const struct IsectRayAABB_Precalc *data,
862  const float bb_min[3],
863  const float bb_max[3],
864  float *tmin);
872 bool isect_ray_aabb_v3_simple(const float orig[3],
873  const float dir[3],
874  const float bb_min[3],
875  const float bb_max[3],
876  float *tmin,
877  float *tmax);
878 
879 /* other */
880 #define ISECT_AABB_PLANE_BEHIND_ANY 0
881 #define ISECT_AABB_PLANE_CROSS_ANY 1
882 #define ISECT_AABB_PLANE_IN_FRONT_ALL 2
883 
892 int isect_aabb_planes_v3(const float (*planes)[4],
893  int totplane,
894  const float bbmin[3],
895  const float bbmax[3]);
896 
897 bool isect_sweeping_sphere_tri_v3(const float p1[3],
898  const float p2[3],
899  float radius,
900  const float v0[3],
901  const float v1[3],
902  const float v2[3],
903  float *r_lambda,
904  float ipoint[3]);
905 
907  const float p1[3], const float p2[3], const float plane[4], float r_p1[3], float r_p2[3]);
908 bool clip_segment_v3_plane_n(const float p1[3],
909  const float p2[3],
910  const float plane_array[][4],
911  int plane_num,
912  float r_p1[3],
913  float r_p2[3]);
914 
915 bool point_in_slice_seg(float p[3], float l1[3], float l2[3]);
916 
919 /* -------------------------------------------------------------------- */
924  float w[3], const float v1[3], const float v2[3], const float v3[3], const float co[3]);
925 void interp_weights_quad_v3(float w[4],
926  const float v1[3],
927  const float v2[3],
928  const float v3[3],
929  const float v4[3],
930  const float co[3]);
931 void interp_weights_poly_v3(float w[], float v[][3], int n, const float co[3]);
932 void interp_weights_poly_v2(float w[], float v[][2], int n, const float co[2]);
933 
935 void interp_cubic_v3(float x[3],
936  float v[3],
937  const float x1[3],
938  const float v1[3],
939  const float x2[3],
940  const float v2[3],
941  float t);
942 
947 int interp_sparse_array(float *array, int list_size, float skipval);
948 
954 void transform_point_by_tri_v3(float pt_tar[3],
955  float const pt_src[3],
956  const float tri_tar_p1[3],
957  const float tri_tar_p2[3],
958  const float tri_tar_p3[3],
959  const float tri_src_p1[3],
960  const float tri_src_p2[3],
961  const float tri_src_p3[3]);
966 void transform_point_by_seg_v3(float p_dst[3],
967  const float p_src[3],
968  const float l_dst_p1[3],
969  const float l_dst_p2[3],
970  const float l_src_p1[3],
971  const float l_src_p2[3]);
972 
980  const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3]);
987  const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3]);
993  const float v1[4], const float v2[4], const float v3[4], const float co[2], float w[3]);
999 void barycentric_weights_v2_quad(const float v1[2],
1000  const float v2[2],
1001  const float v3[2],
1002  const float v4[2],
1003  const float co[2],
1004  float w[4]);
1005 
1010  const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3]);
1017 int barycentric_inside_triangle_v2(const float w[3]);
1018 
1026 void resolve_tri_uv_v2(
1027  float r_uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2]);
1033 void resolve_tri_uv_v3(
1034  float r_uv[2], const float st[3], const float st0[3], const float st1[3], const float st2[3]);
1038 void resolve_quad_uv_v2(float r_uv[2],
1039  const float st[2],
1040  const float st0[2],
1041  const float st1[2],
1042  const float st2[2],
1043  const float st3[2]);
1047 void resolve_quad_uv_v2_deriv(float r_uv[2],
1048  float r_deriv[2][2],
1049  const float st[2],
1050  const float st0[2],
1051  const float st1[2],
1052  const float st2[2],
1053  const float st3[2]);
1057 float resolve_quad_u_v2(const float st[2],
1058  const float st0[2],
1059  const float st1[2],
1060  const float st2[2],
1061  const float st3[2]);
1062 
1067 void interp_bilinear_quad_v3(float data[4][3], float u, float v, float res[3]);
1068 void interp_barycentric_tri_v3(float data[3][3], float u, float v, float res[3]);
1069 
1072 /* -------------------------------------------------------------------- */
1076 void lookat_m4(
1077  float mat[4][4], float vx, float vy, float vz, float px, float py, float pz, float twist);
1078 void polarview_m4(float mat[4][4], float dist, float azimuth, float incidence, float twist);
1079 
1083 void perspective_m4(float mat[4][4],
1084  float left,
1085  float right,
1086  float bottom,
1087  float top,
1088  float nearClip,
1089  float farClip);
1090 void perspective_m4_fov(float mat[4][4],
1091  float angle_left,
1092  float angle_right,
1093  float angle_up,
1094  float angle_down,
1095  float nearClip,
1096  float farClip);
1100 void orthographic_m4(float mat[4][4],
1101  float left,
1102  float right,
1103  float bottom,
1104  float top,
1105  float nearClip,
1106  float farClip);
1111 void window_translate_m4(float winmat[4][4], float perspmat[4][4], float x, float y);
1112 
1119 void planes_from_projmat(const float mat[4][4],
1120  float left[4],
1121  float right[4],
1122  float bottom[4],
1123  float top[4],
1124  float near[4],
1125  float far[4]);
1126 
1127 void projmat_dimensions(const float winmat[4][4],
1128  float *r_left,
1129  float *r_right,
1130  float *r_bottom,
1131  float *r_top,
1132  float *r_near,
1133  float *r_far);
1134 void projmat_dimensions_db(const float winmat[4][4],
1135  double *r_left,
1136  double *r_right,
1137  double *r_bottom,
1138  double *r_top,
1139  double *r_near,
1140  double *r_far);
1141 
1150 void projmat_from_subregion(const float projmat[4][4],
1151  const int win_size[2],
1152  int x_min,
1153  int x_max,
1154  int y_min,
1155  int y_max,
1156  float r_projmat[4][4]);
1157 
1158 int box_clip_bounds_m4(float boundbox[2][3], const float bounds[4], float winmat[4][4]);
1159 void box_minmax_bounds_m4(float min[3], float max[3], float boundbox[2][3], float mat[4][4]);
1160 
1163 /* -------------------------------------------------------------------- */
1167 void map_to_tube(float *r_u, float *r_v, float x, float y, float z);
1168 void map_to_sphere(float *r_u, float *r_v, float x, float y, float z);
1169 void map_to_plane_v2_v3v3(float r_co[2], const float co[3], const float no[3]);
1170 void map_to_plane_axis_angle_v2_v3v3fl(float r_co[2],
1171  const float co[3],
1172  const float axis[3],
1173  float angle);
1174 
1177 /* -------------------------------------------------------------------- */
1181 void accumulate_vertex_normals_tri_v3(float n1[3],
1182  float n2[3],
1183  float n3[3],
1184  const float f_no[3],
1185  const float co1[3],
1186  const float co2[3],
1187  const float co3[3]);
1188 
1189 void accumulate_vertex_normals_v3(float n1[3],
1190  float n2[3],
1191  float n3[3],
1192  float n4[3],
1193  const float f_no[3],
1194  const float co1[3],
1195  const float co2[3],
1196  const float co3[3],
1197  const float co4[3]);
1198 
1204  float **vertnos, const float polyno[3], const float **vertcos, float vdiffs[][3], int nverts);
1205 
1208 /* -------------------------------------------------------------------- */
1212 void tangent_from_uv_v3(const float uv1[2],
1213  const float uv2[2],
1214  const float uv3[2],
1215  const float co1[3],
1216  const float co2[3],
1217  const float co3[3],
1218  const float n[3],
1219  float r_tang[3]);
1220 
1223 /* -------------------------------------------------------------------- */
1246 void vcloud_estimate_transform_v3(int list_size,
1247  const float (*pos)[3],
1248  const float *weight,
1249  const float (*rpos)[3],
1250  const float *rweight,
1251  float lloc[3],
1252  float rloc[3],
1253  float lrot[3][3],
1254  float lscale[3][3]);
1255 
1258 /* -------------------------------------------------------------------- */
1267 MINLINE void zero_sh(float r[9]);
1268 MINLINE void copy_sh_sh(float r[9], const float a[9]);
1269 MINLINE void mul_sh_fl(float r[9], float f);
1270 MINLINE void add_sh_shsh(float r[9], const float a[9], const float b[9]);
1271 MINLINE float dot_shsh(const float a[9], const float b[9]);
1272 
1273 MINLINE float eval_shv3(float r[9], const float v[3]);
1274 MINLINE float diffuse_shv3(const float r[9], const float v[3]);
1275 MINLINE void vec_fac_to_sh(float r[9], const float v[3], float f);
1276 MINLINE void madd_sh_shfl(float r[9], const float sh[9], float f);
1277 
1280 /* -------------------------------------------------------------------- */
1284 float form_factor_quad(const float p[3],
1285  const float n[3],
1286  const float q0[3],
1287  const float q1[3],
1288  const float q2[3],
1289  const float q3[3]);
1290 bool form_factor_visible_quad(const float p[3],
1291  const float n[3],
1292  const float v0[3],
1293  const float v1[3],
1294  const float v2[3],
1295  float q0[3],
1296  float q1[3],
1297  float q2[3],
1298  float q3[3]);
1299 float form_factor_hemi_poly(
1300  float p[3], float n[3], float v1[3], float v2[3], float v3[3], float v4[3]);
1301 
1305 void axis_dominant_v3_to_m3_negate(float r_mat[3][3], const float normal[3]);
1316 void axis_dominant_v3_to_m3(float r_mat[3][3], const float normal[3]);
1317 
1321 MINLINE void axis_dominant_v3(int *r_axis_a, int *r_axis_b, const float axis[3]);
1325 MINLINE float axis_dominant_v3_max(int *r_axis_a,
1326  int *r_axis_b,
1327  const float axis[3]) ATTR_WARN_UNUSED_RESULT;
1331 MINLINE int axis_dominant_v3_single(const float vec[3]);
1335 MINLINE int axis_dominant_v3_ortho_single(const float vec[3]);
1336 
1337 MINLINE int max_axis_v3(const float vec[3]);
1338 MINLINE int min_axis_v3(const float vec[3]);
1339 
1349 MINLINE int poly_to_tri_count(int poly_count, int corner_count);
1350 
1357 MINLINE float shell_angle_to_dist(float angle);
1361 MINLINE float shell_v3v3_normalized_to_dist(const float a[3], const float b[3]);
1365 MINLINE float shell_v2v2_normalized_to_dist(const float a[2], const float b[2]);
1369 MINLINE float shell_v3v3_mid_normalized_to_dist(const float a[3], const float b[3]);
1373 MINLINE float shell_v2v2_mid_normalized_to_dist(const float a[2], const float b[2]);
1374 
1377 /* -------------------------------------------------------------------- */
1389 float cubic_tangent_factor_circle_v3(const float tan_l[3], const float tan_r[3]);
1390 
1393 /* -------------------------------------------------------------------- */
1406  const float v0[3], const float v1[3], const float v2[3], float dist1, float dist2);
1407 
1410 /* -------------------------------------------------------------------- */
1414 #if BLI_MATH_DO_INLINE
1415 # include "intern/math_geom_inline.c"
1416 #endif
1417 
1418 #ifdef BLI_MATH_GCC_WARN_PRAGMA
1419 # pragma GCC diagnostic pop
1420 #endif
1421 
1424 #ifdef __cplusplus
1425 }
1426 #endif
#define ATTR_WARN_UNUSED_RESULT
int isect_seg_seg_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
Definition: math_geom.c:1108
bool isect_tri_tri_v2(const float p1[2], const float q1[2], const float r1[2], const float p2[2], const float q2[2], const float r2[2])
Definition: math_geom.c:2541
void orthographic_m4(float mat[4][4], float left, float right, float bottom, float top, float nearClip, float farClip)
Definition: math_geom.c:4517
void plane_from_point_normal_v3(float r_plane[4], const float plane_co[3], const float plane_no[3])
Definition: math_geom.c:209
bool clip_segment_v3_plane_n(const float p1[3], const float p2[3], const float plane_array[][4], int plane_num, float r_p1[3], float r_p2[3])
Definition: math_geom.c:3464
bool isect_ray_ray_v3(const float ray_origin_a[3], const float ray_direction_a[3], const float ray_origin_b[3], const float ray_direction_b[3], float *r_lambda_a, float *r_lambda_b)
Definition: math_geom.c:3032
float dist_signed_to_plane3_v3(const float p[3], const float plane[3])
Definition: math_geom.c:473
int isect_point_quad_v2(const float p[2], const float v1[2], const float v2[2], const float v3[2], const float v4[2])
Definition: math_geom.c:1536
float closest_to_ray_v3(float r_close[3], const float p[3], const float ray_orig[3], const float ray_dir[3])
Definition: math_geom.c:3157
void window_translate_m4(float winmat[4][4], float perspmat[4][4], float x, float y)
Definition: math_geom.c:4587
float ray_point_factor_v3_ex(const float p[3], const float ray_origin[3], const float ray_direction[3], float epsilon, float fallback)
Definition: math_geom.c:3220
void isect_ray_tri_watertight_v3_precalc(struct IsectRayPrecalc *isect_precalc, const float ray_direction[3])
Definition: math_geom.c:1784
float closest_seg_seg_v2(float r_closest_a[2], float r_closest_b[2], float *r_lambda_a, float *r_lambda_b, const float a1[2], const float a2[2], const float b1[2], const float b2[2])
Definition: math_geom.c:297
int isect_line_line_epsilon_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3], float i1[3], float i2[3], float epsilon)
Definition: math_geom.c:2871
float dist_squared_to_line_v3(const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:499
bool isect_ray_tri_threshold_v3(const float ray_origin[3], const float ray_direction[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float r_uv[2], float threshold)
bool isect_ray_plane_v3(const float ray_origin[3], const float ray_direction[3], const float plane[4], float *r_lambda, bool clip)
Definition: math_geom.c:1713
float dist_squared_to_line_segment_v3(const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:485
float area_squared_poly_v2(const float verts[][2], unsigned int nr)
Definition: math_geom.c:184
bool isect_line_segment_tri_epsilon_v3(const float p1[3], const float p2[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float r_uv[2], float epsilon)
Definition: math_geom.c:1611
float dist_squared_to_projected_aabb(struct DistProjectedAABBPrecalc *data, const float bbmin[3], const float bbmax[3], bool r_axis_closest[3])
Definition: math_geom.c:823
void projmat_from_subregion(const float projmat[4][4], const int win_size[2], int x_min, int x_max, int y_min, int y_max, float r_projmat[4][4])
Definition: math_geom.c:4727
float normal_quad_v3(float n[3], const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:50
int isect_line_line_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3], float r_i1[3], float r_i2[3])
Definition: math_geom.c:2935
void interp_cubic_v3(float x[3], float v[3], const float x1[3], const float v1[3], const float x2[3], const float v2[3], float t)
Definition: math_geom.c:4253
void perspective_m4(float mat[4][4], float left, float right, float bottom, float top, float nearClip, float farClip)
Definition: math_geom.c:4542
float geodesic_distance_propagate_across_triangle(const float v0[3], const float v1[3], const float v2[3], float dist1, float dist2)
Definition: math_geom.c:5922
MINLINE float shell_v2v2_normalized_to_dist(const float a[2], const float b[2])
float dist_squared_to_plane_v3(const float p[3], const float plane[4])
Definition: math_geom.c:436
bool isect_ray_line_v3(const float ray_origin[3], const float ray_direction[3], const float v0[3], const float v1[3], float *r_lambda)
Definition: math_geom.c:2028
int barycentric_inside_triangle_v2(const float w[3])
Definition: math_geom.c:3663
MINLINE float area_tri_v2(const float v1[2], const float v2[2], const float v3[2])
int is_quad_flip_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:5845
float dist_squared_to_plane3_v3(const float p[3], const float plane[3])
Definition: math_geom.c:452
void transform_point_by_seg_v3(float p_dst[3], const float p_src[3], const float l_dst_p1[3], const float l_dst_p2[3], const float l_src_p1[3], const float l_src_p2[3])
Definition: math_geom.c:3906
int interp_sparse_array(float *array, int list_size, float skipval)
Definition: math_geom.c:3917
void projmat_dimensions_db(const float winmat[4][4], double *r_left, double *r_right, double *r_bottom, double *r_top, double *r_near, double *r_far)
Definition: math_geom.c:4696
MINLINE void mul_sh_fl(float r[9], float f)
bool isect_ray_tri_v3(const float ray_origin[3], const float ray_direction[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float r_uv[2])
Definition: math_geom.c:1662
void perspective_m4_fov(float mat[4][4], float angle_left, float angle_right, float angle_up, float angle_down, float nearClip, float farClip)
Definition: math_geom.c:4568
bool isect_plane_plane_v3(const float plane_a[4], const float plane_b[4], float r_isect_co[3], float r_isect_no[3]) ATTR_WARN_UNUSED_RESULT
Definition: math_geom.c:2134
float dist_to_plane3_v3(const float p[3], const float plane[3])
Definition: math_geom.c:480
float area_poly_v3(const float verts[][3], unsigned int nr)
Definition: math_geom.c:125
void barycentric_weights_v2(const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3])
Definition: math_geom.c:3700
MINLINE float area_squared_tri_v2(const float v1[2], const float v2[2], const float v3[2])
void accumulate_vertex_normals_tri_v3(float n1[3], float n2[3], float n3[3], const float f_no[3], const float co1[3], const float co2[3], const float co3[3])
Definition: math_geom.c:4977
float closest_to_line_segment_v3(float r_close[3], const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:379
float ray_point_factor_v3(const float p[3], const float ray_origin[3], const float ray_direction[3])
Definition: math_geom.c:3232
void barycentric_weights_v2_clamped(const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3])
Definition: math_geom.c:3723
void isect_seg_seg_v3(const float a0[3], const float a1[3], const float b0[3], const float b1[3], float r_a[3], float r_b[3])
Definition: math_geom.c:1130
MINLINE int axis_dominant_v3_single(const float vec[3])
float form_factor_quad(const float p[3], const float n[3], const float q0[3], const float q1[3], const float q2[3], const float q3[3])
Definition: math_geom.c:5671
bool isect_point_planes_v3_negated(const float(*planes)[4], int totplane, const float p[3])
Definition: math_geom.c:2067
double closest_to_line_v2_db(double r_close[2], const double p[2], const double l1[2], const double l2[2])
Definition: math_geom.c:3200
MINLINE float cross_tri_v2(const float v1[2], const float v2[2], const float v3[2])
bool isect_ray_aabb_v3(const struct IsectRayAABB_Precalc *data, const float bb_min[3], const float bb_max[3], float *tmin)
Definition: math_geom.c:3072
MINLINE int axis_dominant_v3_ortho_single(const float vec[3])
MINLINE float plane_point_side_v3(const float plane[4], const float co[3])
float line_point_factor_v2_ex(const float p[2], const float l1[2], const float l2[2], float epsilon, float fallback)
Definition: math_geom.c:3259
void cross_tri_v3(float n[3], const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:18
bool point_in_slice_seg(float p[3], float l1[3], float l2[3])
Definition: math_geom.c:3371
bool isect_ray_ray_epsilon_v3(const float ray_origin_a[3], const float ray_direction_a[3], const float ray_origin_b[3], const float ray_direction_b[3], float epsilon, float *r_lambda_a, float *r_lambda_b)
Definition: math_geom.c:2996
float dist_to_plane_v3(const float p[3], const float plane[4])
Definition: math_geom.c:468
void transform_point_by_tri_v3(float pt_tar[3], float const pt_src[3], const float tri_tar_p1[3], const float tri_tar_p2[3], const float tri_tar_p3[3], const float tri_src_p1[3], const float tri_src_p2[3], const float tri_src_p3[3])
Definition: math_geom.c:3862
void polarview_m4(float mat[4][4], float dist, float azimuth, float incidence, float twist)
Definition: math_geom.c:4772
int isect_seg_seg_v2_lambda_mu_db(const double v1[2], const double v2[2], const double v3[2], const double v4[2], double *r_lambda, double *r_mu)
Definition: math_geom.c:1315
void interp_weights_quad_v3(float w[4], const float v1[3], const float v2[3], const float v3[3], const float v4[3], const float co[3])
Definition: math_geom.c:3612
float area_tri_signed_v3(const float v1[3], const float v2[3], const float v3[3], const float normal[3])
Definition: math_geom.c:107
float volume_tri_tetrahedron_signed_v3_6x(const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:255
void closest_to_plane3_normalized_v3(float r_close[3], const float plane[3], const float pt[3])
Definition: math_geom.c:422
int isect_line_sphere_v3(const float l1[3], const float l2[3], const float sp[3], float r, float r_p1[3], float r_p2[3])
Definition: math_geom.c:1349
bool isect_seg_seg_v2_simple(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
Definition: math_geom.c:1303
void closest_to_plane_normalized_v3(float r_close[3], const float plane[4], const float pt[3])
Definition: math_geom.c:408
MINLINE float axis_dominant_v3_max(int *r_axis_a, int *r_axis_b, const float axis[3]) ATTR_WARN_UNUSED_RESULT
bool isect_point_tri_v3(const float p[3], const float v1[3], const float v2[3], const float v3[3], float r_isect_co[3])
Definition: math_geom.c:3397
void interp_weights_tri_v3(float w[3], const float v1[3], const float v2[3], const float v3[3], const float co[3])
Definition: math_geom.c:3603
void resolve_tri_uv_v2(float r_uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2])
Definition: math_geom.c:4288
float line_point_factor_v3_ex(const float p[3], const float l1[3], const float l2[3], float epsilon, float fallback)
Definition: math_geom.c:3239
bool isect_ray_aabb_v3_simple(const float orig[3], const float dir[3], const float bb_min[3], const float bb_max[3], float *tmin, float *tmax)
Definition: math_geom.c:3124
float dist_to_line_segment_v3(const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:494
void limit_dist_v3(float v1[3], float v2[3], float dist)
Definition: math_geom.c:3292
bool isect_aabb_aabb_v3(const float min1[3], const float max1[3], const float min2[3], const float max2[3])
Definition: math_geom.c:3048
float area_squared_poly_v3(const float verts[][3], unsigned int nr)
Definition: math_geom.c:132
void dist_squared_ray_to_aabb_v3_precalc(struct DistRayAABB_Precalc *neasrest_precalc, const float ray_origin[3], const float ray_direction[3])
Definition: math_geom.c:651
float volume_tri_tetrahedron_signed_v3(const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:263
void cross_poly_v3(float n[3], const float verts[][3], unsigned int nr)
Definition: math_geom.c:160
bool isect_ray_seg_v2(const float ray_origin[2], const float ray_direction[2], const float v0[2], const float v1[2], float *r_lambda, float *r_u)
Definition: math_geom.c:1982
void map_to_tube(float *r_u, float *r_v, float x, float y, float z)
Definition: math_geom.c:4917
float dist_squared_to_projected_aabb_simple(const float projmat[4][4], const float winsize[2], const float mval[2], const float bbmin[3], const float bbmax[3])
Definition: math_geom.c:953
bool isect_axial_line_segment_tri_v3(int axis, const float p1[3], const float p2[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda)
Definition: math_geom.c:2819
MINLINE void vec_fac_to_sh(float r[9], const float v[3], float f)
bool isect_ray_tri_watertight_v3(const float ray_origin[3], const struct IsectRayPrecalc *isect_precalc, const float v0[3], const float v1[3], const float v2[3], float *r_dist, float r_uv[2])
Definition: math_geom.c:1811
bool is_quad_flip_v3_first_third_fast_with_normal(const float v1[3], const float v2[3], const float v3[3], const float v4[3], const float normal[3])
Definition: math_geom.c:5882
void accumulate_vertex_normals_poly_v3(float **vertnos, const float polyno[3], const float **vertcos, float vdiffs[][3], int nverts)
Definition: math_geom.c:5061
void map_to_plane_axis_angle_v2_v3v3fl(float r_co[2], const float co[3], const float axis[3], float angle)
Definition: math_geom.c:4963
float dist_squared_ray_to_aabb_v3_simple(const float ray_origin[3], const float ray_direction[3], const float bb_min[3], const float bb_max[3], float r_point[3], float *r_depth)
Definition: math_geom.c:754
bool is_quad_flip_v3_first_third_fast(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:5867
MINLINE void add_sh_shsh(float r[9], const float a[9], const float b[9])
float form_factor_hemi_poly(float p[3], float n[3], float v1[3], float v2[3], float v3[3], float v4[3])
Definition: math_geom.c:5716
bool clip_segment_v3_plane(const float p1[3], const float p2[3], const float plane[4], float r_p1[3], float r_p2[3])
Definition: math_geom.c:3417
int isect_line_sphere_v2(const float l1[2], const float l2[2], const float sp[2], float r, float r_p1[2], float r_p2[2])
Definition: math_geom.c:1411
void closest_to_plane3_v3(float r_close[3], const float plane[3], const float pt[3])
Definition: math_geom.c:415
void resolve_quad_uv_v2(float r_uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2], const float st3[2])
Definition: math_geom.c:4341
float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:3274
bool isect_ray_tri_watertight_v3_simple(const float ray_origin[3], const float ray_direction[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float r_uv[2])
Definition: math_geom.c:1886
void closest_on_tri_to_point_v3(float r[3], const float p[3], const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:980
void tangent_from_uv_v3(const float uv1[2], const float uv2[2], const float uv3[2], const float co1[3], const float co2[3], const float co3[3], const float n[3], float r_tang[3])
Definition: math_geom.c:5095
MINLINE float shell_v3v3_normalized_to_dist(const float a[3], const float b[3])
void map_to_sphere(float *r_u, float *r_v, float x, float y, float z)
Definition: math_geom.c:4932
MINLINE float shell_v3v3_mid_normalized_to_dist(const float a[3], const float b[3])
void lookat_m4(float mat[4][4], float vx, float vy, float vz, float px, float py, float pz, float twist)
Definition: math_geom.c:4782
void axis_dominant_v3_to_m3_negate(float r_mat[3][3], const float normal[3])
Definition: math_geom.c:3544
bool is_edge_convex_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:5734
void accumulate_vertex_normals_v3(float n1[3], float n2[3], float n3[3], float n4[3], const float f_no[3], const float co1[3], const float co2[3], const float co3[3], const float co4[3])
Definition: math_geom.c:5014
bool isect_tri_tri_v3(const float t_a0[3], const float t_a1[3], const float t_a2[3], const float t_b0[3], const float t_b1[3], const float t_b2[3], float r_i1[3], float r_i2[3])
Definition: math_geom.c:2367
float line_plane_factor_v3(const float plane_co[3], const float plane_no[3], const float l1[3], const float l2[3])
Definition: math_geom.c:3279
void dist_squared_to_projected_aabb_precalc(struct DistProjectedAABBPrecalc *precalc, const float projmat[4][4], const float winsize[2], const float mval[2])
Definition: math_geom.c:772
float dist_signed_to_plane_v3(const float p[3], const float plane[4])
Definition: math_geom.c:461
void aabb_get_near_far_from_plane(const float plane_no[3], const float bbmin[3], const float bbmax[3], float bb_near[3], float bb_afar[3])
Definition: math_geom.c:615
float dist_seg_seg_v2(const float a1[3], const float a2[3], const float b1[3], const float b2[3])
Definition: math_geom.c:968
void resolve_tri_uv_v3(float r_uv[2], const float st[3], const float st0[3], const float st1[3], const float st2[3])
Definition: math_geom.c:4310
int isect_point_tri_v2_int(int x1, int y1, int x2, int y2, int a, int b)
Definition: math_geom.c:3309
void isect_ray_aabb_v3_precalc(struct IsectRayAABB_Precalc *data, const float ray_origin[3], const float ray_direction[3])
Definition: math_geom.c:3057
bool isect_sweeping_sphere_tri_v3(const float p1[3], const float p2[3], float radius, const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float ipoint[3])
Definition: math_geom.c:2626
float area_tri_v3(const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:92
int isect_aabb_planes_v3(const float(*planes)[4], int totplane, const float bbmin[3], const float bbmax[3])
Definition: math_geom.c:2604
bool isect_point_tri_v2_cw(const float pt[2], const float v1[2], const float v2[2], const float v3[2])
Definition: math_geom.c:1500
float area_poly_signed_v2(const float verts[][2], unsigned int nr)
Definition: math_geom.c:179
MINLINE float diffuse_shv3(const float r[9], const float v[3])
bool is_quad_convex_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:5750
float resolve_quad_u_v2(const float st[2], const float st0[2], const float st1[2], const float st2[2], const float st3[2])
Definition: math_geom.c:4441
void axis_dominant_v3_to_m3(float r_mat[3][3], const float normal[3])
Normal to x,y matrix.
Definition: math_geom.c:3527
void interp_barycentric_tri_v3(float data[3][3], float u, float v, float res[3])
Definition: math_geom.c:4501
float volume_tetrahedron_signed_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:243
float closest_to_line_segment_v2(float r_close[2], const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:357
bool isect_line_line_strict_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3], float vi[3], float *r_lambda)
Definition: math_geom.c:2946
float area_squared_tri_v3(const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:99
bool isect_tri_tri_v3_ex(const float tri_a[3][3], const float tri_b[3][3], float r_i1[3], float r_i2[3], int *r_tri_a_edge_isect_count)
Definition: math_geom.c:2230
MINLINE float dot_shsh(const float a[9], const float b[9])
float dist_squared_ray_to_seg_v3(const float ray_origin[3], const float ray_direction[3], const float v0[3], const float v1[3], float r_point[3], float *r_depth)
Definition: math_geom.c:579
int isect_seg_seg_v2_point(const float v0[2], const float v1[2], const float v2[2], const float v3[2], float vi[2])
Definition: math_geom.c:1296
float dist_squared_ray_to_aabb_v3(const struct DistRayAABB_Precalc *data, const float bb_min[3], const float bb_max[3], float r_point[3], float *r_depth)
Definition: math_geom.c:665
void barycentric_weights_v2_quad(const float v1[2], const float v2[2], const float v3[2], const float v4[2], const float co[2], float w[4])
Definition: math_geom.c:3769
int box_clip_bounds_m4(float boundbox[2][3], const float bounds[4], float winmat[4][4])
Definition: math_geom.c:4835
MINLINE float area_tri_signed_v2(const float v1[2], const float v2[2], const float v3[2])
float cubic_tangent_factor_circle_v3(const float tan_l[3], const float tan_r[3])
Definition: math_geom.c:5895
MINLINE int poly_to_tri_count(int poly_count, int corner_count)
float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:3254
MINLINE void madd_sh_shfl(float r[9], const float sh[9], float f)
float dist_squared_to_ray_v3_normalized(const float ray_origin[3], const float ray_direction[3], const float co[3])
Definition: math_geom.c:563
float area_squared_quad_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:83
MINLINE float shell_v2v2_mid_normalized_to_dist(const float a[2], const float b[2])
bool barycentric_coords_v2(const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3])
Definition: math_geom.c:3676
int isect_line_line_v2_point(const float v0[2], const float v1[2], const float v2[2], const float v3[2], float r_vi[2])
Definition: math_geom.c:1085
MINLINE int min_axis_v3(const float vec[3])
void closest_to_plane_v3(float r_close[3], const float plane[4], const float pt[3])
Definition: math_geom.c:401
void plane_to_point_vector_v3(const float plane[4], float r_plane_co[3], float r_plane_no[3])
Definition: math_geom.c:215
float cross_poly_v2(const float verts[][2], unsigned int nr)
Definition: math_geom.c:141
float closest_to_line_v2(float r_close[2], const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:3183
MINLINE float shell_angle_to_dist(float angle)
MINLINE void copy_sh_sh(float r[9], const float a[9])
float dist_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:292
float closest_to_line_v3(float r_close[3], const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:3176
MINLINE void zero_sh(float r[9])
void projmat_dimensions(const float winmat[4][4], float *r_left, float *r_right, float *r_bottom, float *r_top, float *r_near, float *r_far)
Definition: math_geom.c:4668
void map_to_plane_v2_v3v3(float r_co[2], const float co[3], const float no[3])
Definition: math_geom.c:4952
bool is_quad_convex_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
Definition: math_geom.c:5800
float cotangent_tri_weight_v3(const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:190
void vcloud_estimate_transform_v3(int list_size, const float(*pos)[3], const float *weight, const float(*rpos)[3], const float *rweight, float lloc[3], float rloc[3], float lrot[3][3], float lscale[3][3])
Definition: math_geom.c:5141
void resolve_quad_uv_v2_deriv(float r_uv[2], float r_deriv[2][2], const float st[2], const float st0[2], const float st1[2], const float st2[2], const float st3[2])
Definition: math_geom.c:4351
void barycentric_weights_v2_persp(const float v1[4], const float v2[4], const float v3[4], const float co[2], float w[3])
Definition: math_geom.c:3746
float dist_to_line_v3(const float p[3], const float l1[3], const float l2[3])
Definition: math_geom.c:507
void interp_weights_poly_v2(float w[], float v[][2], int n, const float co[2])
float dist_signed_squared_to_plane_v3(const float p[3], const float plane[4])
Definition: math_geom.c:429
bool isect_line_plane_v3(float r_isect_co[3], const float l1[3], const float l2[3], const float plane_co[3], const float plane_no[3]) ATTR_WARN_UNUSED_RESULT
Definition: math_geom.c:2078
bool isect_plane_plane_plane_v3(const float plane_a[4], const float plane_b[4], const float plane_c[4], float r_isect_co[3]) ATTR_WARN_UNUSED_RESULT
Definition: math_geom.c:2101
float dist_squared_to_line_v2(const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:270
bool form_factor_visible_quad(const float p[3], const float n[3], const float v0[3], const float v1[3], const float v2[3], float q0[3], float q1[3], float q2[3], float q3[3])
Definition: math_geom.c:5299
int isect_seg_seg_v2_int(const int v1[2], const int v2[2], const int v3[2], const int v4[2])
Definition: math_geom.c:1063
float normal_poly_v3(float n[3], const float verts[][3], unsigned int nr)
Definition: math_geom.c:71
int isect_point_tri_v2(const float pt[2], const float v1[2], const float v2[2], const float v3[2])
Definition: math_geom.c:1516
bool is_poly_convex_v2(const float verts[][2], unsigned int nr)
Definition: math_geom.c:5806
float normal_tri_v3(float n[3], const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:33
bool isect_ray_tri_epsilon_v3(const float ray_origin[3], const float ray_direction[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float r_uv[2], float epsilon)
Definition: math_geom.c:1735
bool isect_point_poly_v2(const float pt[2], const float verts[][2], unsigned int nr, bool use_holes)
bool isect_line_segment_tri_v3(const float p1[3], const float p2[3], const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float r_uv[2])
Definition: math_geom.c:1561
float area_quad_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:77
float area_poly_v2(const float verts[][2], unsigned int nr)
Definition: math_geom.c:174
float dist_signed_squared_to_plane3_v3(const float p[3], const float plane[3])
Definition: math_geom.c:445
float dist_to_line_v2(const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:278
void plane_to_point_vector_v3_normalized(const float plane[4], float r_plane_co[3], float r_plane_no[3])
Definition: math_geom.c:221
bool isect_planes_v3_fn(const float planes[][4], int planes_len, float eps_coplanar, float eps_isect, void(*callback_fn)(const float co[3], int i, int j, int k, void *user_data), void *user_data)
Definition: math_geom.c:2168
void interp_weights_poly_v3(float w[], float v[][3], int n, const float co[3])
MINLINE int max_axis_v3(const float vec[3])
void interp_bilinear_quad_v3(float data[4][3], float u, float v, float res[3])
Definition: math_geom.c:4484
void planes_from_projmat(const float mat[4][4], float left[4], float right[4], float bottom[4], float top[4], float near[4], float far[4])
Definition: math_geom.c:4615
bool isect_point_tri_prism_v3(const float p[3], const float v1[3], const float v2[3], const float v3[3])
Definition: math_geom.c:3380
int isect_seg_seg_v2_point_ex(const float v0[2], const float v1[2], const float v2[2], const float v3[2], float endpoint_bias, float vi[2])
Definition: math_geom.c:1195
bool isect_point_poly_v2_int(const int pt[2], const int verts[][2], unsigned int nr, bool use_holes)
float volume_tetrahedron_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3])
Definition: math_geom.c:231
float dist_squared_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2])
Definition: math_geom.c:283
void box_minmax_bounds_m4(float min[3], float max[3], float boundbox[2][3], float mat[4][4])
Definition: math_geom.c:4894
MINLINE void axis_dominant_v3(int *r_axis_a, int *r_axis_b, const float axis[3])
bool isect_point_planes_v3(float(*planes)[4], int totplane, const float p[3])
Definition: math_geom.c:2054
MINLINE float eval_shv3(float r[9], const float v[3])
float dist_signed_squared_to_corner_v3v3v3(const float p[3], const float v1[3], const float v2[3], const float v3[3], const float axis_ref[3])
Definition: math_geom.c:512
#define MINLINE
_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 z
_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 y1
_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 y
_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 x2
_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 right
_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 i1
_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 top
_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
_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 bottom
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
Definition: btDbvt.cpp:299
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition: btQuadWord.h:119
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
Definition: btVector3.h:356
void * user_data
static float verts[][3]
uint pos
IconTextureDrawCall normal
ccl_gpu_kernel_postfix ccl_global float int int int int float threshold
ccl_gpu_kernel_postfix ccl_global float int int int int sh
static int left
static unsigned a[3]
Definition: RandGen.cpp:78
static double epsilon
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
#define min(a, b)
Definition: sort.c:35
float max