For now the "Simulation" modifier only exists for point cloud objects, because
we need this for the particle system. Right now, the modifier is doing nothing.
There is a new `DEG_add_simulation_relation` function that is used
by the modifier to make sure that the simulation is evaluated before
the modifier is executed.
Reviewers: brecht, sergey
Differential Revision: https://developer.blender.org/D7549
This data block will be the container for simulation node trees.
It will be used for the new particle node system (T73324).
The new data block has the type `ID_SIM`.
It is not visible to users and other developers by default yet.
To enable it, activate the cmake option `WITH_NEW_SIMULATION_TYPE`.
New simulation data blocks can be created by running `bpy.data.simulations.new("name")`.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D7225
Note this only changes cases where the variable was declared inside
the for loop. To handle it outside as well is a different challenge.
Differential Revision: https://developer.blender.org/D7320
Mpving utils from idcode to idtype proved to be somewhat painful for
some reasons, but now all looks good.
Had to add a fake/empty shell for the special snowflake too,
`ID_LINK_PLACEHOLDER/INDEX_ID_NULL`...
Both are doing almost the same and can be merged. This reduce complexity for user and less code to maintain.
Reviewed By: mendio, pepeland, fclem
Differential Revision: https://developer.blender.org/D7134
This commit is a full refactor of the grease pencil modules including Draw Engine, Modifiers, VFX, depsgraph update, improvements in operators and conversion of Sculpt and Weight paint tools to real brushes.
Also, a huge code cleanup has been done at all levels.
Thanks to @fclem for his work and yo @pepeland and @mendio for the testing and help in the development.
Differential Revision: https://developer.blender.org/D6293
The old convention was easy to confuse with ScrArea.
Part of https://developer.blender.org/T74432.
This is mostly a batch rename with some manual fixing. Only single word
variable names are changed, no prefixed/suffixed names.
Brecht van Lommel and Campbell Barton both gave me a green light for
this convention change.
Also ran clan clang format on affected files.
- Use 'BKE_object_defgroup' prefix for object functions.
- Rename 'defvert_verify_index' to 'defvert_ensure_index'
since this adds the group if it isn't found.
Even though we do not have much of those, this might change in the
future, and in any case having specific functions for this ID type in
generic `BKE_lib` area was really confusing.
Dont act on a base which cannot be found in the viewlayer.
Oversight in rB41858a73111d.
Maniphest Tasks: T73499
Differential Revision: https://developer.blender.org/D6721
A collection of smaller changes that are required in the /blender/source files. A lot of them are also due to variable renaming.
Reviewed By: sergey
Maniphest Tasks: T59995
Differential Revision: https://developer.blender.org/D3855
Part of T70240
This is the initial implementation of Weld Modifier.
New features will be added later.
ToDo:
- Seams: restrict welding to vertices along boundary edges.
- Edge Collapse: collapse edges below the length threshold.
- New icon.
- Some customdata are not being correctly interpolated.
Differential Revision: https://developer.blender.org/D6383
The outliner didn't account for weight-paint + pose-mode,
making it consider all pose bones unselected.
When syncing selection, bones were unselected.
This adds a context argument to passed to drawing functions since
finding the weight-paint pose-object in the drawing loop isn't efficient.
Adds a new icon for the action constraint so the icon draws with the
constraints color. Also adds two new icons for sequencer meta strips
and duplicate strips for use in the outliner sequence display mode.
The meta strip icon could be used in the sequencer sidebar.
Draw icons for sequencer and vertex groups. The sequence
types need updates because they all draw in various colors
and some sequence types do not have an icon.
Allow selection of subtree elements on a collapsed element's
row. Because subtree elements are aggregated by type, a select on
an icon that represents multiple subtree elements will invoke a
popup menu to select the specific subtree element.
Also draws highlights on cursor hover over a row icon.
Any child elements that are linked to multiple collections will
only be listed in the popup one time, and selection from the
popup will select the first instance in the subtree.
Draw all constraint icons and enable/disable restrict buttons.
The action constraint needs its own icon. It currently draws white
instead of the blue modifier color.
Adds a toggle to the filter menu for outliner synced selection. Enabled
by default, this ensures selection is synced between objects, bones, and
sequences. An active outliner element theme color is added to indicate
which element is active.
Synced selection is controlled on the operator level. Each operator
that modifies selection for objects, bones, sequences, or outliner
elements needs to call the respective ED_outliner_select_sync_from..
function to tag outliners to be synced.
Syncing is done lazily on outliner draw.
If the parent collection was out of view we were not taking its
properties into consideration. We need it even when not drawing the
parent to set active/inactive values for its children.
Related Task: T66948
Reviewers: brecht
Subscribers: Zachman
Differential Revision: https://developer.blender.org/D5272
The `tselem->id` pointer can also be used for non-ID data (according to
this comment in DNA_outliner_types.h:
```
/* XXX We actually also store non-ID data in this pointer for identifying
* the TreeStoreElem for a TreeElement when rebuilding the tree. Ugly! */
```
As such, I don't mind adding a `NULL`-check in the
`is_object_data_in_editmode()` function. After all, when there is no
object, its data certainly is not in edit mode.
This only replaces ICON_GREASEPENCIL with ICON_OUTLINER_DATA_GP_LAYER icon
Differential Revision: https://developer.blender.org/D5073
Reviewed by Dalai Felinto
Better to make internal code naming match official/UI naming to some
extent, this will reduce confusion in the future.
This is 'breaking' scripts and files that would use that feature, but
since it is not yet officially supported nor exposed in 2.80, as far
as that release is concerned, it is effectively
a 'no functional changes' commit.
Changes all GP layer icons to Pencil and highlights selected layer with background color.
Differential Revision: https://developer.blender.org/D5073
Reviewed by Dalai Felinto
This adds NA_SELECTED to notifier when selecting Grease Pencil layers so Properties Editor will update
Differential Revision: https://developer.blender.org/D5073
Reviewed by Dalai Felinto
The constraint icons are now no longer shown in the Outliner again.
This needs a more robust implementation that also works for bones & pose mode.
The new constraint icons are still shown in the Constraint Properties.
Each constraint now has a unique icon, just like modifiers.
Icons are designed by Andrzej Ambroż & Alessio Monti, with user input.
Patch by Alessio Monti.
Bringing the same logic we do in the outliner restrict column callback
and the menu call.
Also removing the "change depsgraph" logic there. Isolate collections
should not affect depsgraph relations (if it does it is to be tackled
separately anyways).
Before it was not possible to see everything in the outliner
when there are e.g. long icon rows. This is because Blender
did not allow panning the view to the right, since it did not
know the actual width.
Most of the code to compute the width correctly was there already,
but there were a couple of issues that made it not work.
* The tree width was computed before the tree was drawn.
This does not work, since the width is only known, after
it is drawn.
* Every `TreeElement` stores its right-most position in `xend`.
However, in the current code, the `xend` of e.g. an object is
the position where the text ends. The `xend` of the icons
is stored in the sub-tree-elements. Therefore, to compute
the maximum width, you may not skip the closed tree elements.
* The current drawing code had an early exit when the icon row
would not be visible anymore. This also skipped the calculation
of `xend`. So it would work correctly, when the icon was visible
a little bit, but not when it was not visible at all.
This patch fixes these issues. So even in more complex files, the
width is computed correcly. At least I haven't found a case, where
it does not.
Unfortunately, some optimizations had to be turned off, to make
it correct.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D4887
No functional nor visual change.
This is a partial revert of 0910932e71.
The toggle option was introduced on 6640bcca74.
This allow us to simplify the outliner draw code so it uses the icon as
defined in the RNA (as oppose to get the value there once again).
Now we always draw a roundbox behind the active object icon, and only change
the text color if the active object is also selected. This matches the 3D
viewport better.
The outliner should not be the only way for users to change these settings.
The Python API was extended to keep these properties positive and keyframable.
Differential Revision: https://developer.blender.org/D4889