Merge with trunk r37849
[blender.git] / source / blender / blenlib / BLI_math_geom.h
index d83a2ac6ad57b6e57ccd1e013ee4385af5f665da..234c191eb6b537840c838b0feeb1906325238b11 100644 (file)
@@ -67,6 +67,9 @@ float closest_to_line_v3(float r[3], const float p[3], const float l1[3], const
 float closest_to_line_v2(float r[2], const float p[2], const float l1[2], const float l2[2]);
 void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3], const float l2[3]);
 
+float line_point_factor_v3(const float p[3], const float l1[3], const float l2[3]);
+float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2]);
+
 /******************************* Intersection ********************************/
 
 /* TODO int return value consistency */
@@ -79,6 +82,8 @@ void closest_to_line_segment_v3(float r[3], const float p[3], const float l1[3],
 
 int isect_line_line_v2(const float a1[2], const float a2[2], const float b1[2], const float b2[2]);
 int isect_line_line_v2_int(const int a1[2], const int a2[2], const int b1[2], const int b2[2]);
+int isect_line_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]);
+int isect_line_sphere_v2(const float l1[2], const float l2[2], const float sp[2], const float r, float r_p1[2], float r_p2[2]);
 int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]);
 
 /* Returns the number of point of interests