UI: "vertex keys" -> "shape keys" #104868

Closed
Philipp Oeser wants to merge 38 commits from lichtwerk:cleanup_rename_vertex_keys into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

38 Commits

Author SHA1 Message Date
Philipp Oeser 28820d0603 Cleanup: "vertex keys" -> "shape keys"
These are generally referred to as "shape keys"
2023-02-17 15:39:23 +01:00
Campbell Barton f58cfbb94a Cleanup: use PI and PI/2 in compatible_eul
3.2 and 1.6 where used as rough equivalents to M_PI & M_PI_2, however
this raised questions about the significance of these values.

Running thousands of tests with generated euler inputs I wasn't able to
detect a difference so use M_PI & M_PI_2 instead.
2023-02-17 15:39:23 +01:00
Campbell Barton 5b83f5c2a4 Docs: add doc-string for compatible_eul & improve code-comments 2023-02-17 15:39:23 +01:00
Jeroen Bakker 6247df9932 Cleanup: Silence compiler warning in VKShader. 2023-02-17 15:39:23 +01:00
Campbell Barton 8fb6ece789 BLI_math: correct the threshold for wrapping rotation in compatible_eul
Having a threshold well above PI would result in discontinuity in some
cases.

The discontinuity can be measured by generating euler values (both
random and interpolated rotations), then comparing the accumulated
difference.
Changing the threshold for wrapping rotations produces at least as good
or more compatible results.

This was reported as #17297 and fixed in [0], however the change was
only applied for the game-engine.

Ref !104856

[0]: ab44742cf3
2023-02-17 15:39:23 +01:00
Joseph Eagar 113b891e16 Sculpt: Fix 104618: Topology automasking errors
Sculpt island tags are now invalidated whenever the PBVH
is rebuilt.
2023-02-17 15:39:23 +01:00
Campbell Barton 9f0c7a8026 Cleanup: loop over axes in compatible_eul
There is no need to inline the loop.
2023-02-17 15:39:23 +01:00
Campbell Barton 8f7fcdd42b Cleanup: unused warning 2023-02-17 15:39:23 +01:00
Joseph Eagar fb5439b184 Cleanup: fix warnings from last commit 2023-02-17 15:39:23 +01:00
Joseph Eagar d4d60cc8cf Sculpt: Add support for last operator panel to mesh filter operator
* Repeat last operator now works for mesh filters.
* Added an iteration_count property to repeat the filter.
  This is especially useful when compounded with the repeat
  last operator tool.
* The mouse event history is stored for mesh filters
  with more advanced user input (mostly Smooth and Relax
  filters).
2023-02-17 15:39:23 +01:00
Ray molenkamp f6fcb260ce Deps: Optimize meson based deps
meson defaults to debug builds [0] unless you tell it differently, this
diff changes the options for

- epoxy
- fribidi
- harfbuzz
- wayland
- wayland_protocols

to be optimized, mesa was already optimized

[0] https://mesonbuild.com/Builtin-options.html#core-options

Pull Request #104802
2023-02-17 15:39:23 +01:00
Jacques Lucke d9250bf35c Cleanup: use BitSpan instead of BitVector where possible
Passing a `BitSpan` is generally better because then the caller is not
forced to allocate the bits with a `BitVector`. Also, the `BitSpan` can
be stored in the stack, which removes one pointer indirection compared
to accessing bits through a `BitVector &`.
2023-02-17 15:39:23 +01:00
Jacques Lucke 17f6979114 BLI: new bit span data structure
This adds `BitSpan` and `MutableBitSpan`. They work essentially the same as
the normal `Span` and `MutableSpan`, but work on individual bits instead
(the smallest type `Span` can handle is one byte large).

This also splits up `BLI_bit_vector.hh` and introduces two new headers:
`BLI_bit_ref.hh` and `BLI_bit_span.hh`.

The goal here is to make working with dynamically sized bit masks more
convenient. I'm mainly working on this because I might want to use this
in #104629. It can also be used to cleanup function signatures that
currently take a reference to a `BitVector`. Like with `Span` vs. `Vector`,
it is better to pass a `BitSpan` to function than a `const BitVector &`.

Unit tests for the new code are included.

