Brecht Van Lommel
34ab90f546
Depsgraph: remove EvaluationContext, pass Depsgraph instead.
...
The depsgraph was always created within a fixed evaluation context. Passing
both risks the depsgraph and evaluation context not matching, and it
complicates the Python API where we'd have to expose both which is not so
easy to understand.
This also removes the global evaluation context in main, which assumed there
to be a single active scene and view layer.
Differential Revision: https://developer.blender.org/D3152
2018-04-16 19:55:33 +02:00
Campbell Barton
c5a26bef5d
Cleanup: rename getepsilon -> get_epsilon
2016-05-06 06:14:36 +10:00
Campbell Barton
81b32e88a3
BMesh: add BKE_bmbvh_find_face_closest
2015-12-14 00:16:05 +11:00
Campbell Barton
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
Campbell Barton
3ec9ff16f8
Resolve MSVC/OpenMP compat issue
2015-08-20 19:37:14 +10:00
Campbell Barton
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
Campbell Barton
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
Campbell Barton
4849583e24
BMesh: callback for bmbvh so caller can choose faces
2014-07-30 16:50:28 +10:00
Campbell Barton
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
Campbell Barton
921c829bcf
Code cleanup: redundant normalize in bmbvh ray cast
2014-03-12 18:30:37 +11:00
Campbell Barton
fed1b8b16d
Code cleanup: suffix vars to make obvious they are squared
2014-02-03 02:46:45 +11:00
Walid Shouman
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
Campbell Barton
0f81ea0db9
remove redundant indirection in asserts
2013-09-10 11:47:21 +00:00
Campbell Barton
29efa96940
style cleanup
2013-09-04 03:30:41 +00:00
Howard Trickey
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
Campbell Barton
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
Campbell Barton
93af050824
correct editmesh BKE_bmbvh_find_vert_closest(), distances are expected to be squared.
2013-06-19 20:11:28 +00:00
Campbell Barton
6db3375e4f
code cleanup: removed unneeded null check in object drawing, some warnings, style.
2013-04-18 15:09:30 +00:00
Campbell Barton
8a06acfd7a
add mesh distort display mode (highlights distorted faces)
2013-04-18 04:24:18 +00:00
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
9f5006a967
add distance arg to BKE_bmbvh_ray_cast(). currently unused.
2013-04-16 15:16:48 +00:00
Campbell Barton
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
Campbell Barton
fe4305ef82
skip calling BKE_editmesh_tessface_calc() from BKE_bmbvh_new(), also quiet float/double warnings.
2013-04-16 13:01:46 +00:00
Sergey Sharybin
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
Campbell Barton
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
Campbell Barton
77da6b3662
move editmesh functions out editderivedmesh.c into editmesh.c
2013-04-16 05:46:17 +00:00
Campbell Barton
fa919d23bc
move editmesh_bvh.c into blenkernel.
2013-04-16 05:23:34 +00:00