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-28Fix precision issues in 'interp_weights_poly_v2'Germano Cavalcante
These precision issues were evident in corrected uvs when the option `"Correct Face Attributes"` is enabled.
2020-07-24Cleanup: Rename 'isect_ray_seg_v3' to 'isect_ray_line_v3'Germano Cavalcante
The name was misleading as it returns true whenever it intersects the line represented by the points.
2020-07-21Drivers: add lerp and clamp functions to namespace.Alexander Gavrilov
Implementation of lerp without a function requires repeating one of the arguments, which is not ideal. To avoid that, add a new function to the driver namespace. In addition, provide a function for clamping between 0 and 1 to support easy clamped lerp, and a smoothstep function from GLSL that is somewhat related. The function implementations are added to a new bl_math module. As an aside, add the round function and two-argument log to the pylike expression subset. Differential Revision: https://developer.blender.org/D8205
2020-07-21UI: Add an outer boundary for edge panning, use in outlinerHans Goudey
Currently if you drag and drop an item from the outliner elsewhere in the Blender window, the outliner will scroll the entire time, even if the mouse is far away. This commit adds optional behavior for the edge pan operator that makes it only act if the mouse is close enough to the region. Differential Revision: https://developer.blender.org/D8193
2020-07-21Cleanup: spellingCampbell Barton
2020-07-20BLI: add typedefs for containers that use raw allocatorsJacques Lucke
Those are useful when you have to create containers with static storage duration. If those would use Blender's guarded allocator, it would report memory leaks, that are not actually leaks.
2020-07-20Refactor: Update integer type usageJacques Lucke
This updates the usage of integer types in code I wrote according to our new style guides. Major changes: * Use signed instead of unsigned integers in many places. * C++ containers in blenlib use `int64_t` for size and indices now (instead of `uint`). * Hash values for C++ containers are 64 bit wide now (instead of 32 bit). I do hope that I broke no builds, but it is quite likely that some compiler reports slightly different errors. Please let me know when there are any errors. If the fix is small, feel free to commit it yourself. I compiled successfully on linux with gcc and on windows.
2020-07-19Fix T66937: Blank view on navigation with auto-deph & large clip-endCampbell Barton
2020-07-19Cleanup: spellingCampbell Barton
2020-07-16BLI: move safe math functions to separate headerJacques Lucke
2020-07-16BLI: add safe_divide, safe_modf and safe_logfJacques Lucke
Those are defined exactly as their corresponding functions in Cycles.
2020-07-16BLI: add safe_powf functionJacques Lucke
The same function is also used by cycles.
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.