Commit Graph

3741 Commits

Author SHA1 Message Date
3ba5461af0 Object: support 'Affect Parents' for snap/clear transform
Resolves T69450
2020-02-01 13:34:27 +11:00
eea3751c5b UI: Icons update
- New bespoke icon for the universal brush toggles
  - New icon for Redirected Folder (currently unused)
  - New icons for handle types (Auto Clamped, Auto, Aligned, Vector, Free)
  - New icons for Sequencer Text Strip anchor (Top, Bottom, Left, Right, Centre)

Thanks to Andrzej Ambroż for the new icons
2020-01-31 13:20:24 +01:00
d83acac66b Merge branch 'blender-v2.82-release' 2020-01-30 16:52:36 +11:00
ac2d342d88 Cleanup: ED_editors_flush_* functions
- Remove the only_render arg from ED_editors_flush_edits
  was only used in one place, the '_ex' version can be used instead.

- Split out the single object version of this function as currently
  flushing is being done in-line, often only accounting for edit-mode,
  ignoring sculpt mode for e.g.
2020-01-30 16:46:09 +11:00
aa919f3e82 UI: Info Editor Visual Changes
Changes to Info Editor making it easier to read. Only visual changes, no functional changes.

Differential Revision: https://developer.blender.org/D6491

Reviewed by Julian Eisel
2020-01-29 09:24:54 -08:00
Julian Eisel
412179b39b Cleanup: Rename ED_region_init() -> ED_region_floating_initialize()
This function is a very special refresh function just for floating
regions. _initialize is more consistent with ED_area_initialize() so use
that too.

Also adds assert.
2020-01-22 15:58:39 +01:00
Julian Eisel
5d69d2a863 Fix T71810: Flipping Sidebar with tabs breaks alignment
Panel alignment was only updated when panel size changed. Now we can
also recognize changes in the category tabs offset and tag panels
for alignment updates.
2020-01-21 16:13:07 +01:00
966383138a Weight Paint: implement a red shade for bones with locked weights.
Blender supports locking vertex groups to prevent changes to the
weights. However, as mentioned in comments for D3837, it is hard
to use this because there is no interface for locking in 3D View.

This adds a red shade to bones that are associated with a locked
weight group during weight paint mode, as the first step to adding
such interface. The next step is adding a pie menu for lock/unlock.

Differential Revision: https://developer.blender.org/D6533
2020-01-18 11:43:31 +03:00
fffba2b653 Cleanup: move property auto-keyframing to a generic API function
Prepare to call this from gizmos.
2020-01-14 17:05:59 +11:00
f681e9ea49 Fix UV gizmos poll failing with multiple objects
Only the active objects UV selection was checked.
This also avoids checking UV selection for every poll call,
now this is only done on refresh.
2020-01-09 17:50:52 +11:00
ac4057b95a Gizmo: use pivot center for UV gizmos 2020-01-09 16:42:24 +11:00
c128b30bd1 Edit Mesh: pass in Mesh instead of BMEditMesh to EDBM_update_generic
This avoids a list lookup in Main (recently added), passing in a mesh
instead of an edit-mesh, since the mesh links to the edit-mesh.
2020-01-07 22:14:36 +11:00
fa3a0697b8 Annotations: Split annotation operators and pointer functions
This allows to have annotation panels and grease pencil object panel at the same time.

Differential Revision: https://developer.blender.org/D6467
2020-01-07 11:34:20 +01:00
32b7056acd BMesh: remove BMEditMesh.ob use for ED_mesh_mirror_* API 2020-01-07 15:39:08 +11:00
9d7abce359 BMesh: remove BMEditMesh.ob use for select mirror 2020-01-07 14:45:01 +11:00
a8d11995bf BMesh: remove BMEditMesh.ob use for vert coord access, projection 2020-01-07 13:53:03 +11:00
3978568e45 Cleanup: remove unused 2D arrow gizmo
It's simpler to support a single gizmo type for 2D/3D.
2020-01-06 23:21:50 +11:00
e9ac784237 Cleanup: quiet const warnings 2020-01-02 13:08:20 +11:00
d27fb46715 EditMesh: Improve AutoMerge with Split Edges & Faces
Previously, compared to `Auto Merge` without `Split Edges & Faces`,
`Auto Merge` with this option ignored duplicates between selected
vertices. It only considered duplicates between selected vertices and
unselected vertices.

This is a regress and not a progress.

This commit implements this behavior, so this option matches the other
`Auto Merge`.
2020-01-01 21:06:59 -03:00
86a2ffc3ab Transform: Individual Origins: Create islands between only selected uvs.
Currently the islands are created depending only on the visible UVs.
This can be confusing because compared to Edit Meshes, islands are created based on the selected elements.

T68284 shows a case where this confusion is observed.

