Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-15Cleanup: use '_len' instead of '_size' w/ BLI APICampbell Barton
- When returning the number of items in a collection use BLI_*_len() - Keep _size() for size in bytes. - Keep _count() for data structures that don't store length (hint this isn't a simple getter). See P611 to apply instead of manually resolving conflicts.
2017-08-11Fix transform snap code using 'allocated' flags to get verts/edges/etc. ↵Bastien Montagne
arrays again from DM. This was... horribly wrong, CDDM will often *not* need to allocate anything to return arrays of mesh items! Just check whether array pointer is NULL. Also, remove `DM_get_looptri_array`, that one is useless currently, `dm->getLoopTriArray` will always return cached array (computing it if needed).
2017-06-19Cleanup: doxygen commentsCampbell Barton
Also remove duplicate & mismatching comments from grease-pencil header. Keep comments close to implementation to avoid getting out of sync.
2017-02-17Remove unused functions related to distance between BoundBox and rayGermano Cavalcante
2017-02-17Forgotten in last commit: Check the allocationGermano Cavalcante
2017-02-17Do not release the arrays used in the parameters of the expanded functions ↵Germano Cavalcante
of bvhutils The release of these arrays should be the programmer's discretion since these arrays can continue to be used. Only the expanded functions `bvhtree_from_mesh_edges_ex` and `bvhtree_from_mesh_looptri_ex` are currently being used in blender (in mesh_remap.c), and from what I could to analyze, these changes can prevent a crash.
2017-02-07Param `is_cached` not being used in` bvhtree_from_mesh_edges_setup_data`Germano Cavalcante
This could cause bugs in the memory release
2017-02-06Specify the correct size of the BVHTree of edgesGermano Cavalcante
~edge_num~ edges_num_active Not always all the edges enter in the build
2017-02-06Standardization and style for BKE_bvhutilsGermano Cavalcante
Add `bvhtree_from_mesh_edges_ex` and callbacks to nearest_to_ray (Similar to the other functions of this code)
2017-02-05Cleaning of the last commit: lack of attention with the debug of time X(Germano Cavalcante
This was a stupid mistake
2017-02-05Optimize BVHTree creation of vertices that have BLI_bitmap testGermano Cavalcante
Instead of reference the vertex first and test the bitmap afterwards. Test the bitmap first and reference the vertex after. In a mesh with 31146 vertices and the entire bitmap disabled, the loop time is 243% faster With all bitmap enabled, the time becomes 463473% faster!!! One possible reason for this huge difference in peformance is that maybe the compiler is not putting the function "BM_vert_at_index" inline (I dont know if buildbot do this, but it's good to investigate).
2016-06-30Transform Snap: Optimize edge-snap using BVH treeGermano Cavalcante
changes in BLI_kdopbvh: - `BLI_bvhtree_find_nearest_to_ray` now takes is_ray_normalized and scale argument. - `BLI_bvhtree_find_nearest_to_ray_angle` has been added (use for perspective view). changes in BLI_bvhutils: - `bvhtree_from_editmesh_edges_ex` was added. changes in math_geom: - `dist_squared_ray_to_seg_v3` was added. other changes: - `do_ray_start_correction` is no longer necessary to snap to verts. - the way in which the test of depth was done before is being simulated in callbacks.
2016-06-29Fix T48695: Slowdown w/ edit-mesh & shrinkwrapGermano Cavalcante
0b5a0d84 caused regression since edit-mesh BVH wasn't cached, each shrink-wrap modifier created its own BVH.
2016-06-27Docs: arg namesCampbell Barton
2016-05-13Correct assertsCampbell Barton
2016-05-11Correct check for tree being in BVH cacheCampbell Barton
2016-05-11Remove pointer typedef from BVHCacheCampbell Barton
Used ** arguments unnecessarily, also replace BLI_linklist_apply with while loop.
2016-05-06Correct in-range assert (zero is valid)Campbell Barton
2016-05-05Missed last commitCampbell Barton
2016-05-05bvhutils: remove bitmap countingCampbell Barton
All callers pass in valid number
2016-05-05Add asserts to check bvhutils args are correctCampbell Barton
Would have prevented previous error going unnoticed.
2016-05-05Transform/Snap: EditMesh/BKE_bvhutils API improvementsGermano Cavalcante
Separate the creation of trees from EditMesh from the creation of trees from DerivedMesh. This was meant to simplify the API, but didn't work out so well. `bvhtree_from_mesh_*` actually is working as `bvhtree_from_derivedmesh_*`. This is inconsistent with the trees created from EditMesh. Since for create them does not use the DerivedMesh. In such cases the dm is being used only to cache the tree in the struct DerivedMesh. What is immediately released once bvhtree is being used in functions that change(tag) the DM cleaning the cache. - Use a filter function so users of SnapObjectContext can define how edit-mesh elements are handled. - Remove em_evil. - bvhtree of EditMesh is now really cached in the snap functions. - Code becomes organized and easier to maintain. This is an important patch for future improvements in snapping functions.
2016-01-28Cleanup: warnings & styleCampbell Barton
2016-01-25Transform: optimize vertex snap w/ nearest-to-rayGermano Cavalcante
Use BLI_bvhtree_find_nearest_to_ray for vertex snapping, avoids doing screen-space lookup on each vertex.
2015-10-09Correct own error in editmesh bvhCampbell Barton
Flag mix-up and uninitialized var.
2015-10-09Fix leak creating 'empty' looptri bvh treeCampbell Barton
2015-10-06Fix T46389: Shrinkwrap fails in editmodeCampbell Barton
Own regression caused by fix for T46067, edit-mode bvh only contained unselected faces. This commit adds support for an edit-mode bvh containing all faces.
2015-08-27Use correct size for BVH insertionCampbell Barton
2015-08-21BVH-raycast: Use watertight intersectionsCampbell Barton
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-20Cleanup: remove unused BVH_ONQUAD flagCampbell Barton
2015-07-29Expose bvhtree_sphereray_tri_intersection for general useCampbell Barton
2015-07-23Cleanup: arg namesCampbell Barton
2015-07-23Missed adding BVH callbacks in recent commitCampbell Barton
2015-07-22Add bvhtree_from_mesh_looptri utility functionCampbell Barton
2015-07-22Use doxy sections in bvhutilsCampbell Barton
2015-07-22Use const for BVH mesh arraysCampbell Barton
2015-01-09BKE bvhutils: cleanup and refactor to make it more flexible.Bastien Montagne
You can now use lower-level '_ex' versions of bvh creators to only use part of the mesh's elements in the BVH, and/or create bvh from non-DM sources. Needed for transfer data. Note edges extend version of bvh creator is not added here, not needed so far.
2014-12-27cleanup: redundant tri-normal calculationCampbell Barton
2014-08-19Fix T41479: BLI_bvhtree_find_nearest inaccurateCampbell Barton
Gives noticeably better results for shrink-wrap (even in simple cases)
2014-05-03Fix T39997: Multiple boolean modifiers sharing the same right operand crashesSergey Sharybin
The issue was caused by the temporary CD layers being allocated for subsurf meshes, same as we've got back in 881fb43. In the long run this temporary storage is to be re-considered, but it'll also imply re-considering of the Derivedmesh interaction as well. For now let's use a simpler solution which is forbidding modifiers to call getArray for other objects' derivedMeshes but use an API calls which would allocate local copy of the data preventing race condition of shared data in DM.
2014-04-26Code cleanup: use 'const' for arrays (blenkernel)Campbell Barton
2014-04-20Code cleanup: correct abs useCampbell Barton
also minor cleanup to rotation code
2014-02-02Code cleanup: suffix vars to make obvious they are squaredCampbell Barton
2014-01-22Fix T38312: Crash when using snap transform in edit modeSergey Sharybin
Issue was caused by uninitialized boolean flag.
2014-01-13Make bvhutil safe for multi-threaded usageSergey Sharybin
There were couple of reasons why it wasn't safe for usage from multiple threads. First of all, it was trying to cache BVH in derived mesh, which wasn't safe because multiple threads might have requested BVH tree and simultaneous reading and writing to the cache became a big headache. Solved this with RW lock so now access to BVH cache is safe. Another issue is causes by the fact that it's not guaranteed DM to have vert/edge/face arrays pre-allocated and when one was calling functions like getVertDataArray() array could have been allocated and marked as temporary. This is REALLY bad, because NO ONE is ever allowed to modify data which doesn't belong to him. This lead to situations when multiple threads were using BVH tree and they run into race condition with this temporary allocated arrays. Now bvhtree owns allocated arrays and keeps track of them, so no race condition happens with temporary data stored in the derived mesh. This solved threading issues and likely wouldn't introduce noticeable slowdown. Even when DM was keeping track of this arrays, they were re-allocated on every BVH creation anyway, because those arrays were temporary and were freed with dm->release() call. We might re-consider this a bit and make it so BVH trees are allocated when DM itself is being allocated based on the DAG layout, but that i'd consider an optimization and not something we need to do 1st priority. Fixes crash happening with 05_4g_track.blend from Mango after the threaded object update landed to master.
2013-11-19Fix T37445: Crash with snapping and shrink-wrap modifier.Campbell Barton
Developer note: BVHTREE_FROM_FACES was being used for both edit-mesh and derived-mesh bvh-trees, this could cause index lookup errors in editmode. Fix by adding a new type for editmesh so theres no confusion.
2013-10-31code cleanup: spellingCampbell Barton
2013-10-05rename presets not to use '+' character, also some typo fixes.Campbell Barton
2013-05-08code cleanup: remove unused 'dm' arg from BVHTreeFromMesh.Campbell Barton
2013-04-24simple optimizations for bvhtree_from_mesh_faces() for editmesh, was quite ↵Campbell Barton
inefficient (unneeded loops, not breaking out of face loop early). also correct own oversight - use TRANSFORM_DIST_MAX_RAY rather then when checking for max value in snapDerivedMesh.