Pull Request #104671
2023-02-17 15:39:23 +01:00
Chris Blackbourn f8a692e25d Cleanup: format 2023-02-17 15:39:23 +01:00
Nate Rupsis a0c46b6725 Fix: Remove the rest of the tracks in the BKE_nlatrack_remove_and_free to free up the memory
Fix: The BKE_nlatrack_remove_and_free (#104752) unit test leaks a little memory. Cleaning up the rest of the track list to ensure everything is freed.
Co-authored-by: Nate Rupsis <nrupsis@gmail.com>
Pull Request #104839
2023-02-17 15:39:23 +01:00
Julian Eisel 9a6c3630c8 Fix unused variable in release builds
Assert is not needed in this case.
2023-02-17 15:39:23 +01:00
Hans Goudey f0787b38ef Cleanup: Use Span to iterate over nodes instead of ListBase
Similar to 5b8e2ebd97.
2023-02-17 15:39:23 +01:00
Hans Goudey e828fd1eb7 Cleanup: Nodes: Avoid unnecessary const cast, use early return 2023-02-17 15:39:23 +01:00
Falk David 9e5be30ebe Cleanup: Fix operator description 2023-02-17 15:39:23 +01:00
Nate Rupsis b126baaa90 Cleanup: Adding in NLA Track Remove / Remove and free BKE methods
This PR adds 2 new methods:
* BKE_nlatrack_remove
* BKE_nlatrack_remove_and_free

and modifies the existing `BKE_nlatrack_free` to remove the track list parameter.

This refactor splits out the removal / freeing into it's own methods, and provides a higher order method (BKE_nlatrack_remove_and_free) to conveniently call both.

Co-authored-by: Nate Rupsis <nrupsis@gmail.com>
Pull Request #104752
2023-02-17 15:39:23 +01:00
Falk David 753d338a6a Curves: Add select more/less
This adds the "Select More/Less" operators for Curves. Both operators use the `select_adjacent` function to (de)select adjacent points.

Pull Request #104626
2023-02-17 15:39:23 +01:00
Julian Eisel 7459efcf4e Cleanup: Refactor File/Asset Browser button dragging code
Code to set the dragging data for a button was mostly duplicated, they
share it now. The followup commit also needs an easy way to reuse the
logic, which is possible now.
2023-02-17 15:39:23 +01:00
Julian Eisel da959fa171 UI: Refactor how draggable part of button is determined
No longer use the existance of an image pointer inside the button, or
the the type of a button to decide if the entire button should be
draggable, or only its icon. This was rather sneaky, undocumented
behavior. Instead make this a proper option in the public UI API, and
enable it by default in specific cases to match the previous behavior.

This at least makes the behavior known and controllable in the API, and
not something that's just "secretly" done deep down in the button
handling code. I'd argue we should just use the entire button width by
default for dragging, but that would be a bigger change.
2023-02-17 15:39:23 +01:00
Hans Goudey f7b885c3f6 Cleanup: Remove read-only attribute type
After the removal of the "normal" attribute providers, we no longer
use the concept of read-only attributes. Removing this status simplifies
code, clarifies the design, and removes potentially buggy corner cases.

Pull Request #104795
2023-02-17 15:39:23 +01:00
Hans Goudey c7969d6081 Geometry Nodes: Remove "normal" attribute
The "normal" was added before fields existed because we needed a
way to expose the data to geometry nodes. It isn't really an attribute,
because it's read-only and it's derived rather than original data.

No features have relied on the "normal" attribute existing, except
for the corresponding column in the spreadsheet. However, the
column in the spreadsheet is also inconsistent, since it isn't an
attribute but looks just like the other columns. The normal is
always visible in the spreadsheet.

Pull Request #104795
2023-02-17 15:39:23 +01:00
Harley Acheson 5cf55040a5 UI: Improvement to screen_find_area_xy
In BKE_screen_area_map_find_area_xy (find a ScrArea by 2D location),
ignore edges by using screen verts instead of totrct

Differential Revision: #104680

Reviewed by Brecht Van Lommel
2023-02-17 15:39:23 +01:00
Harley Acheson 8e4114aa20 Windows: allow windows to span multiple monitors
On the Windows platform allow Blender windows to be created that are
spread over multiple adjacent monitors.

---

On Windows we are quite feature-complete and stable for the creation and placement of multiple (non-temp) Blender windows. We correctly do so across multiple monitors no matter their arrangement, resolution, and scale.

However, there is another way that Blender could use multiple monitors - suggested by a core dev - which is to size a window so that it comprises multiple monitors. There are some advantages to this way of working because the one window remains constantly active and in focus. It also allows a single region (like a node editor) to be as large as possible.

But this way of working is not currently possible. That is because during window creation we constrain them to fit within the confines of the nearest single monitor. This has mostly been done for simplicity and safety. We don't want to restore a saved window to a position where it cannot be seen or used.

This patch addresses that. It allows windows to span multiple monitors, and does so safely by constraining the four corners of the window to be within the working area of any active monitor.  This means it allows the creation of single windows as shown below in blue (left two), but does not allow the one in orange (right):

![image.png](/attachments/b2a9dfca-d54c-467a-ab95-717df3b25051)

Note this has been previously (before gitea) reviewed and approved by Brecht.

Co-authored-by: Harley Acheson <harley.acheson@gmail.com>
Pull Request #104438
2023-02-17 15:39:23 +01:00
Campbell Barton 1b792c601a Cleanup: format 2023-02-17 15:39:23 +01:00
Campbell Barton 7127e12085 Cleanup: document & improve naming for Wayland's pending window actions 2023-02-17 15:39:23 +01:00
Martijn Versteegh 2b50302790 Fix: Skip anonymous CustomData layers for the python API
Now that the UV map names are read from the evaluated mesh the names of
the anonymous layers would show up in the UV Map node and be accessible
via the python interface.

This changes the collection definition to skip anonymous layers.

Pull Request #104783
2023-02-17 15:39:23 +01:00
Hans Goudey 6cb16863c1 Cleanup: Use simpler attribute transfer API in duplicate elements node
Instead of retrieving which attributes to transfer from the geometry set
which exists at a different abstraction level, get them from accessors
directly with a newer utility function. This removes boilerplate code
and makes the logic clearer for a future even more generic attribute
propagation API.
2023-02-17 15:39:23 +01:00
Brecht Van Lommel 1a0a40a118 Cycles: disable AMD GPU rendering binaries due to compiler bugs
There are known bugs in HIP compiler that are causing random build failures
when making changes to the Cycles kernel. This is preventing developers from
efficiently making improvements to Cycles.

For now Cycles AMD GPU rendering is disabled in Blender 3.6 until a good
solution is found, so that ongoing work like Principled v2 is not blocked.
We hope this can be resolved later on in the 3.6 release cycle.

Ref #104786
2023-02-17 15:39:23 +01:00
Julian Eisel 1bffbce574 Revert changes to align asset library labels in menus
This reverts 1116d821dc and part of 5bac672e1a.

The solution was made specifically for the 3.5 release, to avoid
breaking other cases. The previous commit addressed the problem properly
by letting the general menu code align labels where needed.
2023-02-17 15:39:23 +01:00
Julian Eisel 428ac20b7e UI: Ensure menus with icons align all menu item labels
Usually in Blender, we try to align the labels of items within a menu,
if necessary by adding a blank icon for padding. This wasn't done for
menus generated from enum properties (RNA or custom property enums). Now
we do it whenever there is at least one item with an icon.
2023-02-17 15:39:23 +01:00
Matti-Ranta acbe70585e Cleanup: delete .arcconfig
Now that https://developer.blender.org/ has been decommissioned, arcconfig is no longer needed.

Pull Request #104768
2023-02-17 15:39:23 +01:00
Thomas Dinges 8d31e61ae1 Revert "Splash screen for Blender 3.5"
This reverts commit a0b4da2bd0.
2023-02-17 15:39:23 +01:00
Thomas Dinges d26cb0b00b Revert "Blender 3.5 Beta:"
This reverts commit 904b7e4e41.
2023-02-17 15:39:23 +01:00
Thomas Dinges 2aeb6303f8 Release cycle: Bump version to 3.6. 2023-02-17 15:39:23 +01:00