Commit Graph

4720 Commits

Author SHA1 Message Date
Germano Cavalcante
bc0b75ea37 Merge branch 'blender-v2.90-release' 2020-07-28 09:55:27 -03:00
Germano Cavalcante
47b82fc02f Fix precision issues in 'interp_weights_poly_v2'
These precision issues were evident in corrected uvs when the option
`"Correct Face Attributes"` is enabled.
2020-07-28 09:53:07 -03:00
Campbell Barton
2a52c2d001 Cleanup: spelling, comments 2020-07-28 21:49:37 +10:00
Jacques Lucke
3b9e16a4f7 Particles: initial support for the Time input node 2020-07-28 12:10:37 +02:00
Clément Foucault
13afc81f6d BLI: Add MACRO for enum usage in C++
This is handy to add support for enums used in both C and C++
files. This removes the need to typecast each time for every
operation.

Only support bitwise operators for now.
2020-07-26 17:28:48 +02:00
Jacques Lucke
0ae2a1d12a Particles: improve emitter when object is animated 2020-07-25 14:51:15 +02:00
Germano Cavalcante
273f50a333 Merge branch 'blender-v2.90-release' 2020-07-24 13:13:42 -03:00
Germano Cavalcante
d7c4e96493 Cleanup: Rename 'isect_ray_seg_v3' to 'isect_ray_line_v3'
The name was misleading as it returns true whenever it intersects the
line represented by the points.
2020-07-24 12:07:58 -03:00
Jacques Lucke
b53c46d760 BLI: add MultiValueMap
This is a convenience wrapper for `Map<Key, Vector<Value>>`.
It does not provide any performance benefits (yet). I need this
kind of map in a couple of places and before I was duplicating
the lookup logic in many places.
2020-07-24 12:15:13 +02:00
Jacques Lucke
f359672c35 Particles: spawn particles on mesh surface 2020-07-23 22:30:22 +02:00
Jacques Lucke
149bb0c26d Cleanup: unify naming between different spans 2020-07-23 18:07:44 +02:00
Jacques Lucke
766edbdf1f Particles: improve mesh emitter
Particles are now emitted from vertices of the mesh.
2020-07-23 17:57:11 +02:00
Jacques Lucke
cf123da640 BLI: Add MutableSpan.copy_from method 2020-07-23 17:54:31 +02:00
Jacques Lucke
c8b24af1b2 BLI: move some tests into blenlib/tests
Reviewers: sybren

