Commit Graph

38878 Commits

Author SHA1 Message Date
Amelie Fondevilla
1193f2d7ec GPv3: Refactor code for the hard eraser
This patch refactors most of the code of the hard eraser, both for readability purpose, and to prepare the integration of the soft mode of the eraser.
The refactoring includes :
 - the use of specific structures and enum types `SegmentCircleIntersection`, `PointCircleSide`, and `PointTransferData` to handle the data more easily,
 - improve readability of the intersections functions (better naming, and more accurate and generic comments),
 - definition of a more generic `compute_topology_change` function that handles point insertion, removal, and curve splitting for curves geometry.

Pull Request: https://projects.blender.org/blender/blender/pulls/111390
2023-08-23 14:13:50 +02:00
Sergey Sharybin
beaf4854b1 Fix #110328: Clay Strip symmetry does not mirror rotation
Caused by 351034891e

This change is a partial revert of the change.

The SCULPT_cube_tip_init() does not deal with the symmetry passes.

Additionally, the commit changed the way how the Z component of
the matrix was constructed: displaced vs. non-displaced area
coordinate.

While the code duplication is often to be avoided, sometimes it is
more clear than a centralized place with a lot of arguments passed
to a function. We can have a pass of de-duplication later on, and
make a better decision, but for now restore user level behavior to
what it is expected to be.

Pull Request: https://projects.blender.org/blender/blender/pulls/111425
2023-08-23 12:21:44 +02:00
Julian Eisel
7bb693581f UI: Move asset shelf out of experimental
This makes the asset shelf available as a standard, non-experimental
feature. Currently no script makes use of it, so it will still not be
available. However the pose library will be updated to use this for its
UI instead.

Initially the asset shelf was committed as experimental feature, even
though it seemed ready for non-experimental. After double checking with
some people (Dalai and Brecht) we decided to go ahead with this.

There are still some futher changes planned, see #107881.
2023-08-23 12:15:33 +02:00
Philipp Oeser
e2a35debde Fix #94129: Unable to remove added keying set from context menu
Mistake in (7-year-old) f6c09eadf0.

The operator was just cancelled if the right button was found, instead
it should only cancel if the button is _not_ found.

Pull Request: https://projects.blender.org/blender/blender/pulls/111373
2023-08-23 09:39:38 +02:00
Campbell Barton
24ef5e097a Cleanup: balance doxy sections 2023-08-23 14:54:46 +10:00
Campbell Barton
c52965e9c7 Cleanup: simplify struct declarations 2023-08-23 13:45:19 +10:00
Harley Acheson
6e20beba22 UI: Statistics Overlay Improvements
Miscellaneous improvements to the Statistics 3DView Overlay. Shows
internal details for selected objects while in Object Mode, including
triangles. Removes the useless "0" shown in the stats while in Sculpt
mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/104663
2023-08-23 01:13:53 +02:00
Bastien Montagne
710b47fe7c Tweak SpaceNode foreach_id callback handling of nodetree ID pointer.
The fact that this pointer may be either to a regular ID, or an embedded
one, without any way to tell it withour accessing the nodetree data,
makes it tricky to handle properly when such 'other ID' access is not
allowed. Here there can still be assumptions and heuristics based on
other data, but this remains fragile and really sub-optimal code.

