Commit Graph

70599 Commits

Author SHA1 Message Date
e95c0fba09 BMesh: remove BMEditMesh.ob use BKE_editmesh_lnorspace_* API
Note that this is a bit clumsy having both edit-mesh and mesh,
BKE_editmesh_ensure_autosmooth & BKE_editmesh_lnorspace_update
are often called together, these could be made into a single functions.
2020-01-07 14:27:59 +11:00
6e39aeb2cd BMesh: remove BMEditMesh.ob use for draw manager 2020-01-07 14:06:33 +11:00
a8d11995bf BMesh: remove BMEditMesh.ob use for vert coord access, projection 2020-01-07 13:53:03 +11:00
592e245a90 BMesh: remove BMEditMesh.ob use for Bevel
The pointer is causing issues since two objects can share an edit-mesh,
removing in stages, see T72848.

Also fixes the material index being clamped by every object.
2020-01-07 13:41:03 +11:00
3a35301fd1 Fix T70821: Hair Radius Is Actually Hair Diameter
Renamed hair tip and root properties to be called diameter rather than radius. The old name was incorrect.
2020-01-06 21:54:56 +01:00
04ddd6f717 Fix T72700: Missing flush vert visibility on sculpt undo
This was caused by a missing call to BKE_mesh_flush_hidden_from_verts()
when a SCULP_UNDO_HIDDEN undo step is processed.

Reviewed By: jbakker

Maniphest Tasks: T72700

Differential Revision: https://developer.blender.org/D6488
2020-01-06 16:59:22 +01:00
55fbb0fd69 BM_mesh_intersect: Match the mesh in Debug build with Release
Prevents regression in unit tests.
2020-01-06 12:33:46 -03:00
60c54be053 Fix/Cleanup invalid call to blendfile reading in UNDO_DISK.
Currently harmless since undo to disk is disabled, but that is not a
good reason to have invalid code.
2020-01-06 15:46:43 +01:00
7213c42b6e Fix BKE_mesh_validate_arrays invalidating face selection
Use `totpoly` instead of `totface`.

The original code was written for non-bmesh case and likely missed this
update.
2020-01-06 09:26:21 -03:00
24d46bdbf7 Gizmo: match UV editor gizmos more closely to the 3D view 2020-01-06 23:21:50 +11:00
3978568e45 Cleanup: remove unused 2D arrow gizmo
It's simpler to support a single gizmo type for 2D/3D.
2020-01-06 23:21:50 +11:00
0d67eb277f Gizmo: support 3D arrow gizmos in 2D spaces
Allows 2D arrows to be removed, since they work slightly differently
and don't support offset matrices.

Use these in the UV editor.
2020-01-06 23:21:45 +11:00
98e4fbc7cc Gizmo: use compatible scale values between 2D/3D gizmos
Make the UV editor gizmos the same size as the 3D view.
2020-01-06 23:08:27 +11:00
b7acb8690a Fix T72902: Whiskey Lake support
Users reported that Whiskey lake has the same issue as other intel
platforms where an extra glFlush is needed. This change will
add Whiskey Lake to that exception.

Patch provided by Philip Luk
2020-01-06 12:57:14 +01:00
7f3e121926 USD Exporter: removed from experimental features
There were two reasons the USD Exporter was listed as experimental:

- Originally there was no deduplication of mesh normals & UV coordinates
 (resolved in rBf5e00f735106b5ec635806a4c795a2bc46ae8369), and
- the way materials were exported was incompatible with instancing with
  USD 19.07. This seems to be resolved with the current version of USD
  (19.11).

Blender (more specifically, `makesdna`) doesn't seem to like empty DNA
structs, so I couldn't remove all properties from
`UserDef_Experimental`. Instead I have just kept `char _pad0[8]`.

Reviewed by: campbellbarton

Differential Revision: https://developer.blender.org/D6519
2020-01-06 12:41:15 +01:00
a6d01365e3 Fix crash opening specific files
For some reason socket flag and actual presence of link got out of sync.
Check for link to be present prior to access it.

Fixes crash opening file from T48684.
2020-01-06 11:52:35 +01:00
9483997472 Depsgraph: Fix wrong ID filtering
Was only using first ID instead of all of them.

Might have been causing issues when updating motion paths of
multiple objects.

