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
2020-07-15Cleanup: spellingCampbell Barton
2020-07-14Cleanup: sort header, cmake pathsCampbell Barton
2020-07-13Cleanup: remove some incorrectly placed constsJacques Lucke
Clang-tidy reported that those parameters could be const, but that is not true on windows.
2020-07-13MSVC: Fix build error with the 8.1 SDKRay Molenkamp
shobjidl_core.h only exists in the windows 10 SDK in the 8.1 SDK ShObjIdl.h will have the definitions we need, which still exists in the 10 SDK and implicitly includes shobjidl_core.h. so ShObjIdl.h will work on both SDK versions.
2020-07-13Fix T78855: Knife tool crashes when the geometry has no faceGermano Cavalcante
I don't see the need for a BVH Tree to have root but not have leafs. But apparently this case is possible.
2020-07-13Clang Tidy: enable readability-non-const-parameter warningJacques Lucke
Clang Tidy reported a couple of false positives. I disabled those `NOLINTNEXTLINE`. Differential Revision: https://developer.blender.org/D8199
2020-07-10BLI: add C++ random number generatorJacques Lucke
This adds `blender::RandomNumberGenerator` in `BLI_rand.hh`. Furthermore, `RNG` is now implemented in terms of this new generator. No functional changes are expected, the generated random numbers are not changed by this commit. Reviewers: campbellbarton, brecht Differential Revision: https://developer.blender.org/D8259
2020-07-10Fix for building on systems besides apple/windows/linuxCampbell Barton
2020-07-10Cleanup: spellingCampbell Barton
2020-07-10Cleanup: add BLI_linklist_find_lastCampbell Barton
This makes adding to the end of a linked list simpler, In most cases we avoid this in favor of BLI_linklist_append. For one off operations it's OK.
2020-07-10Cleanup: spellingCampbell Barton
2020-07-09Fix: add missing extern "C"Jacques Lucke
2020-07-09BLI: rename rand.c to rand.ccJacques Lucke
2020-07-07BLI: Fix mistake in SpinLock TBB migrationSergey Sharybin
Copy-paste mistake.
2020-07-07Optimization: use `BLI_bvhtree_intersect_plane` to detect faces that will be ↵Germano Cavalcante
affected by the knife tool The knife code currently calls the `BLI_bvhtree_overlap` function that tests the overlap between the mesh tree and an AABB that encompasses the points projected in the clip_start, clip_end and or clip_planes of the view. This resulted in many false positives since the AABB is very large. Often all the triangles "overlapped". The solution was to create a new function that actually tests the intersection of AABB with a plane. Even not considering the clip_planes of the view, this solution is more appropriate than using overlap. Differential Revision: https://developer.blender.org/D8229
2020-07-07Cleanup: spellingCampbell Barton
2020-07-06Cleanup: Use the BLI_edgehash API in the sewing simulation of clothsGermano Cavalcante
Also remove the code in the ghash that is no longer used. This change simplifies the existing code. Differential Revision: https://developer.blender.org/D8219
2020-07-06Cleanup: spelling, commentsCampbell Barton
2020-07-06Cleanup: rename namespace TimeIt to timeitJacques Lucke
According to our style guide, namespaces should have lower case names.
2020-07-06Cleanup: warnings, spellingCampbell Barton
2020-07-03Clang-tidy: Enable braces-around-statements warningSebastian Parborg
2020-07-03Clang-Tidy: enable readability-named-parameterJacques Lucke
2020-07-03Cleanup: use nested namespacesJacques Lucke
2020-07-03Cleanup: Use trailing underscore for non-public data membersJacques Lucke
This makes the code conform better with our style guide.
2020-07-03BLI: Use TBB spin_mutex as SpinLock implementationSergey Sharybin
When building without TBB use native to the platform spin lock implementation. For Windows it is an atomic-based busy-wait, for Linux it is pthreads' spin lock. For macOS it is a mutex lock. The reason behind this is to stop using atomics library which has been declared deprecated in SDK version 10.12. So this changes fixes a lot of noisy warnings on the newer SDK. Differential Revision: https://developer.blender.org/D8180
2020-07-03BLI: Switch threads implementation file to C++Sergey Sharybin
Allows to use C++ primitives in the primitive implementation.
2020-07-03Cleanup: spellingCampbell Barton
2020-07-02Cleanup: spellingCampbell Barton
2020-07-01Cleanup: spellingCampbell Barton
2020-06-29Fix compile error on Apple ClangJulian Eisel
Needs to compile with `CMAKE_OSX_DEPLOYMENT_TARGET` of 10.14 at least to have `std::optional<>::value()` available. So we have to increase the minimum required compiler version, but that requires more changes. Just fix the build error for now.
2020-06-29Cleanup: rename namespace DotExport to dotJacques Lucke
2020-06-27Docs: correct invalid doxygen params & referencesCampbell Barton
2020-06-25Cleanup: spellingCampbell Barton
2020-06-18Allow interpolation of matrices with negative scale / axis flipsSybren A. Stüvel
The matrix interpolation function `interp_m3_m3m3()` decomposes the matrices into rotation and scale matrices, converts the rotation matrices to quaternions, SLERPs the quaternions, and converts the result back to a matrix. Since quaternions cannot represent axis flips, this results in interpolation problems like described in T77154. Our interpolation function is based on "Matrix Animation and Polar Decomposition", by Ken Shoemake & Tom Duff. The paper states that it produces invalid results when there is an axis flip in the rotation matrix (or negative determinant, or negative scale, those all indicate the same thing). Their solution is to multiply the rotation matrix with `-I`, where `I` is the identity matrix. This is the same as element-wise multiplication with `-1.0f`. My proposed solution is to not only do that with the rotation matrix `R`, but also with the scale matrix `S`. This ensures that the decomposition of `A = R * S` remains valid, while also making it possible to conver the rotation component to a quaternion. There is still an issue when interpolating between matrices with different determinant. As the determinant represents the change in volume when that matrix is applied to an object, interpolating between a negative and a positive matrix will have to go through a zero determinant. In this case the volume collapses to zero. I don't see this as a big issue, though, as without this patch Blender would also produce invalid results anyway. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D8048
2020-06-18Transform: Snap to the intersection between constraint and geometryGermano Cavalcante
This commit changes the behavior of 4 snapping combinations: **1. While constraining to a plane, snap to an edge element:** The snap is made at the intersection between the edge direction and the constraint plane. **2. While constraining to a plane, snap to a face element:** The snap is made to the nearest point between the snap point and the line that intersects the face plane with the constraint plane. **3. While constraining to an axis, snap to an edge/line element:** The snap is made to the nearest point on the axis to the edge/line. **4. While constraining to an axis, snap to a face element:** The snap is made at the intersection of the axis and the plane defined by the face. To avoid unpredictable jumps outside view boundaries, an alignment check is made for each of these snapping combinations. Resolve/fix T66422 Differential Revision: https://developer.blender.org/D5608
2020-06-16Fix bitscan_reverse_uint on MSVC compilerSergey Sharybin
Was a mistake from the very beginning of implementation.
2020-06-09BLI: rename ArrayRef to SpanJacques Lucke
This also renames `MutableArrayRef` to `MutableSpan`. The name "Span" works better, because `std::span` will provide similar functionality in C++20. Furthermore, a shorter, more concise name for a common data structure is nice.
2020-06-09BLI: put C++ data structures in "blender" namespace instead of "BLI"Jacques Lucke
We plan to use the "blender" namespace in other modules as well.
2020-06-09BLI: generally improve C++ data structuresJacques Lucke
The main focus here was to improve the docs significantly. Furthermore, I reimplemented `Set`, `Map` and `VectorSet`. They are now (usually) faster, simpler and more customizable. I also rewrote `Stack` to make it more efficient by avoiding unnecessary copies. Thanks to everyone who helped with constructive feedback. Approved by brecht and sybren. Differential Revision: https://developer.blender.org/D7931
2020-06-05Cleanup: use 'r_' prefix for return arguments in math_colorCampbell Barton
2020-06-05Cleanup: maybe uninitialized variable warningCampbell Barton
2020-06-05Cleanup: spellingCampbell Barton
2020-05-28Cleanup: spellingCampbell Barton
2020-05-27CD_PROP_COL datalayerPablo Dobarro
This implements a generic color datalayer and its functions. Based on D5975. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7838
2020-05-26UI: Windows Shell Links & Improved Mac AliasesHarley Acheson
Adds support for Windows Shell Links (shortcuts) to the File Browser. Extended Mac Alias usage. Better visualization of linked items. Differential Revision: https://developer.blender.org/D7380 Reviewed by Campbell Barton
2020-05-25Calculate epsilon values for interp_weights_poly to improve accuracySebastian Parborg
interp_weights_poly_v2 would have too large epsilon values for small polygons. To solve this we now calculate the appropriate epsilon value so it can gracefully handle big and small values. To make sure there was no regression, these changes were tested with the files in T36105, T31581. Also with a surface deform modifier test file attached in the differential below. Reviewed By: Brecht Differential Revision: http://developer.blender.org/D7772
2020-05-25Cleanup: unused variable warningsCampbell Barton
2020-05-25Task: Graph Flow Task SchedulingJeroen Bakker
Add TBB::flow graph scheduling to BLI_task. Using flow graphs, a graph of nodes (tasks) and links can be defined. Work can flow though the graph. During this process the execution of the nodes will be scheduled among the available threads. We are planning to use this to improve the threading in the draw manager. The implemented API is still limited it only supports sequential flows. Joins and buffers are not supported. We could eventually support them as part of an CPP API. These features from uses compile time templates and are hard to make a clean C-API for this. Reviewed By: Sergey Sharybin, Brecht van Lommel Differential Revision: https://developer.blender.org/D7578
2020-05-20Cleanup: make guarded memory allocation always thread safeBrecht Van Lommel
Previously this would be enabled when threads were used, but threads are now basically always in use so there is no point. Further, this is only needed for guarded allocation with --debug-memory which is not performance critical.
2020-05-20Merge branch 'blender-v2.83-release'Brecht Van Lommel