Differential Revision: https://developer.blender.org/D6502
2019-12-31 13:04:57 -03:00
6929d8aa59 Object: extract data transform container into own API 2019-12-22 23:34:42 +11:00
1ef6be3686 Cleanup: redundant struct declarations 2019-12-17 10:15:22 +11:00
d27ccf990c Mantaflow [Part 6]: Updates in /blender/source
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
2019-12-16 16:37:01 +01:00
82755f5137 Gizmo: add gizmos for UV transform translate/rotate/scale 2019-12-13 22:43:48 +11:00
c30d6571bb Add support for tiled images and the UDIM naming scheme
This patch contains the work that I did during my week at the Code Quest - adding support for tiled images to Blender.

With this patch, images now contain a list of tiles. By default, this just contains one tile, but if the source type is set to Tiled, the user can add additional tiles. When acquiring an ImBuf, the tile to be loaded is specified in the ImageUser.
Therefore, code that is not yet aware of tiles will just access the default tile as usual.

The filenames of the additional tiles are derived from the original filename according to the UDIM naming scheme - the filename contains an index that is calculated as (1001 + 10*<y coordinate of the tile> + <x coordinate of the tile>), where the x coordinate never goes above 9.
Internally, the various tiles are stored in a cache just like sequences. When acquired for the first time, the code will try to load the corresponding file from disk. Alternatively, a new operator can be used to initialize the tile similar to the New Image operator.

The following features are supported so far:
- Automatic detection and loading of all tiles when opening the first tile (1001)
- Saving all tiles
- Adding and removing tiles
- Filling tiles with generated images
- Drawing all tiles in the Image Editor
- Viewing a tiled grid even if no image is selected
- Rendering tiled images in Eevee
- Rendering tiled images in Cycles (in SVM mode)
- Automatically skipping loading of unused tiles in Cycles
- 2D texture painting (also across tiles)
- 3D texture painting (also across tiles, only limitation: individual faces can not cross tile borders)
- Assigning custom labels to individual tiles (drawn in the Image Editor instead of the ID)
- Different resolutions between tiles

There still are some missing features that will be added later (see T72390):
- Workbench engine support
- Packing/Unpacking support
- Baking support
- Cycles OSL support
- many other Blender features that rely on images

Thanks to Brecht for the review and to all who tested the intermediate versions!

Differential Revision: https://developer.blender.org/D3509
2019-12-12 18:40:37 +01:00
9c1134015c UI: Custom Face Orientation Colors
Adds theme settings to allow change of front and back faces of the Face Orientation overlay

Differential Revision: https://developer.blender.org/D6262

Reviewed by Jeroen Bakker
2019-12-07 08:16:45 -08:00
7c2217cd12 UI: File Browser Volumes and System Lists Icons
Allows each File Browser list item in Volumes and System to use individual icons.

Differential Revision: https://developer.blender.org/D5802

Reviewed by Julian Eisel
2019-12-06 13:10:30 -08:00
15abc9fe74 Draw: Removal of MultiSample Buffers
Multisample buffers were used for smooth line drawing. As we now have
an algorithm that doesn't need the multisample buffers we can remove
them.

The user preference for viewport multi_sampling is replaced by single
toggle overlay `use_overlay_smooth_wire`. By default this setting is
enabled as the new drawing is really quick (<1ms) and uses zero hacks.

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D6367
2019-12-06 07:45:07 +01:00
7868db9343 Make curve decimation only take into account the selected curve points
Previously the decimation would take the whole curve into account when
decimating and not just the selected part.

This also contains various smaller bug fixes for the fcurve decimation.

Reviewed By: Sybren

Differential Revision: http://developer.blender.org/D6286
2019-12-04 16:02:58 +01:00
6d79ebebc5 Cleanup: remove unused NDOF icons 2019-11-30 18:52:32 +11:00
7711231838 Fix T71865: Separating mesh parts breaks shape keys
This was an old bug which could be caused by saving after separating.
Changes from 79b703bb63 made this fail reliably.

Update shape key indices when they may be used again later.
2019-11-28 06:17:14 +11:00
73fa066e8b Cleanup: Remove BIF_gl.h
BIF_gl.h included hacks like redefining glew functions and a constant.
The named constant `GLA_PIXEL_OFS` has been moved to `GPU_viewport.h`

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5860
2019-11-27 16:10:07 +01:00
6992fc0b3b Add 'EDBM_selectmode_disable_multi' and use in knifeproject
As a followup to rB6f4e595e9ba9 and as per @campbellbarton suggestion,
this adds EDBM_selectmode_disable_multi, similar to
EDBM_mesh_deselect_all_multi & EDBM_mesh_deselect_all, so other similar
uses don't need to be done in a loop.

Also, selected_objects isn't a reliable way to handle this case - since
objects can be in edit-mode & not selected, use
BKE_view_layer_array_from_bases_in_edit_mode_unique_data instead

