This class was just used to hold some functions which can just as well
be declared static outside of any class. It was never even instantiated.
Removing the class removes some indirection in this file that made
the code less readability, and avoids misleading readers.
Pull Request: https://projects.blender.org/blender/blender/pulls/119137
Consider offset caused by transform and translate nodes in backdrop.
Affected nodes are:
- Corner Pin
- Sun Beams.
The behavior is now slightly different for rotated images (using a transform or rotate node) compared to Tiled compositor: the gizmos might move when image is rotated. The reason is the Full Frame compositor changes the image dimensions after rotation
Pull Request: https://projects.blender.org/blender/blender/pulls/119025
Did not realize it, but original commit was re-generating some 'static'
strings (at modifier level) for each and every processed FCurves!
Now create these base RNA paths only once per modifier, outside of the
lambda callback.
Introduce new DNA for the `Animation` data-block and its sub-data.
This includes the blenkernel code for reading & writing to blend files,
and for memory management (freeing, duplicating). Minimal C++ wrappers
are included, with just the functionality needed for blenkernel to do
its job.
The Outliner code is extended so that it knows about the new data-type,
nothing more.
For more info, see issue #113594.
Pull Request: https://projects.blender.org/blender/blender/pulls/119077
Fix 'unused variable' warning in release-mode builds. The variable is
only used in a `BLI_assert`.
I've assumed that the call to `BKE_sculpt_object_pbvh_ensure()` is still
important, and not just there for the assertion.
No functional changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/119158
Caused by 9c1da81a4c.
This happened in the case where objects shared the same data and slots
are assigned to object and receiving object did not have a material slot
yet.
Then, `ob->matbits` may be NULL, now just check for this, too.
Pull Request: https://projects.blender.org/blender/blender/pulls/119161
The BLI image interpolation function with clamped boundary returns zero
for out of bound pixels. That's because the neighbour pixel wrapping
condition disregarded the border template argument. To fix this, only
handle that condition if in border mode.
Pull Request: https://projects.blender.org/blender/blender/pulls/119164
These containers (Set, Vector, Map, Span), etc. have default constructors,
making the braces unnecessary for default initialization. Better to depend
on that consistently rather than having braces in some places and not others.
This class was used to make `AssetLibraryReference` work as a key
in `Map`. But defining a class for that is unnecessary. Instead it's
simpler to just declare the equals and hash operators separately.
Reducing the number of wrappers and indirections should make
this code slightly easier to understand.
This is a solution to avoid redrawing the depth buffer for each Zoom
with `Auto Depth`.
The solution is to move the `ED_view3d_depth_override` function out of
`ED_view3d_autodist` and only call `ED_view3d_depth_override` if the
depth buffer is not used by any current engine.
Pull Request: https://projects.blender.org/blender/blender/pulls/113026
The hard eraser changes end caps to "flat" when cutting strokes. This
requires detecting when the start or end points of a stroke have been
cut.
The previous method relied on checking the next curve's start point for
cuts to determine end point cuts, but this only holds true for cutting
strokes in the middle. When only the start point is cut the preceding
curve should not be affected.
The new test uses local properties of the `PointTransferData` to detect
unchanged source curve end points, instead of doing a look-ahead for the
next curve. This works using the source point indices, which are
inverted for end points. Combined with checking for the `is_cut` flag
this gives a reliable answer to when a stroke end point is cut.
Pull Request: https://projects.blender.org/blender/blender/pulls/119151
The property is actually there, but was marked PROP_SKIP_SAVE |
PROP_HIDDEN in 4234cddda9
This PR removes this again (with the consequence that shortcuts/menu
entries will now remember the select setting from the last time).
This is now in line to how editmode does this (the "Reveal Hidden"
operator).
Pull Request: https://projects.blender.org/blender/blender/pulls/119153
When in mesh editmode, skin_vertices point to bmesh customdata, the
skin_vertices data is empty since custom data is stored per element
instead of a single array there (same es UVs etc.).
Fix similar to 3e2619b3e7, 5179b8236b (basically disallowing the
access in editmode).
Pull Request: https://projects.blender.org/blender/blender/pulls/119149
The Edge Slide code was practically redone to correct errors and to
enable this operator to become a generic transform operator.
The errors are;
1. Unpredictable slide direction when the vertex "slides" over multiple
edges.
2. Incorrect direction when the sliding edge has disconnected faces.
The fixes were:
- When the sliding direction splits into multiple directions, the
chosen target is now the intersection of the destination edge lines
(instead of the average point or a randon point)
- If the edge faces disconnect, the vertex slides in different
directions on each face.
Other changes:
- Use C++ for Array e Vector types.
- Create methods to access or edit struct parameters.
- Use `TransData` to access the initial position of the vertex.
- Acess slide vertice by reference.
Changes:
- Use C++ for Array e Vector types.
- Create methods to access or edit struct parameters.
- Use `TransData` to access the initial position of the vertex.
These changes will allow Vert Slide to be compatible with other
transform "convert_types".
In future files from 4.2, `object_to_world` is moved to a runtime struct
and therefore isn't saved in files. It was always considered runtime information
though, since it's built by depsgraph evaluation and copied back to the original
object. Therefore to have the proper data in `object_to_world` we need to
evaluate the depsgraph.
This partially solves #118694, but there is still an issue with the snap cursor
system never running before using the `plane_omat` value.
This is a different solution to #32068
The sliding edge occlusion test is done to prevent a non-visible
reference vertex from being used to calculate the factor direction.
This commit changes the behavior, but the difference is difficult to
notice.
The changes in behavior are:
- Other objects affect occlusion.
- Slide direction is used to test occlusion instead of edge.
- The reference point is now the point whose direction is visible and
is closest to the mouse cursor.
The code checked to see if `v_side` existed to create the drawing, but
the direction can exist without a `BMVert` in the target.
Remove this `v_side` member as there is really no use for it.
Currently user feedback suggests this overlay is getting in the way
more often then not, since it is usually quite large compared to the
scale of the model. In the future it could be enabled/disabled based
on the "strand/strip" display option, which is planned to move to
objects instead of the scene in the future. However, until then, it
seems better to disable the preview.
This replaces the somewhat hackish and usafe code used previously.
Also fixes a potential bug, where the newly created `local_id` was
dereferenced before checking for it to be non-null.
Pull Request: https://projects.blender.org/blender/blender/pulls/108328