This commit adds the `sculpt.mask_by_color` operator to the 'Mask' menu item in Sculpt Mode. This
allows users to access it via operator / property search. Additionally, the Redo panel is exposed
for general usage.
Pull Request: https://projects.blender.org/blender/blender/pulls/135210
Add this operator to the dropdown menu to the right of the attribute list
for curves and point cloud geometries. For these geometry types the
operator can run in edit mode too, unlike meshes.
This commits fixes a type error issue when reporting that a addon was
designed for a version of Blender newer than the current one.
Thanks to @Rakete for the fix.
Ref: !135392
Added entries for operators missing in the Curves edit mode context and
topbar menus as mentioned in #105253.
Ordered menu entries based on legacy and mesh menus but it's not
identical as the operator set is reduced. Prioritized keeping group
classification consistent between the menus when deriving the layout.
Pull Request: https://projects.blender.org/blender/blender/pulls/134935
Adds the option to create a boolean socket that can be used as a panel toggle.
This allows creating simpler and more compact node group UIs when a panel
can be "disabled".
The toggle input is a normal input socket that is just drawn a bit differently in
the UI. Whether a boolean is a toggle input or not does not affect evaluation.
Also see #133936 for guides on how to add and remove panel toggles.
Pull Request: https://projects.blender.org/blender/blender/pulls/133936
`IDProperty` of keyitem and operator in UI were not matching in
`wm_keymap_item_find_in_keymap()`. Now fixed by removing explicit
property value from UI menu
Pull Request: https://projects.blender.org/blender/blender/pulls/134724
This adds a new `Visual Geometry to Objects` operator which is added to the
`Apply` menu.
It creates new objects from the evaluated geometry of the active object. Other
than e.g. applying modifiers, this operator does keep all generated data and
creates new objects and collections for instances. It does have some
similarities to `Make Instances Real` with the main difference that it doesn't
actually realize instances, i.e. instanced geometry is still shared between all
objects using it.
It does intentionally not replace the original object, because the semantics of
that aren't all that obvious. It's especially tricky when the object was
referenced by other objects. Instance attributes are not preserved currently.
Pull Request: https://projects.blender.org/blender/blender/pulls/134119
This happened for context attributes if already "complete" attributes
were typed/pasted in.
Reason is that this copies functionality from our intellisense
codecompletion where this is expected behavior, for context attributes
we cannot really use "tab" to expand, so it is less useful here.
When confirming (with the additional "."), the keymap entry would be
broken, so better solve in a way that we dont end up with those "." by
removing it.
NOTE: there might be ways to enhance the string-search behavior here (by
properly supporting "tab-expanding"), but this is a bit out-of-scope for
this bugfix.
Pull Request: https://projects.blender.org/blender/blender/pulls/135098
The issue was introduced on 1584cd9aa5 (see !134911 for details).
This fixes this and rename the remaining point_cloud from the API.
The DNA is left untouched, so users don't need to re-enable the
experimental point cloud feature.
Pull Request: https://projects.blender.org/blender/blender/pulls/134927
Use the new `action.fcurve_ensure_for_datablock()` function to ensure
the opacity F-Curve exists.
This function also ensures that the Action itself is ready for keying
(it has a layer and a keyframe strip), and ensures the slot for the
Scene exists and is assigned.
Co-authored-by: Pratik Borhade <pratikborhade302@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/134753
With the brush assets project, brushes were moved from being local to
the working blendfile to being linked from asset libraries. This breaks
the Image Paint 'Clone' brush, as it has a brush property that links to
other Image datablocks.
To support this functionality, this commit adds the corresponding
properties into the `ImagePaintSettings` struct so that it is stored
locally with the images that will be used by the tool, inside the main
blendfile.
The source image property is shared with the 3D version of the 'Clone'
brush instead of adding a separate field to preserve old behavior.
Notably, this has the following limitations:
* If clone brush assets have been made and shared with external packs,
they would not work out of the box with linked image assets.
* Despite these settings being stored on the scene, they are populated
inside the tool window under "Brush Settings" which is potentially
misleading. However, this is already the case for the 3D version of
the brush, so further UI refinement will happen outside of this PR.
* Users will be unable to use separate images simultaneously for the
Image editor and the 3D viewport, unlike in pre-4.3 versions. This
can be adjusted in the future if it is a critical workflow.
Because the intended design and functionality of this tool is currently
questionable, this commit opts to make these changes instead of doing
further design to support both accessing data on the brush and on the
scene.
Pull Request: https://projects.blender.org/blender/blender/pulls/134474
Move the mask_random function to BLI_index_mask.hh, so it can be shared between curves, grease pencil and point cloud.
Copied/inspired by the curves select code.
Pull Request: https://projects.blender.org/blender/blender/pulls/134624
Though "Point Cloud" written as two words is technically correct and should be used in the UI, as one word it's typically easier to write and parse when reading. We had a mix of both before this patch, so better to unify this as well.
This commit also renames the editor/intern/ files to remove pointcloud_ prefix.
point_cloud was only preserved on the user facing strings:
* is_type_point_cloud
* use_new_point_cloud_type
Pull Request: https://projects.blender.org/blender/blender/pulls/134803
This adds:
- support for snapping for the pointcloud object (selection to cursor/
grid, cursor to selection)
- as usual, "Warp" an "Randomize" operators come along "for free" with
this
Pull Request: https://projects.blender.org/blender/blender/pulls/134799
Conversion was only possible if the active object was editable &
selected, this complicated overriding the operator from Python
since it wasn't enough to override the selection & active-object.
Now it's possible to use bpy.ops.object.convert() from Python
overriding the selected_editable_objects only.
For users the difference isn't so significant:
- Having an active object is no longer required.
- It's possible there are no objects to operate on,
as previously the active object was used to check at least one
object could be converted, although this check wasn't fool-proof
as it didn't check the objects data-type.
Resolves#100664.
Ref !134728.
This reverts 06a2617107.
Commit has introduced few errors from user perspective (#134277) and
python side (#134380). Best to revert it now then handle the bug fixes later.
The error in #134380 was due to `context.layer_collection` and
`active_layer_collection` returning excluded collection.
Pull Request: https://projects.blender.org/blender/blender/pulls/134546
Note: The point cloud bounding box is not being updated once the points are deleted.
This is a known issue with BKE_pointcloud_nomain_to_pointcloud and Hans is looking into it.
Code inspired/built based on the Delete Geometry node.
Pull Request: https://projects.blender.org/blender/blender/pulls/134622
This ends up being very simple because point cloud has
no connectivity information and each element is just one
position.
Also implement the 3D transform gizmo.
The geometry deformation system isn't implemented in this
commit. That can be tacked later.
Select All operator and boiler plate for future point cloud operators.
The selection code is basically copied/inspired by the curves selection
code. A lot of it could probably be moved to shared attribute selection
functions.
Note, while this patch is working well, there are some caveats
to test it:
* Shortcuts are being defined (you can see them in the Preferences). Yet
they are not working for whatever reason.
* There is no way to visualize the selection. I've been testing it by
using a Nodes tool that changes the material based on selection.
Pull Request: https://projects.blender.org/blender/blender/pulls/134450
Adds a new python operator to Grease Pencil for adding the layer
above or below as a masking layers to the active layer.
Creates a new file for Grease Pencil python operators in
`scripts/startup/bl_operators/grease_pencil.py`.
Pull Request: https://projects.blender.org/blender/blender/pulls/134401