From 86f8470a5da2efbd8d521df2759b3a0d06160667 Mon Sep 17 00:00:00 2001 From: Howard Trickey Date: Fri, 30 Aug 2013 16:34:44 +0000 Subject: Some knife fixes. Avoids duplicating verts; better handling of cut-through ortho. Now cut lines detect vertices that they pass (almost) exactly over and snap to them, to avoid making verts vert close to other ones. Added radius arg to BKE_bmbvh_ray_cast so that can detect an obscuring face when the ray might otherwise go exactly between two triangles. Needed an isect_line_tri_epsilon function for similar reason. Fixes last part of bug #35002. Other knife bugs still present but getting this commit in now before continuing bug fixing. --- source/blender/blenkernel/BKE_editmesh_bvh.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/blenkernel/BKE_editmesh_bvh.h') diff --git a/source/blender/blenkernel/BKE_editmesh_bvh.h b/source/blender/blenkernel/BKE_editmesh_bvh.h index 6750ee1ff3e..7b4ad4284c6 100644 --- a/source/blender/blenkernel/BKE_editmesh_bvh.h +++ b/source/blender/blenkernel/BKE_editmesh_bvh.h @@ -44,7 +44,7 @@ typedef struct BMBVHTree BMBVHTree; BMBVHTree *BKE_bmbvh_new(struct BMEditMesh *em, int flag, const float (*cos_cage)[3], const bool cos_cage_free); void BKE_bmbvh_free(BMBVHTree *tree); struct BVHTree *BKE_bmbvh_tree_get(BMBVHTree *tree); -struct BMFace *BKE_bmbvh_ray_cast(BMBVHTree *tree, const float co[3], const float dir[3], +struct BMFace *BKE_bmbvh_ray_cast(BMBVHTree *tree, const float co[3], const float dir[3], const float radius, float *r_dist, float r_hitout[3], float r_cagehit[3]); /* find a face intersecting a segment (but not apart of the segment) */ struct BMFace *BKE_bmbvh_find_face_segment(BMBVHTree *tree, const float co_a[3], const float co_b[3], -- cgit v1.2.3