9#ifndef __MATH_GEOM_INLINE_C__
10#define __MATH_GEOM_INLINE_C__
17#define SMALL_NUMBER 1.e-8f
23 return (v1[0] -
v2[0]) * (
v2[1] - v3[1]) + (v1[1] -
v2[1]) * (v3[0] -
v2[0]);
28 return 0.5f * ((v1[0] -
v2[0]) * (
v2[1] - v3[1]) + (v1[1] -
v2[1]) * (v3[0] -
v2[0]));
44 const float xn =
fabsf(axis[0]);
45 const float yn =
fabsf(axis[1]);
46 const float zn =
fabsf(axis[2]);
48 if (zn >= xn && zn >= yn) {
52 else if (yn >= xn && yn >= zn) {
64 const float xn =
fabsf(axis[0]);
65 const float yn =
fabsf(axis[1]);
66 const float zn =
fabsf(axis[2]);
68 if (zn >= xn && zn >= yn) {
73 else if (yn >= xn && yn >= zn) {
87 const float x =
fabsf(vec[0]);
88 const float y =
fabsf(vec[1]);
89 const float z =
fabsf(vec[2]);
90 return ((x > y) ? ((x >
z) ? 0 : 2) : ((y >
z) ? 1 : 2));
95 const float x =
fabsf(vec[0]);
96 const float y =
fabsf(vec[1]);
97 const float z =
fabsf(vec[2]);
98 return ((x < y) ? ((x <
z) ? 0 : 2) : ((y <
z) ? 1 : 2));
103 const float x = vec[0];
104 const float y = vec[1];
105 const float z = vec[2];
106 return ((x > y) ? ((x >
z) ? 0 : 2) : ((y >
z) ? 1 : 2));
111 const float x = vec[0];
112 const float y = vec[1];
113 const float z = vec[2];
114 return ((x < y) ? ((x <
z) ? 0 : 2) : ((y <
z) ? 1 : 2));
119 BLI_assert(!poly_count || corner_count > poly_count * 2);
120 return corner_count - (poly_count * 2);
125 return dot_v3v3(co, plane) + plane[3];
#define BLI_ASSERT_UNIT_V2(v)
#define BLI_ASSERT_UNIT_V3(v)
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE void add_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE float dot_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
MINLINE float normalize_v2(float n[2])
MINLINE float normalize_v3(float n[3])
ATTR_WARN_UNUSED_RESULT const BMVert * v2
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
local_group_size(16, 16) .push_constant(Type b
MINLINE int poly_to_tri_count(const int poly_count, const int corner_count)
MINLINE float shell_v2v2_normalized_to_dist(const float a[2], const float b[2])
MINLINE float area_tri_v2(const float v1[2], const float v2[2], const float v3[2])
MINLINE float area_squared_tri_v2(const float v1[2], const float v2[2], const float v3[2])
MINLINE int axis_dominant_v3_single(const float vec[3])
MINLINE float cross_tri_v2(const float v1[2], const float v2[2], const float v3[2])
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])
MINLINE float axis_dominant_v3_max(int *r_axis_a, int *r_axis_b, const float axis[3])
MINLINE float shell_v3v3_normalized_to_dist(const float a[3], const float b[3])
MINLINE float shell_v3v3_mid_normalized_to_dist(const float a[3], const float b[3])
MINLINE float area_tri_signed_v2(const float v1[2], const float v2[2], const float v3[2])
MINLINE float shell_v2v2_mid_normalized_to_dist(const float a[2], const float b[2])
MINLINE int min_axis_v3(const float vec[3])
MINLINE float shell_angle_to_dist(const float angle)
MINLINE int max_axis_v3(const float vec[3])
MINLINE void axis_dominant_v3(int *r_axis_a, int *r_axis_b, const float axis[3])