Differential Revision: https://developer.blender.org/D8315
2020-07-23 15:23:55 +02:00
Alexander Gavrilov
f8cc01595d Drivers: add lerp and clamp functions to namespace.
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-21 19:01:50 +03:00
Hans Goudey
c2b0c64843 UI: Add an outer boundary for edge panning, use in outliner
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-21 10:12:35 -04:00
Jacques Lucke
fdc3f56234 Cleanup: convert unsigned to signed comparison in assert
Thanks to Campbell for pointing this out.
2020-07-21 09:03:37 +02:00
Campbell Barton
c46663ad66 Cleanup: spelling 2020-07-21 16:02:58 +10:00
Jacques Lucke
ccc2a7996b BLI: add typedefs for containers that use raw allocators
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-20 16:03:14 +02:00
Jacques Lucke
4f4af0cbe1 Particles: support removing particles during the simulation
This still cannot be controlled by the user. Currently, all particles are
killed after two seconds
2020-07-20 15:31:05 +02:00
Jacques Lucke
230f7d79ce Fix signed/unsigned comparison 2020-07-20 14:04:09 +02:00
Jacques Lucke
579b180053 BLI: add Vector/Array.fill methods 2020-07-20 13:02:10 +02:00
Jacques Lucke
8cbbdedaf4 Refactor: Update integer type usage
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-20 12:16:20 +02:00
Campbell Barton
8c90910dcc Fix T66937: Blank view on navigation with auto-deph & large clip-end 2020-07-19 21:27:13 +10:00
Campbell Barton
71d0f6f896 Cleanup: spelling 2020-07-19 17:37:02 +10:00
Jacques Lucke
0e3d34e48f BLI: add StringRefNull.c_str() method
This should be used whenever you rely on the fact, that the
returned pointer points to the beginning of a null-terminated array.
2020-07-17 12:38:15 +02:00
Jacques Lucke
d4ce777aed BLI: move inline include to the bottom to avoid redeclaration warning 2020-07-16 11:33:35 +02:00
Jacques Lucke
d897228682 BLI: move safe math functions to separate header 2020-07-16 11:28:31 +02:00
Jacques Lucke
f6f93b5b12 BLI: add safe_divide, safe_modf and safe_logf
Those are defined exactly as their corresponding functions in Cycles.
2020-07-16 11:05:30 +02:00
Jacques Lucke
35bfe1702c BLI: add safe_powf function
The same function is also used by cycles.
2020-07-16 10:46:18 +02:00
Campbell Barton
123e29c274 Cleanup: missing CMake headers from source lists 2020-07-16 13:17:31 +10:00
Campbell Barton
e062def3b4 Cleanup: spelling 2020-07-15 13:11:22 +10:00
Jacques Lucke
6068f49c33 BLI: remove static assert noexcept move constructors
The move constructor of `mpq_class` from GMP currently
allocates when it is moved. So, it cannot be noexcept.
Since we want to use this type, this static assert cannot
stay there.
2020-07-14 15:23:40 +02:00
Campbell Barton
0fb08b7cc4 Cleanup: sort header, cmake paths 2020-07-14 16:04:18 +10:00
Jacques Lucke
91e67c7bda Cleanup: remove some incorrectly placed consts
Clang-tidy reported that those parameters could be const,
but that is not true on windows.
2020-07-13 16:55:39 +02:00
Ray Molenkamp
3dcc7c73e2 MSVC: Fix build error with the 8.1 SDK
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-13 08:38:31 -06:00
Germano Cavalcante
9c9eb03d78 Fix T78855: Knife tool crashes when the geometry has no face
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-13 08:59:47 -03:00
Jacques Lucke
725973485a Clang Tidy: enable readability-non-const-parameter warning
Clang Tidy reported a couple of false positives. I disabled
those `NOLINTNEXTLINE`.

Differential Revision: https://developer.blender.org/D8199
2020-07-13 11:27:09 +02:00
Jacques Lucke
a19584a471 BLI: fix constructor regression for Vector and Array
This was introduced in rB403384998a6bb5f428e15ced5.
2020-07-13 10:51:46 +02:00
Jacques Lucke
644a915b1b BLI: don't allow mutable span of initializer list 2020-07-13 10:49:59 +02:00
Jacques Lucke
cbfedf2139 BLI: add C++ random number generator
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-10 15:54:01 +02:00
Campbell Barton
45287f909c Fix for building on systems besides apple/windows/linux 2020-07-10 23:00:17 +10:00
Jacques Lucke
f62204718b BLI: initial hash function for Color4b and float4x4 2020-07-10 12:57:28 +02:00
Campbell Barton
a148c4676b Cleanup: spelling 2020-07-10 16:04:09 +10:00
Campbell Barton
8f24ec2e26 Cleanup: add BLI_linklist_find_last
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-10 12:14:32 +10:00
Campbell Barton
3dd460aa7f Cleanup: spelling 2020-07-10 11:49:46 +10:00
Jacques Lucke
3623db7784 BLI: add more operator overloads for float2 2020-07-09 19:04:47 +02:00
Jacques Lucke
1e3247c078 Fix: add missing extern "C" 2020-07-09 18:19:39 +02:00
Jacques Lucke
42c99ec15b BLI: rename rand.c to rand.cc 2020-07-09 16:37:44 +02:00
Jacques Lucke
403384998a BLI: improve constructors and conversions to span
This allows us to avoid many calls to `as_span()` methods. I will
remove those in the next commit. Furthermore, constructors
of Vector and Array can convert from one type to another now.

I tested these changes on Linux with gcc and on Windows.
2020-07-08 22:27:25 +02:00