Should not have any behavioral change in current code, but required for
replacing `blend_read_lib`/`blend_read_expand` by `foreach_id`
(#105666).
2023-08-22 22:17:04 +02:00
Hans Goudey
1857df8d5b Cleanup: Use FunctionRef for PBVH filtering callback
Call functions directly in lambdas rather than passing their
arguments in a separate void * argument. This can be changed
more in the future to move callback arguments out of smaller
structs.
2023-08-22 15:06:42 -04:00
Leon Schittek
899d723da8 Fix: Display nodelinks consistently across different UI scales
Adjust the width, dash length and amount of anti-aliasing of node links
so they look the same independent of the UI scaling.

Adding another parameter to the shader exceeded the limit of 16
attributes. Therefore the parameters to describe the dashes (length,
factor, alpha) are passed in together as a vector.

Ref  #102919

Pull Request: https://projects.blender.org/blender/blender/pulls/111270
2023-08-22 19:24:07 +02:00
Amelie Fondevilla
6cfda322a6 Fix: GPv3: Stroke Eraser does not work with one-point strokes.
The stroke mode of the eraser only tests distance with segments of the strokes, so it does not take into account strokes that only have one point, and thus no segment. This patch fixes the issue by testing if the point is inside the eraser in the case of a one-point stroke.

Pull Request: https://projects.blender.org/blender/blender/pulls/111387
2023-08-22 17:04:51 +02:00
Philipp Oeser
8bae4427ed Fix #111238: Arrow keys in some menus work in the opposite direction
Since menus are created flipped (from event handling point of view), the
root layout block needs to be flagged `UI_BLOCK_IS_FLIP`.
This was missing for a couple of `uiMenuCreateFunc`, namely:
- creating worspaces menu
- modifiers extra ops
- constraints extra ops
- GP modifiers extra ops
- GP Shader FX extra ops

Same fix as f51de2246c.

Not crtitcal, but could go into LTS I guess.

Pull Request: https://projects.blender.org/blender/blender/pulls/111341
2023-08-22 09:35:10 +02:00
Campbell Barton
7d688edbd3 Fix tool-tip memory leak
Error in [0] duplicated the tool-tip string twice.

[0]: f0467b4615
2023-08-22 17:22:03 +10:00
Campbell Barton
e611ef4312 Cleanup: use term even_xy for window relative coordinates, not mval
The term `mval` is reserved for region-relative coordinates
(see wmEvent::mval).
2023-08-22 13:57:58 +10:00
Jesse Yurkovich
f30ac938de Cleanup: Reduce unnecessary mesh position copying
Continuation of #103789 to remove/reduce the copying of mesh position
data.

Pull Request: https://projects.blender.org/blender/blender/pulls/111313
2023-08-22 03:51:53 +02:00
Harley Acheson
d45f47a809 Cleanup: Make format
Formatting changes resulting from "make format"
2023-08-21 15:52:36 -07:00
Guillermo Venegas
4f6785774a UI: Fix scrollbar highlighting outside of regions
Remove scrollbar influence when the mouse cursor is outside
of that region.

Pull Request: https://projects.blender.org/blender/blender/pulls/105973
2023-08-22 00:47:11 +02:00
Germano Cavalcante
c02f2f4947 Fix #109454: Snapping from Tools doesn't work if Depth option is not Surface
Regression introduced in 69d6222481.

In that commit the `Depth` option of the placement started to override
the snap toggle. So only the `Suface` value had snap.

This commit also changes the behavior when triggering Placement.
Previously, snapping was forcefully enabled (in the case of `Surface`)
and snapping elements other than Face were used.

Now snap is only enabled if toggle is enabled.
2023-08-21 15:24:47 -03:00
Germano Cavalcante
5da64ff596 Fix #111355: Crash when calling operator 'TEXT_OT_save'
Crash occurs when calling with `EXEC_DEFAULT` context.

In this case `text->filepath` might be `nullptr` and cause a crash.

Fix by raising a Python error message in this case.
2023-08-21 15:10:42 -03:00
Richard Antalik
9269afda59 Fix VSE strip text crashing on assert
Rectangle of text drawn on strip could be inverted, which triggered
assert in `UI_view2d_view_to_region_rcti_clip()`.

This was because scrollbar width was added to left side of rectangle.
Since now scrollers are drawn on right side, this offset is replaced
with same offset as is used for strip handles. Both sides of rectangle
are clamped to same range, so it will not get inverted.
2023-08-21 18:26:09 +02:00
Germano Cavalcante
f1c6d61854 Fix #111342: Auto Perspective locks viewport into camera
In 384c2e1f36 it was assumed that `VIEWOPS_FLAG_PERSP_ENSURE` only
takes effect if Auto Perspective is enabled in preferences.

But that option is still required in camera view mode.

Therefore always set `VIEWOPS_FLAG_PERSP_ENSURE` if a navigation mode
requires it.

And add a comment explaining the reason.
2023-08-21 11:19:02 -03:00
Amelie Fondevilla
3dc93d6e38 GPv3: Display layer groups in grease pencil dopesheet
This patch adds a new type of channel for grease pencil layer groups, which works as an expandable summary channel of layers inside the group.

Pull Request: https://projects.blender.org/blender/blender/pulls/111015
2023-08-21 10:51:00 +02:00
Campbell Barton
eee33ce2df Cleanup: replace strcpy with BLI_strncpy 2023-08-21 11:09:18 +10:00
Campbell Barton
1c7adc61ae Cleanup: de-duplicate comments & expand on why UV's are clipped 2023-08-21 10:36:41 +10:00
Campbell Barton
33a05725be Cleanup: spelling in comments 2023-08-21 10:05:45 +10:00
Harley Acheson
b25b13a90b Fix #111278: UI Text Extension of Selection
Recent refactors could cause movement of selection endpoints when
extending (holding shift). This ensures that only the cursor side moves
during selection extension.

Pull Request: https://projects.blender.org/blender/blender/pulls/111288
2023-08-19 19:19:57 +02:00
Campbell Barton
5a8cb665e0 Cleanup: various non-functional C++ changes 2023-08-19 23:52:47 +10:00
Harley Acheson
1ce9c2b1f8 Fix #111086: Ignore Scroller Zones in Invisible Regions
If a region is hidden then there is no reason to detect or
consider its (also hidden) scroller action zones.

Pull Request: https://projects.blender.org/blender/blender/pulls/111126
2023-08-18 21:31:35 +02:00
Harley Acheson
9e71b84f1d UI: Error Logging for Some Screen Operations
WM_report on the unlikely event when an area (smaller than minimums) is
within the combined operation bounds (close or join) and interferes.

Pull Request: https://projects.blender.org/blender/blender/pulls/111280
2023-08-18 19:53:18 +02:00
Christoph Lendenfeld
0c26d4cc3e Fix: Number input on slider
When using a slider it is possible to enter numbers for an exact value
However that input was capped between 0 and 1,
which is no longer correct since the range can be arbitrary.

Additionally it was divided by 100 because the slider
operator system assumed we'd be working with percentages.

This fixes both of these issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/111269
2023-08-18 17:29:41 +02:00
Christoph Lendenfeld
e42c70fd31 Fix #110053: Crash on linked animation data with drivers
When copying (CTRL+L->Animation Data) a driver between two objects
that are linked with library overrides, `AnimData` was not created.
This did crash Blender when it tried to use the `nullptr`

The reason it crashed is because the function
`DEG_id_tag_update()`
was never called.

Fix it by restructuring the code so the function gets called

Pull Request: https://projects.blender.org/blender/blender/pulls/110795
2023-08-18 09:17:55 +02:00
Campbell Barton
74b4bb7c4c Doc: correct code-comment 2023-08-18 09:16:25 +10:00
Campbell Barton
bc1ffdce5b Cleanup: spelling in comments 2023-08-18 08:56:12 +10:00
Campbell Barton
bf35eb9cbc Cleanup: format 2023-08-18 08:38:02 +10:00
Almaz-Shinbay
28f4bb2007 Outliner: Port modifier elements to new tree-element code design
No user visible changes expected.

Part of #96713, continuation of work started in 249e4df110 and 2e221de4ce.
Refer to these for a motivation and design overview.

Adds new classes for modifier elements.

Pull Request: https://projects.blender.org/blender/blender/pulls/111114
2023-08-17 23:24:16 +02:00
Harley Acheson
d308f35896 UI: Make View3D Header Overlapped
Allow the View3D Header region to become transparent if "Region
Overlap" is enabled AND the Alpha of the Header's theme color is less
than 255. Basically its RGN_TYPE_HEADER and RGN_TYPE_TOOL_HEADER will
behave and look the same.

Pull Request: https://projects.blender.org/blender/blender/pulls/111194
2023-08-17 22:57:11 +02:00
Michael Kowalski
6f4cb9bc56 USD: Skeleton and blend shape import
Added support for UsdSkel animation import.

This addresses #110076.

Added USDSkeletonReader class which imports UsdSkelSkeleton primitives
as armatures.

Extended USDMeshReader to import UsdSkelBlendShape as shape keys.

Extended USDMeshReader to import USD skinning data as as deform groups
and an armature modifier on the mesh object.

Added USDMeshReader::get_local_usd_xform() to override the transform
computation to account for the binding transformation for skinned meshes.

Pull Request: https://projects.blender.org/blender/blender/pulls/110912
2023-08-17 20:11:51 +02:00
Bastien Montagne
b454fc2161 Cleanup/Fix VSE readfile code, fully deprecate SEQ_TYPE_SOUND_HD.
This fixes a few related issues in VSE code:
* 'lib_link' code was doing 'read_data' tasks (like cleaning up internal
  runtime data).
* Handling of `SEQ_TYPE_SOUND_HD` deprecated type of strips was
  extremely confusing (versioning done partly in 'lib_link' code, partly
  in some 2.50 do_version code).
* Still using deprecated `SEQ_TYPE_SOUND_HD` strip type outside of
  versioning code.
* Missing proper usage of deprecated `SEQ_TYPE_SOUND_HD` type inside of
  versioning code (!).

Note that the actual conversion from `SEQ_TYPE_SOUND_HD` to
`SEQ_TYPE_SOUND_RAM` is now done in the 'after setup' versioning
process, where it is somewhat safer to add IDs. This implies that
`SEQ_TYPE_SOUND_HD` must be taken into account throughout the whole
regular versioning process (before and after liblink).

Conversion logic itself has been moved to the VSE code.

Pull Request: https://projects.blender.org/blender/blender/pulls/111135
2023-08-17 16:09:15 +02:00
Bastien Montagne
ff72c45ce1 Fix (unreported) missing texuser handling in SpaceProperties' foreach_id code. 2023-08-17 16:08:05 +02:00
Bastien Montagne
d7d487e13a Refactor: Move Editors' 'foreach_id' code into a new SpaceType callback.
Was a known pending TODO for quite some time already.

This commit should have no behavior change at all.
2023-08-17 16:08:05 +02:00
Christoph Lendenfeld
2b30d26ae9 Refactor: resolution_scale in graph_draw.cc
Recent patches added a variable `resolution_scale`
This variable defines how many points on the x or y axis to add.
However I find the name confusing.

Instead of that, change it to `pixels_per_unit`
and move the `points_per_pixel` factor
to `calculate_bezt_draw_resolution`

no functional changes

Pull Request: https://projects.blender.org/blender/blender/pulls/111037
2023-08-17 14:25:16 +02:00
Pratik Borhade
594dceda7f Fix #89479: Unable to select hierarchies of multiple objects from outliner
`select hierarchy` is treated in similar way as we're selecting single element from outliner.
When `object_select_hierarchy_fn` is called for the first time, we clear select flag for all elements
in `outliner_item_select`. This causes issue when `select hierarchy` is called for multiple elements.
So fix is to not touch select and activate flags when `OL_ITEM_RECURSIVE` flag is set.

This also fixes the hierarchy selection when "sync select" is OFF.

Old Differential Revision: https://archive.blender.org/developer/D16804

Pull Request: https://projects.blender.org/blender/blender/pulls/104737
2023-08-17 13:23:46 +02:00
Sergey Sharybin
33718b2d75 Fix #111165: Regression: Blender Crashes On Scene Switch
Fix missing depsgraph tag in the "Link Objects to Scene" operator.

Pull Request: https://projects.blender.org/blender/blender/pulls/111214
2023-08-17 11:31:59 +02:00
Jeroen Bakker
826ebccb42 Cleanup: Make format 2023-08-17 10:53:53 +02:00
Christoph Lendenfeld
bb8766ef01 Animation: Match Slope slider
It blends selected keys to the slope of neighboring ones.
It is used to push the segment closer to the values of the next or previous pose.

Co-authored-by: Ares Deveaux <aresdevo@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/110567
2023-08-17 10:28:46 +02:00
Campbell Barton
c713c70781 CMake: quiet uninitialized warnings 2023-08-17 11:53:56 +10:00
Harley Acheson
d102536b1a Fix #93685: Allow Outliner Drag to Other Windows
Allow dragging items from Outliner to other windows. Disables EdgePan
operator when entering new window. Canceling the drop redraws target
area and resets all modal cursors. But this does not fix incorrect
mouse cursor during operations on the remote target window.

Pull Request: https://projects.blender.org/blender/blender/pulls/105196
2023-08-17 00:48:32 +02:00
Guillermo Venegas
84718feb4b Fix potential leaks using SHGetKnownFolderPath
Documentation for `SHGetKnownFolderPath` remarks that the `PWSTR`
parameter should always be freed with `CoTaskMemFree`  even if it
succeeds or not.

Pull Request: https://projects.blender.org/blender/blender/pulls/111128
2023-08-16 23:10:00 +02:00
Harley Acheson
0c7496f74d UI: Increase Color Picker Size
Increase the Color Picker Size by 33%

Pull Request: https://projects.blender.org/blender/blender/pulls/111153
2023-08-16 22:59:14 +02:00
RedMser
f1e7fe5492 UI: Windows "Quick Access" items to File Browser System List
On the Windows platform add any Explorer "Quick Access" items to the
bottom of the File Browser "System" List in the sidebar.

Co-authored-by: Harley Acheson <harley.acheson@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/108431
2023-08-16 22:36:06 +02:00