Age | Commit message (Collapse) | Author |
|
This is useless at that point, since no object has been duplicated yet...
|
|
collections'.
'Linked objects' option was not behaving correctly before, effectively
linking in collections, so this one has been renamed to just 'Linked Copy',
and gives a fully shallow copy of current scene.
'Linked Obdata' was not really useful, kind of confusing, and was
painful to maintain, so dropping it now.
|
|
This is just not practical to do for the code as a whole, and having it as an
exception for one specific data structure is not that helpful. This has only
been in the way for me when refactoring code.
|
|
|
|
- Passing original object with apply_modifiers=false will give a
non-modified non-deformed mesh.
The result mesh will point to datablocks from the original "domain". For
example, materials will be original.
- Passing original object with apply_modifiers=true will give a mesh which
has all modifiers applied.
The result mesh will point to datablocks from the original "domain". For
example, materials will be original.
- Passing evaluated object will ignore apply_modifiers argument, and the
result always contains all modifiers applied.
The result mesh will point to an evaluated datablocks. For example,
materials will be an evaluated IDs from the dependency graph.
Fixes T62916: Applying boolean modifier does not set material properly
Differential Revision: https://developer.blender.org/D4604
|
|
It is up to the operator to pass valid object to the modifiers
evaluation.
Fixes T62916: Applying boolean modifier does not set materials properly
|
|
sl->light_ambient is a float[3], copy_v4_fl4 overwrites sl->free_function with a bogus
pointer on 32 bit.
|
|
|
|
|
|
This makes it easier to exclude a surface from casting shadows and can be
used to manipulate the shadows even for opaque surfaces.
Versionning ensure that old behavior is transfered to new rendering logic.
|
|
because of the put in Collection order, sometimes fail.
Remove remapping to new IDs from `BKE_object_duplicate()` itself, doing
it here will break later remapping done after all desired objects have
been duplicated, preventing complete remap of ID pointers used in obdata
and other sub-data of duplicated objects.
Checked, the only two usages of this function were already doing
separated later step for this anyway.
|
|
Comments, code consistency, remove disabled code...
|
|
|
|
|
|
Remove fading away the color, share theme colors with info editor.
Differential Revision: https://developer.blender.org/D4197
|
|
evaluations.
BKE_mesh_new_nomain automatically added a CD_ORIGINDEX layer initialized to 0,
which was never filled in correctly. In 2.7 the equivalent function used to
modify the source derivedmesh and add valid original indices to it, but this
is no longer possible in the new design and was quite unpredictable anyway.
Now instead rely on mesh_calc_modifiers and the depsgraph to determine when
CD_ORIGINDEX should be added.
|
|
This should not use the original index as a unique instance index, with for
example an array modifier the same original index may be used multiple times.
|
|
|
|
|
|
Missing memory free in the early output of particles distribute
initialization.
Seems it was always there.
|
|
Eevee and Cycles don't use these clipping distances the same as Blender
Internal did, or at all in most cases. Just remove this since it makes no
sense anymore.
|
|
|
|
This removes `VIEW3D_OT_select_or_deselect_all`, adding a
deselect_all option to the `VIEW3D_OT_select` operator.
- Add utility functions to simplify de-selecting all.
- Return true from selection functions when they change the selection
to avoid redundant updates.
- Use arrays of bases when passing objects between selection utility
functions since some users require bases.
- Fix logical error in box selection that updated all objects after
the first hit.
|
|
|
|
|
|
Not sure why that was asserted on instead of handling the flag properly,
if base is not selectable, then just do not select it...
Have the feeling this code handling sync of flags between bases and
objects could use some cleanup, but that will be for another day.
|
|
Using GP_BRUSH_MATERIAL_PINNED to switch between active material and brush material, instead of updating all brushes on active material changes. This will allow brushes to have no material and therefore to not inflate the user count.
This fix T62465.
Patch contributed by @matc
Reviewers: @brecht @antoniov @billreynish @mendio
|
|
Reviewers: brecht
Differential Revision: https://developer.blender.org/D4586
|
|
Selected status was not properly moved from new object to new created base.
This prevented next steps (making obdata, materials etc. local) to ever
happen.
|
|
CD_ORCO coordinates are stored normalized by convention, this code path did
not store them correctly.
|
|
|
|
This commit does not add anything new from user perspective, but make it
possible to paste any kind of IDs, not only objects/collections.
Will be used by new copy/paste in the outliner in next commit.
|
|
Regression in bc5b0f7a091c395526370
See D4581
|
|
|
|
Add trailing comma for clang-format.
|
|
same hue.
When two stops had the exact same color, 'Far' interpolation would
behave like the three others and generate constant colors, instead of
generating expected 'full turn' in Hue space.
Note that this will break the 'constant' color between two stops with
same value in the 'Far' interpolation mode, but think that change is
OK/expected.
This fix also exposed that 'early out' case when we are after last stop
was not working properly, still triggering actual interpolation
computation in all cases, thus the refactor in `BKE_colorband_evaluate()`
itself. We also now avoid computing factors in constant case, and get
out early in all interpolation cases but the 'spline' ones (where color
ramping can start before first stop, and end after last one).
Work initiated by patch from Charlie Jolly (@charlie) in T49979, thanks.
Reviewers: brecht, sergey
Subscribers: charlie
Differential Revision: https://developer.blender.org/D4556
|
|
|
|
do_clip wasn't working for its intended purpose,
replace with a simpler method.
|
|
Use the same values used for drawing.
|
|
Mark as localized immediately, so that functions that edit the node tree can
verify they are being used under the correct conditions.
|
|
|
|
The issue was caused by mesh needed for dynamic paint brush being
stored in the modifier. That make it to be freed and set to NULL
when running copy-on-write.
Solved by moving the mesh to be stored in modifier's runtime data.
|
|
|
|
Reviewers: brecht
Differential Revision: https://developer.blender.org/D4560
|
|
The `BLI_path_frame_strip` function was completely broken, unless the
number of digits in the sequence number was the same as the length of
the extension. In other words, it would work fine for `file.0001.abc` (4
digit `0001` and 4 char `.abc`), but other combinations would truncate
to the shortest (`file.001.abc` would become `file.###.ab` and
`file.00001.a` would become `file.##.a`). The dependency between the
sequence number and the file extension is now removed.
The behaviour has changed a little bit in the case where there are no
numbers in the filename. Previously, `path="filename.abc"` would result
in `path="filename.abc"` and `ext=""`, but now it results in
`path="filename"` and `ext=".abc"`. This way `ext` always contains the
extension, and the behaviour is consistent regardless of whether there
were any numbers found.
Furthermore, I've removed the `bool set_frame_char` parameter, because
it was unclear, probably also buggy, and most importantly, never used.
I've also added a unit test for the `BLI_path_frame_strip` function.
|
|
Ownership flag was not set, but was it was meanted to be. So the set
runtime data to NULL disconnected the Mesh with no ownership.
|
|
A hard coded threshold was used to ignore cursor motion,
make this a preference since tablet users may want to increase it
since a pen hovering isn't as easy to keep still as a mouse.
Resolves T56278
|
|
Most API's already use this convention.
|
|
If a subfolder was specified which didn't exist, logic would fallback
to get_path_user (instead of get_path_environment).
Now always use the from the environment variable if it's set and exists.
|
|
Use prefix now there isn't only the 3d version.
|