Commit Graph

3533 Commits

Author SHA1 Message Date
Campbell Barton
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
Campbell Barton
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
Campbell Barton
ac4057b95a Gizmo: use pivot center for UV gizmos 2020-01-09 16:42:24 +11:00
Campbell Barton
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
Antonio Vazquez
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
Campbell Barton
32b7056acd BMesh: remove BMEditMesh.ob use for ED_mesh_mirror_* API 2020-01-07 15:39:08 +11:00
Campbell Barton
9d7abce359 BMesh: remove BMEditMesh.ob use for select mirror 2020-01-07 14:45:01 +11:00
Campbell Barton
a8d11995bf BMesh: remove BMEditMesh.ob use for vert coord access, projection 2020-01-07 13:53:03 +11:00
Campbell Barton
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
Campbell Barton
e9ac784237 Cleanup: quiet const warnings 2020-01-02 13:08:20 +11:00
mano-wii
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
mano-wii
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
Campbell Barton
6929d8aa59 Object: extract data transform container into own API 2019-12-22 23:34:42 +11:00
Campbell Barton
1ef6be3686 Cleanup: redundant struct declarations 2019-12-17 10:15:22 +11:00
Sebastián Barschkis
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
Campbell Barton
82755f5137 Gizmo: add gizmos for UV transform translate/rotate/scale 2019-12-13 22:43:48 +11:00
Lukas Stockner
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
Harley Acheson
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
Harley Acheson
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
Jeroen Bakker
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
Sebastian Parborg
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
Campbell Barton
6d79ebebc5 Cleanup: remove unused NDOF icons 2019-11-30 18:52:32 +11:00
Campbell Barton
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
Jeroen Bakker
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
Philipp Oeser
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
Paul (Thirio)
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
Campbell Barton
c637290a6e Cleanup: remove unused value2d gizmo 2019-11-21 23:00:04 +11:00
Campbell Barton
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
Sebastian Parborg
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
Hans Goudey
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
Harley Acheson
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
Campbell Barton
d124545013 Fix wrong name for QuadriFlow undo step 2019-11-18 22:43:30 +11:00
Campbell Barton
554321c6fb Merge branch 'blender-v2.81-release' 2019-11-16 02:49:45 +11:00
Campbell Barton
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
Campbell Barton
322cec8e4d Merge branch 'blender-v2.81-release' 2019-11-07 17:02:09 +11:00
Campbell Barton
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
Sergey Sharybin
a81108ae74 Masking: Cleanup, naming of mask layer 2019-11-04 10:54:59 +01:00
Antonio Vazquez
9c275e26f9 Merge branch 'blender-v2.81-release' 2019-11-02 10:29:12 +01:00
Antonio Vazquez
782f36d6a8 Fix T71260: GPencil crash when drawing very long lines
There were two problems:

1) When the buffer was reallocate, the pointer was corrupted.
2) Short variables were too small to hold long lines.
2019-11-02 10:28:37 +01:00
Harley Acheson
88833170f2 UI: Disk to Disc Spelling Change
Identifiers for icons representing optical drives should use 'disc', not 'disk'.

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

Reviewed by Julian Eisel
2019-11-01 09:02:50 -07:00
mano-wii
44d67b6dc8 Transform: Add option to exclude back facing geometry from snapping
Add new `Backface Culling` option to the snapping properties.
This option has nothing to do with the view3d display or the
workbench `Backface Culling` option.

Limitation:
- In edit mode, this option only affects snap to faces.

Maniphest Tasks: T71217

Differential Revision: https://developer.blender.org/D6155
2019-10-31 14:09:53 -03:00
Philipp Oeser
81cc09b78a Merge branch 'blender-v2.81-release' 2019-10-29 17:16:35 +01:00
William Reynish
cf95d7f10e UI: Icons update.
Updated icon set from Andrzej Ambroż.

  - Includes new icons for Top Bar, Status Bar, CD/DVD drives, Home, Documents, Temp, Memory, Options.
  - Includes small tweaks to many icons throughout Blender
  - Also adds a large CD/DVD drive icon for the file browser

This does not add the new icons in the interface yet.
2019-10-29 16:55:56 +01:00
Philipp Oeser
87ac3d14b2 Fix T70905: Image Editor header hides mask, cache and keyframe info if
flipped to bottom

While flipping the header to bottom works in the MCE (because MCE doesnt
allow overlapping UI) we need to take the regions visible rect into
account for the Image Editor.

Also correct clickable scubbing area (poll for frame_change) in the
Image Editor and the MovieClip Editor not taking UI_DPI_FAC into
account.

Maniphest Tasks: T70905

Differential Revision: https://developer.blender.org/D6090
2019-10-29 16:51:55 +01:00
Campbell Barton
5a481e41ce Merge branch 'blender-v2.81-release' 2019-10-29 04:51:35 +11:00
Campbell Barton
43a8fdb6ad UI: add icon for drawing space key
Drawing was already added, only the icon was missing.
2019-10-29 04:50:04 +11:00