c5a26bef5d
Cleanup: rename getepsilon -> get_epsilon
2016-05-06 06:14:36 +10:00
81b32e88a3
BMesh: add BKE_bmbvh_find_face_closest
2015-12-14 00:16:05 +11:00
59e166c568
BVH-raycast: Use watertight intersections
...
By default watertight intersections are used,
For callbacks where its not needed,
BLI_bvhtree_ray_cast_ex can be called without the BVH_RAYCAST_WATERTIGHT flag.
Fixes T45286
2015-08-21 17:48:33 +10:00
3ec9ff16f8
Resolve MSVC/OpenMP compat issue
2015-08-20 19:37:14 +10:00
179a2e1b98
Use BVH-overlap for mesh self-intersection display
...
Add BKE_bmbvh_overlap, remove BKE_bmbvh_find_face_segment
2015-08-20 19:13:14 +10:00
a2a7260915
BMesh: option to filter out faces during raycast
...
This allows us to more easily cast from the surface of a mesh
without normal offsets (Which can give precision issues).
2015-01-14 01:36:03 +11:00
4849583e24
BMesh: callback for bmbvh so caller can choose faces
2014-07-30 16:50:28 +10:00
4ca67869cc
Code cleanup: remove unused includes
...
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
921c829bcf
Code cleanup: redundant normalize in bmbvh ray cast
2014-03-12 18:30:37 +11:00
fed1b8b16d
Code cleanup: suffix vars to make obvious they are squared
2014-02-03 02:46:45 +11:00
238d2f962d
BMesh Refactor: BKE_bmbvh_new can now be created without an EditMesh.
...
This adds BM_bmesh_calc_tessellation() so we can get triangles from a
bmesh without having to have an editmesh available.
2013-11-18 18:25:47 +11:00
0f81ea0db9
remove redundant indirection in asserts
2013-09-10 11:47:21 +00:00
29efa96940
style cleanup
2013-09-04 03:30:41 +00:00
86f8470a5d
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.
2013-08-30 16:34:44 +00:00
c33093ac08
BKE_bmbvh_find_vert_closest: very stupid & old bug, it was comparing hit locations incorrectly so that only the first hit was valid.
...
This isn't noticeable for small distances, otherwise it gives bad results.
2013-06-19 20:43:38 +00:00
93af050824
correct editmesh BKE_bmbvh_find_vert_closest(), distances are expected to be squared.
2013-06-19 20:11:28 +00:00
6db3375e4f
code cleanup: removed unneeded null check in object drawing, some warnings, style.
2013-04-18 15:09:30 +00:00
8a06acfd7a
add mesh distort display mode (highlights distorted faces)
2013-04-18 04:24:18 +00:00
e7895abb32
make bmbvh call BM_mesh_elem_index_ensure(), further calls to utility functions assert if the index values becomes dirty.
2013-04-18 02:01:59 +00:00
9cceec40c4
use modified vertex coords for calculating display thickness and intersections.
...
internal improvement to editmesh_bvh.c
- optionally pass cage-coords as an arg, rather then calculating the coords in BKE_bmbvh_new(),
since all callers already have coords calculated.
- de-duplicate coords creation function from knife and bmbvhm, move into own generic function: BKE_editmesh_vertexCos_get()
2013-04-18 01:20:04 +00:00
2fefbf24a5
bmbvh was allocating an array for vert coords but not using it, removed.
...
also use generic name for callback data.
2013-04-18 00:24:44 +00:00
67034c378d
fix for BMBVH_USE_CAGE option,
...
knife tool with modifier was broken when modifier cage was used.
2013-04-18 00:19:57 +00:00
cfefa1d086
add function BKE_bmbvh_find_face_segment()
...
given a segment, finds finds an intersecting faces from the first point to the second, needed for checking self intersections (not used yet).
2013-04-17 06:29:13 +00:00
861a38ea09
code cleanup: bmesh bvh
...
- remove unused members from BMBVHTree
- move per-raycast vars from BMBVHTree into per-callback structs (weren't threadsafe).
- simplify BKE_bmbvh_find_vert_closest().
2013-04-17 06:18:21 +00:00
b0752f1b89
add interp_v3_v3v3v3_uv() to use for use with uv value from isect_ray_tri_v3(), rename tree -> bmtree for BMBVHTree.
2013-04-17 05:49:06 +00:00
c458e051d3
fix for BKE_bmbvh_ray_cast() returning one of the vertices normals rather then the face normal. also remove redundant NULL checks.
2013-04-16 15:35:01 +00:00
9f5006a967
add distance arg to BKE_bmbvh_ray_cast(). currently unused.
2013-04-16 15:16:48 +00:00
ea0ad013d3
bmesh speedup for bvh building, replace SmallHash with BLI_bitmap, using a hash doesn't make much sense since in most cases all vertices are accessed and the hash isn't guaranteed to be small.
...
gives ~9x speedup to filling 'cagecos' in my own tests on a high poly mesh.
2013-04-16 14:57:02 +00:00
fe4305ef82
skip calling BKE_editmesh_tessface_calc() from BKE_bmbvh_new(), also quiet float/double warnings.
2013-04-16 13:01:46 +00:00
c429349054
Fixed compilation error with gcc 4.4 and 4.5
...
Was giving structure re-declaration error,
made it one typedef and struct declaration only.
2013-04-16 11:27:19 +00:00
37e73aa368
code cleanup: use BKE naming conventions for functions in BKE_editmesh.h and BKE_editmesh_bvh.h
2013-04-16 05:59:48 +00:00
77da6b3662
move editmesh functions out editderivedmesh.c into editmesh.c
2013-04-16 05:46:17 +00:00
fa919d23bc
move editmesh_bvh.c into blenkernel.
2013-04-16 05:23:34 +00:00