Differential Revision: https://developer.blender.org/D6317
2019-11-27 15:55:32 +01:00
Julian Eisel
5bcb0c9935 UI: Allow label for Template-ID (respecting property split layout)
Adds a `text` parameter to `bpy.types.uiLayout.template_ID()` which
causes a label to be added, as usual. Adding the label also makes the
template respect the `bpy.types.uiLayout.use_property_split` option.

Also fixes wrong layout being used in the template-ID, although I think
that didn't cause issues in practice.

Sergey requested this for usage in the Movie Clip Editor.
2019-11-25 19:50:34 +01:00
b374b24f1b UI: Widget Text Cursor Color
Adds a theme setting to specify color of widget text insertion cursor (caret).

Differential Revision: https://developer.blender.org/D6024

Reviewed by Campbell Barton
2019-11-25 08:36:05 -08:00
Julian Eisel
b037ba2665 UI: Changes to Graph Editor selection and transform
When introducing "drag-all-selected" support all over Blender, we
figured this wouldn't work well with the Graph Editor
selection/transform behavior.
Hence, William and I worked on the following changes, although we used
this chance to improve the behavior in general too.
For more info see T70634.

* Handles now always move with the key, regardless if they are selected
  or not.
* Selecting the key doesn't select the handles anymore, their selection
  is separate.
* Multiple keys and handles can now be dragged.
* Dragging a handle moves all selected handles **on the same side**.
* Tweak-dragging any handle can never affect any keyframe location,
  only handles.
* G/R/S should behave as before.
* Changing the handle type with a key selected always applies the change
  to both handles.
* Box selection with Ctrl+Drag now allows deselecting handles (used to
  act on entire triple only).
* Box selection //Include Handles// option now only acts on visible
  handles, wasn't the case with Only Selected Keyframes Handles enabled.
* Box selection //Include Handles// is now enabled by default in all
  bundled keymaps.

The changes have been tested for some days by the animators here in the
Blender Animation Studio. Some changes are based on their feedback.

Also, this improves/adds comments for related code.

Differential Revision: https://developer.blender.org/D6235

Reviewed by: Sybren Stüvel, William Reynish
2019-11-22 16:54:43 +01:00
c637290a6e Cleanup: remove unused value2d gizmo 2019-11-21 23:00:04 +11:00
20620afc33 Object: edit-mode data support for object vertex coordinate access
Allows to access/transform/restore edit-mode
coordinates in a generic way.
2019-11-21 22:45:15 +11:00
8bc57e5b91 Add curve decimate in the graph editor
Added a animation curve decimate operator in the graph editor

Reviewed By: Sybren

Differential Revision: http://developer.blender.org/D4841
2019-11-21 11:58:35 +01:00
ba1e9ae473 Bevel: Custom Profile and CurveProfile Widget
Custom profiles in bevel allows the profile curve to be controlled by
manually placed control points. Orientation is regularized along
groups of edges, and the 'pipe case' is updated. This commit includes
many updates to comments and changed variable names as well.

A 'cutoff' vertex mesh method is added to bevel in addition to the
existing grid fill option for replacing vertices.

The UI of the bevel modifier and tool are updated and unified.

Also, a 'CurveProfile' widget is added to BKE for defining the profile
in the interface, which may be useful in other situations.

Many thanks to Howard, my mentor for this GSoC project.

Reviewers: howardt, campbellbarton

Differential Revision: https://developer.blender.org/D5516
2019-11-20 16:25:28 -05:00
8c6ce74239 UI: Text Editor Visual Changes
Various small changes to Text Editor, mostly to do with scaling, alignment, and theme support.

Differential Revision: https://developer.blender.org/D6268

Reviewed by Campbell Barton
2019-11-20 12:59:19 -08:00
d124545013 Fix wrong name for QuadriFlow undo step 2019-11-18 22:43:30 +11:00
554321c6fb Merge branch 'blender-v2.81-release' 2019-11-16 02:49:45 +11:00
b266b1034f Cleanup: quiet warnings 2019-11-16 02:49:15 +11:00
Dalai Felinto
ef71668ac5 Merge remote-tracking branch 'origin/blender-v2.81-release' 2019-11-15 12:10:55 -03:00
Dalai Felinto
49db3f6bf1 Fix: Filebrowser saving dialog size when maximized
Reviewed By: Severin

Differential Revision: https://developer.blender.org/D6260
2019-11-15 12:10:16 -03:00
322cec8e4d Merge branch 'blender-v2.81-release' 2019-11-07 17:02:09 +11:00
79b703bb63 Fix T69822: Switching sculpt objects breaks undo
This introduces object mode tagging for data which hasn't yet been
written back to the ID data.

Now when selecting other sculpt objects, the original objects data is
flushed back to the ID before writing a memfile undo step.
2019-11-07 16:56:21 +11:00
a81108ae74 Masking: Cleanup, naming of mask layer 2019-11-04 10:54:59 +01:00
9c275e26f9 Merge branch 'blender-v2.81-release' 2019-11-02 10:29:12 +01:00