Spotted by Jack C, thanks!
2020-01-06 09:23:20 +01:00
Maxim Vasiliev
e993667a46 Fix (unreported) critical mistake in Node copying code.
Nice reversed-logic mistake in rB693721cc7e7d.

How this could remain unnoticed for almost one year is fairly
mysterious, this should have basically broke all node tree copying,
would expect such bug to get reported within days, weeks at most...
Probably because that function is not that much used in current code.

Nice reminder also that those bloody nodetrees still need a lot of
cleanup/refactor/simplification when it comes to ID management code.

Reported/fixed as part of D6484, but this really needs its own commit.
2020-01-05 18:27:00 +01:00
b15f601d2c Edit Mesh: Use multithreading in other parts of Auto Merge & Split
In the Auto Merge & Split feature, multithreading was only used to
find duplicates between vertex and another vertex.

But with this patch, multithreading is now used to find intersections
etween edge and edge and between edge and vertex.

In my tests I noticed a performance improvement of around 180%
(0.017151 secs to 0.009373 secs)

Differential Revision: https://developer.blender.org/D6528
2020-01-05 14:22:59 -03:00
8df339438a Fix T72682: Regression when moving markers while holding ctrl
In 2.79 when moving a marker with `G` while holding `ctrl` the marker
would snap to one-second movements. This was (probably accidentally)
removed when the Timeline Editor was removed in rB5374865523faf253.

Reviewers: mano-wii

Differential Revision: https://developer.blender.org/D6527
2020-01-05 15:55:54 +01:00
485ff4b9bf Fix T72423: Incorrect tooltips in curve profile layout 2020-01-05 15:10:25 +01:00
85d43943dd GPencil: Add missing update in previous commit of task T72897 2020-01-05 09:47:51 +01:00
3576056eea Cleanup: warning 2020-01-05 16:15:32 +11:00
5c66739b78 Fix T72897: Move Channels operator moves Grease Pencil Layers wrongly
This operator was pending of fix.
2020-01-04 22:02:21 +01:00
952bc89d6e BLI_kdopbvh: Deduplicate code
No need to create different callbacks for `BLI_task_parallel_range`,
these callbacks are called a few times.
2020-01-04 16:56:12 -03:00
0ac41dea7e BLI_bvhtree_overlap does not work multithreaded
`BLI_task_parallel_range` counts the number of tasks depending on the
number of items.

In the case of `BLI_bvhtree_overlap` the number of items is always
between 2 and 16, which makes it always run in single thread.

So, set the maximum number of items per thread to 1.

In my tests the cloth collision system (which calls that function)
went from 0.80fps to 0.88fps.

Differential Revision: https://developer.blender.org/D6523
2020-01-04 08:36:47 -03:00
8314e20139 BLI_bvhtree_overlap: Don't use BLI_task API when not needed
No functional change.
2020-01-04 08:34:10 -03:00
aad09525fb BLI_bvhtree_overlap: Fix wrong count of child nodes
As you can see, here is testing the "children" of `node1`.
So bvhtree is `tree1`.

This problem has never been observed because usually `tree_type`
of `tree1` equals `tree_type` of `tree2`.
2020-01-04 00:34:47 -03:00
025d13045a BLI_bvhtree_overlap: Make sure the number of nodes matches the number of threads 2020-01-03 23:06:07 -03:00
ad6c66fa3e Edit Mesh: Multithread support for Auto Merge & Split
Also collapsed edges are no longer used in the overlap test.
This greatly improves peformanse for cases where the distance tested is
relatively large.
2020-01-03 22:54:15 -03:00
5659c8e0bf BLI_bvhtree_overlap: Improve non-multithreaded usage
Although not using multithreading, the `thread` parameter in the
`BVHTree_OverlapCallback` callback always returned a value between the
"number of threads".

This parameter should always be 0 in such cases.

Also a `BLI_Stack` was created for each "thread" and used.
This small overhead is no longer seen.

Differential Revision: https://developer.blender.org/D6510
2020-01-03 22:48:12 -03:00
9b74e648c5 Fix T71495: Some Textures with AnimData not visible in Dopesheet
T71495 describes two problems with animation of textures not showing up in
the dope sheet:

1. textures connected to force fields
2. textures of brushes

This patch resolves the first case.

An alternative would be to switch to iteration of dependencies using
`BKE_library_foreach_ID_link()`. This is a good idea to do at some point,
but adding these few lines was considerably easier & safer to do.
2020-01-03 11:02:35 +01:00
846c034323 UI: scale region hide threshold by zoom level
Resolves issue were it wasn't possible to have a single column toolbar
when zoomed out.
2020-01-03 16:40:10 +11:00
eb6ca6cf9f Fix gizmos flickering when resizing regions 2020-01-03 16:28:40 +11:00
e26a527770 Fix toolbar flickering on resize, inability to hide 2020-01-03 15:50:50 +11:00
ac7eb71089 UI: Improve toolbar width snapping
Allow narrower toolbar before snapping to two column layout.
2020-01-03 15:37:35 +11:00
b423b89127 Tool System: enable fallback tool by default
This defaults to selection when not using a gizmo.
The previous behavior to drag anywhere can be set in the tool settings
or by selecting the fallback tool (Alt-W).

See: T66304
2020-01-03 14:04:11 +11:00
a8ce9a143a Tool System: store the fallback tool for re-use
The fallback tool was run-time only data,
now it's stored in the blend file.
2020-01-03 12:34:55 +11:00
a854840e76 Fix T57111: Particle texture keyframes missing from Graph Editor
The entire particle system was skipped when the particle system itself did
not have any animation data. This caused the animation data on the texture
to be skipped.
2020-01-02 18:14:59 +01:00
311178fcf2 Fix T72821: Crash when IOD is removed from post-update callback
IDs recalc clear flag was accessing freed memory.

There is more detailed comment about solution in the code.
2020-01-02 17:19:29 +01:00
de530a95dc Transform: Pose: Partial support for Auto IK + X-Mirror
Fix T69572

TODO: support `Relative-Mirror` as well.

Maniphest Tasks: T69572

Differential Revision: https://developer.blender.org/D5862
2020-01-02 12:53:46 -03:00
2e06a6bec3 Fix T72820: Linked objects jumping around during render
Was caused by 6183688c35 (thanks ronsn for nailing it down!).

The issue is that order of copy-on-write operations is not defined, so
can not use flags set by that operation to make decision.
2020-01-02 16:47:39 +01:00
9583932538 Fix T70986: NLA strip Animated Influence does not respect Default Interpolation
Since we are already respecting the User Preference for 'auto_smoothing'
in 'BKE_nlastrip_validate_fcurves', we should also do this for default
interpolation and handles.

Maniphest Tasks: T70986

Differential Revision: https://developer.blender.org/D6490
2020-01-02 12:46:43 +01:00
Kevin Havranek
87e7ad197d Fix T71303: RMB outside context menu ignored 2020-01-02 18:06:11 +11:00
86832ececc Tool System: adjust Smooth/Randomize modal operator behavior
Previously the default values were left non-zero to avoid having to
update scripts. However, this meant it wasn't possible to setup
non-modal key bindings for smooth & randomize.

Now these operators follow logic of many other operators where setting
the value executes immediately, leaving unset runs modal.

Existing keymaps & scripts will need to be updated.

Addresses issue raised in f4a4ec8425.
2020-01-02 17:18:42 +11:00
b5dd73a48b Cleanup: remove redundant image assignment when ensuring UV's 2020-01-02 13:17:06 +11:00
e9ac784237 Cleanup: quiet const warnings 2020-01-02 13:08:20 +11:00
d27fb46715 EditMesh: Improve AutoMerge with Split Edges & Faces
Previously, compared to `Auto Merge` without `Split Edges & Faces`,
`Auto Merge` with this option ignored duplicates between selected
vertices. It only considered duplicates between selected vertices and
unselected vertices.

This is a regress and not a progress.

This commit implements this behavior, so this option matches the other
`Auto Merge`.
2020-01-01 21:06:59 -03:00
86a2ffc3ab Transform: Individual Origins: Create islands between only selected uvs.
Currently the islands are created depending only on the visible UVs.
This can be confusing because compared to Edit Meshes, islands are created based on the selected elements.

T68284 shows a case where this confusion is observed.

Differential Revision: https://developer.blender.org/D6502
2019-12-31 13:04:57 -03:00
56ef761381 Image Editor: Initialize Add Tile options from current tile
Previously, non-default alpha or float settings had be set manually.

With this change, the Add Tile and Fill Tile operators initialize
width, height, alpha and float from the currently selected tile
if it has a vaild ImBuf, otherwise from the first tile.
2019-12-30 19:20:54 +01:00