4 months agoSelecing a pose bone in outliner deselect others
Dalai Felinto [Tue, 16 Apr 2019 19:09:59 +0000 (16:09 -0300)]
Selecing a pose bone in outliner deselect others

This mimics what is now the behaviour for edit bones as well.
See e6151bc4c1f2.

And it also matches what we do in the viewport when selecting bones.

4 months agoFix T63066: Outliner crash when selecting object being in armature editmode
Dalai Felinto [Tue, 16 Apr 2019 18:35:08 +0000 (15:35 -0300)]
Fix T63066: Outliner crash when selecting object being in armature editmode

While fixing it, also reproducing multi-object selection logic we have
in the viewport. If you select one bone from an armature, it deselects all
bones from the other armatures currently in edit mode.

Inspired by proposed fix by Philipp Oeser (lichtwerk).

Code explanation

CTX_data_edit_object(C) may be NULL here. In the few cases where it is
not we use it for the notifier (in the other cases we call the notifier
with NULL, so no harm done).

This code is called during outliner drawing, and it is called, for
instance every time you mouse hover a bone.

If you have a mesh object in edit mode and mouse hover the bones of an armature
it is plain obvious we can't rely on CTX_data_edit_object() for anything
armature related. And that the original assert was asking for troubles.

4 months agoCleanup: avoid adjacent C-style comments
Campbell Barton [Tue, 16 Apr 2019 15:55:11 +0000 (17:55 +0200)]
Cleanup: avoid adjacent C-style comments

Causes clang-format to give different results on a second run.

4 months agoCleanup: avoid adjacent C-style comments
Campbell Barton [Tue, 16 Apr 2019 15:48:22 +0000 (17:48 +0200)]
Cleanup: avoid adjacent C-style comments

Causes clang-format to give different results on a second run.

4 months agoSpline IK: support changing individual bone length via Y scaling.
Alexander Gavrilov [Mon, 15 Apr 2019 17:25:41 +0000 (20:25 +0300)]
Spline IK: support changing individual bone length via Y scaling.

Previously Spline IK provided only two choices: either scale the
length of the bone chain to fit the length of the curve, or don't
scale the bone in the Y dimension at all (ignoring effects of
actually fitting to the curve due to curvature and curve object

This patch adds a new option to use the pre-IK Y scale of the
bones to adjust their length when fitted to the curve, allowing
individual posing control over the length of the segments.

Reviewers: brecht

Differential Revision:

4 months agoCleanup: simplify comments
Campbell Barton [Tue, 16 Apr 2019 15:37:04 +0000 (17:37 +0200)]
Cleanup: simplify comments

clang-format reformatted when running a second time.

4 months agoClang-format: Speed up detection of clang-format
Sergey Sharybin [Tue, 16 Apr 2019 15:05:31 +0000 (17:05 +0200)]
Clang-format: Speed up detection of clang-format

Don't construct the full build environment, following
feedback from Ray.

4 months agoClangFormat: add comments to ignore formatting
Campbell Barton [Tue, 16 Apr 2019 15:02:52 +0000 (17:02 +0200)]
ClangFormat: add comments to ignore formatting

4 months agoFix T63312: Crash XRay + clipping
Jeroen Bakker [Mon, 8 Apr 2019 06:12:45 +0000 (08:12 +0200)]
Fix T63312: Crash XRay + clipping

Outline shaders were only selected when no checker depth was available.

Reviewed By: fclem

Maniphest Tasks: T63312

Differential Revision:

4 months agoClangFormat: add comments to ignore formatting
Campbell Barton [Tue, 16 Apr 2019 14:53:50 +0000 (16:53 +0200)]
ClangFormat: add comments to ignore formatting

4 months agoFix BLI_path test of BLI_path_frame_strip.
Bastien Montagne [Tue, 16 Apr 2019 14:49:55 +0000 (16:49 +0200)]
Fix BLI_path test of BLI_path_frame_strip.

Ensure that returned string buffer is always properly initialized with
NULL char...

4 months agoGNUmakefile: move clang format utility
Campbell Barton [Tue, 16 Apr 2019 14:47:05 +0000 (16:47 +0200)]
GNUmakefile: move clang format utility

Makes more sense to place in 'utils_maintenance'.

4 months agoCleanup: trailing commas
Campbell Barton [Tue, 16 Apr 2019 14:40:47 +0000 (16:40 +0200)]
Cleanup: trailing commas

4 months agoCleanup: use keyword only args to rna_idprop_ui_create
Campbell Barton [Tue, 16 Apr 2019 14:00:24 +0000 (16:00 +0200)]
Cleanup: use keyword only args to rna_idprop_ui_create

4 months agoPython: add a utility function for creating custom properties.
Alexander Gavrilov [Sat, 30 Mar 2019 09:53:39 +0000 (12:53 +0300)]
Python: add a utility function for creating custom properties.

Creating a fully functional custom property requires also setting up
its limits, description, default value and static override status.
It is complex enough to warrant providing an official utility.

Currently boolean properties are technically int, but the utility
pretends they are separate in case that eventually they are.

Reviewers: campbellbarton

Differential Revision:

4 months agoGNUmakefile: add 'make format'
Campbell Barton [Tue, 16 Apr 2019 13:42:54 +0000 (15:42 +0200)]
GNUmakefile: add 'make format'

Convenience access to utility.

4 months agoInitial support of `make format` for Windows
Sergey Sharybin [Tue, 16 Apr 2019 13:34:32 +0000 (15:34 +0200)]
Initial support of `make format` for Windows

There are couple of caviats currently:

- The script requires system-wide Python 3 available in the current
  search PATH as python.exe.

  This will get addressed soon by distributing unpacked Python binary
  in our libraries.

- Since the libraries folder is to be known, this requires to have
  MSVC detected. Not too bad, since formatting is still way slower
  than detection, but still doesn't feel ideal.

4 months agoFix tool system Python errors if there is no active object.
Brecht Van Lommel [Tue, 16 Apr 2019 10:18:28 +0000 (12:18 +0200)]
Fix tool system Python errors if there is no active object.

4 months agoFix T63641: transform snap invert keymap item has an effect when disabled.
Brecht Van Lommel [Tue, 16 Apr 2019 09:38:50 +0000 (11:38 +0200)]
Fix T63641: transform snap invert keymap item has an effect when disabled.

4 months agoFix T63617: Bone groups (de)select operators not immediately refreshing
Philipp Oeser [Tue, 16 Apr 2019 10:15:01 +0000 (12:15 +0200)]
Fix T63617: Bone groups (de)select operators not immediately refreshing

was missing DEG updates

Reviewers: brecht

Maniphest Tasks: T63617

Differential Revision:

4 months agoFix T63204: Toggle collection visibility with shift
Dalai Felinto [Tue, 16 Apr 2019 12:52:02 +0000 (09:52 -0300)]
Fix T63204: Toggle collection visibility with shift

Shift was always turning the collection visible. It now toggles, similar
to what we had in 2.79.

4 months agoCMake: fix building WITH_CYCLES_LOGGING=ON
Campbell Barton [Tue, 16 Apr 2019 12:56:17 +0000 (14:56 +0200)]
CMake: fix building WITH_CYCLES_LOGGING=ON

4 months agoUI: Move Collection Visibility popover from 3D View header into the Sidebar
William Reynish [Tue, 16 Apr 2019 12:52:44 +0000 (14:52 +0200)]
UI: Move Collection Visibility popover from 3D View header into the Sidebar

It's more practical to use this from the Sidebar, and takes away one item from the crowded header.

See T63527

4 months agoFix broken build when using system Glew on linux.
Bastien Montagne [Tue, 16 Apr 2019 12:43:56 +0000 (14:43 +0200)]
Fix broken build when using system Glew on linux.

4 months agoUI: Refactor View2D number drawing
Jacques Lucke [Tue, 16 Apr 2019 12:15:49 +0000 (14:15 +0200)]
UI: Refactor View2D number drawing

This also fixes alignment issues in many editors.
E.g. the frame numbers were badly aligned to the grid lines
in the timeline.

Checkout the images in D4681 for more examples.

Reviewers: brecht

Differential Revision:

4 months agoCMake: fix building without libmv
Campbell Barton [Tue, 16 Apr 2019 12:10:38 +0000 (14:10 +0200)]
CMake: fix building without libmv

4 months agoFix T63619: Fill Tool is misaligned when 'Gradient' is enabled
Philipp Oeser [Tue, 16 Apr 2019 11:36:44 +0000 (13:36 +0200)]
Fix T63619: Fill Tool is misaligned when 'Gradient' is enabled

Reviewers: brecht

Maniphest Tasks: T63619

Differential Revision:

4 months agoCMake: fix linking with gtest & cycles enabled
Campbell Barton [Tue, 16 Apr 2019 11:57:03 +0000 (13:57 +0200)]
CMake: fix linking with gtest & cycles enabled

4 months agoFix T63429: Random deselect function lost
Sebastian Parborg [Tue, 16 Apr 2019 11:12:28 +0000 (13:12 +0200)]
Fix T63429: Random deselect function lost

Add back the ability to choose the select operation for random select.
Now we allow the operator to specify if the select operation should be
visible in the GUI or not.

Reviewed By: Brecht

Differential Revision:

4 months agoGPencil: New Normalize All operator
Antonioya [Tue, 16 Apr 2019 10:12:35 +0000 (12:12 +0200)]
GPencil: New Normalize All operator

This operator works similar to mesh operator but for Stroke and Points data.

Also minor cleanup in Normalize operator.

4 months agoGPencil: Add lock icon to Vertex Groups list
Antonioya [Tue, 16 Apr 2019 09:27:36 +0000 (11:27 +0200)]
GPencil: Add lock icon to Vertex Groups list

Also check this flag in operators.

Note: This is required for the development of the new Normalize All operator.

4 months agoGPencil: New Normalize Weights operator
Antonioya [Tue, 16 Apr 2019 08:47:30 +0000 (10:47 +0200)]
GPencil: New Normalize Weights operator

This works similar to mesh operator, but using Stroke and Points data.

4 months agoCMake: remove BLENDER_SORTED_LIBS
Campbell Barton [Tue, 16 Apr 2019 10:36:44 +0000 (12:36 +0200)]

Use CMake's target_link_libraries instead of manually maintaining
library dependencies in a single list.

In practice adding new libraries often ended up being guess-work,
now each library lists the libraries it uses.

This was used for the game player executable so libraries
could optionally link to stubs.

If we need this functionality it can be done using target-properties
as described in T46725.

4 months agoCMake: fix WIN32 linking without sorted libs
Sergey Sharybin [Tue, 16 Apr 2019 10:35:50 +0000 (12:35 +0200)]
CMake: fix WIN32 linking without sorted libs

4 months agoClenaup: odd use of ternary operators
Campbell Barton [Tue, 16 Apr 2019 10:09:34 +0000 (12:09 +0200)]
Clenaup: odd use of ternary operators

4 months agoCleanup: comment
Campbell Barton [Tue, 16 Apr 2019 07:15:39 +0000 (09:15 +0200)]
Cleanup: comment

4 months agoIndustry Compat Keymap: Use F-keys for viewpoints
William Reynish [Tue, 16 Apr 2019 09:01:23 +0000 (11:01 +0200)]
Industry Compat Keymap: Use F-keys for viewpoints

Following user suggestion

  - Similar to some apps
  - Works better on laptops and desktops without numpads
  - Also fix some small inconsistencies with select more/less in Dopesheet

4 months agoGPencil: Disable G/R/S transformations in Sculpt and Weight Paint mode
Antonioya [Tue, 16 Apr 2019 08:04:07 +0000 (10:04 +0200)]
GPencil: Disable G/R/S transformations in Sculpt and Weight Paint mode

These transformations must be only available in Object and Edit mode.

Reviewed by: @mendio @pepeland

4 months agoFix T63492: CTRL+click on an image in a UV or Image Editor crashes
Philipp Oeser [Fri, 12 Apr 2019 11:42:52 +0000 (13:42 +0200)]
Fix T63492: CTRL+click on an image in a UV or Image Editor crashes

Crash was introduced in rB48e48653c297, rB90f4ff95ed3a

`image_sample_invoke` is used for both `IMAGE_OT_sample` and
`IMAGE_OT_curves_point_set`. IMAGE_OT_curves_point_set didnt have
property `size` defined...

Now defines `size` for `IMAGE_OT_curves_point_set` as well

Reviewers: brecht

Maniphest Tasks: T63492

Differential Revision:

4 months agoFix T63642: Light Probe defined as UNKNOWN
Campbell Barton [Tue, 16 Apr 2019 07:15:39 +0000 (09:15 +0200)]
Fix T63642: Light Probe defined as UNKNOWN

4 months agoFix T63646: Box/Lasso select fails to de-select
Campbell Barton [Tue, 16 Apr 2019 07:01:00 +0000 (09:01 +0200)]
Fix T63646: Box/Lasso select fails to de-select

Select 'New' wasn't de-selecting when there was nothing selected
in some cases.

4 months agoCMake: add libs needed for gtests
Campbell Barton [Tue, 16 Apr 2019 06:07:01 +0000 (08:07 +0200)]
CMake: add libs needed for gtests

4 months agoCleanup: move motion paths into editors/animation
Campbell Barton [Tue, 16 Apr 2019 05:27:37 +0000 (07:27 +0200)]
Cleanup: move motion paths into editors/animation

Having this in blenkernel caused bad level calls to bf_editors_anim,
causing tests that use 'blenkernel' to require almost all libraries.
(complicating gtest linking & causing large binaries).

4 months agoCMake: add library deps to CMakeLists.txt
Campbell Barton [Tue, 16 Apr 2019 04:18:52 +0000 (06:18 +0200)]
CMake: add library deps to CMakeLists.txt

Tested to work on Linux and macOS.

This will be enabled once all platforms are verified.

See D4684

4 months agoCMake: cleanup, arg rename, add definitions last
Campbell Barton [Tue, 16 Apr 2019 04:11:27 +0000 (06:11 +0200)]
CMake: cleanup, arg rename, add definitions last

4 months agoCMake: re-order openvdb/osl linking
Brecht Van Lommel [Tue, 16 Apr 2019 04:09:34 +0000 (06:09 +0200)]
CMake: re-order openvdb/osl linking

Needed for building without sorted libs.

4 months agoFix DDS failure ignoring message argument
Campbell Barton [Tue, 16 Apr 2019 03:51:25 +0000 (05:51 +0200)]
Fix DDS failure ignoring message argument

4 months agoFix T62852: crash reading corrupt DDS file.
Brecht Van Lommel [Tue, 16 Apr 2019 01:39:29 +0000 (03:39 +0200)]
Fix T62852: crash reading corrupt DDS file.

4 months agoFix T63346: Cycles OSL shader with closure not working in final render.
Brecht Van Lommel [Tue, 16 Apr 2019 01:03:24 +0000 (03:03 +0200)]
Fix T63346: Cycles OSL shader with closure not working in final render.

4 months agoFix T63562: wrong viewport updates after editing group node sockets
Brecht Van Lommel [Tue, 16 Apr 2019 00:29:22 +0000 (02:29 +0200)]
Fix T63562: wrong viewport updates after editing group node sockets

4 months agoFix T63401: add Object (Without Inverse) to Set Parent menu
Philipp Oeser [Tue, 16 Apr 2019 00:14:35 +0000 (02:14 +0200)]
Fix T63401: add Object (Without Inverse) to Set Parent menu

Previously it was bound to a shortcut.

Differential Revision:

4 months agoFix T62913: datablock append removing unrelated rigid body objects.
Brecht Van Lommel [Mon, 15 Apr 2019 23:49:03 +0000 (01:49 +0200)]
Fix T62913: datablock append removing unrelated rigid body objects.

4 months agoFix proxy remapping on make local failing for more than one object.
Brecht Van Lommel [Mon, 15 Apr 2019 23:50:35 +0000 (01:50 +0200)]
Fix proxy remapping on make local failing for more than one object.

4 months agoFix T62849: crash entering particle edit mode with hair dynamics
Brecht Van Lommel [Mon, 15 Apr 2019 23:41:37 +0000 (01:41 +0200)]
Fix T62849: crash entering particle edit mode with hair dynamics

4 months agoFix T63189: missing double click for UV loop select and emulate MMB
Brecht Van Lommel [Mon, 15 Apr 2019 23:32:50 +0000 (01:32 +0200)]
Fix T63189: missing double click for UV loop select and emulate MMB

4 months agoFix T63439: too many 3D viewport redraws due to fading scrollbars.
Brecht Van Lommel [Mon, 15 Apr 2019 23:22:40 +0000 (01:22 +0200)]
Fix T63439: too many 3D viewport redraws due to fading scrollbars.

Only redraw the regions, not the entire editor.

4 months agoSpline IK: fix continuity issues with influence and curve end rolloff.
Alexander Gavrilov [Mon, 15 Apr 2019 18:48:33 +0000 (21:48 +0300)]
Spline IK: fix continuity issues with influence and curve end rolloff.

Mainly, scaling needs to be continuously faded out in these cases.
Plus, in the case of end roll-off, it seems better to integrate into
this general fading system, instead of ad-hoc interpolation of tail.

4 months agoFix T63574: missing implicit parent bone dependency in proxies.
Alexander Gavrilov [Mon, 15 Apr 2019 16:53:52 +0000 (19:53 +0300)]
Fix T63574: missing implicit parent bone dependency in proxies.

Although technically evaluating the proxy copy nodes doesn't require
the parent bone to be copied, other nodes that depend on the bones
sometimes expect the parent to be ready. To meet this expectation
it's necessary to add the dependency to the graph.

4 months agoFix T63284: Eevee: Crash when subsurface pass is enabled
Clément Foucault [Mon, 15 Apr 2019 15:46:06 +0000 (17:46 +0200)]
Fix T63284: Eevee: Crash when subsurface pass is enabled

Was caused by a NULL texture used as uniform.

4 months agoGPencil: Hide UV factor for Dots and Boxes
Antonioya [Mon, 15 Apr 2019 14:07:56 +0000 (16:07 +0200)]
GPencil: Hide UV factor for Dots and Boxes

This parameter is not used with these modes.

4 months agoUI: move gizmo popover next to the overlay buttons
Campbell Barton [Mon, 15 Apr 2019 13:54:25 +0000 (15:54 +0200)]
UI: move gizmo popover next to the overlay buttons

In paint modes this was the only button in the middle.

4 months agoFix T63598: "child of" constraint "set/clear inverse" ops not working
Philipp Oeser [Mon, 15 Apr 2019 09:37:18 +0000 (11:37 +0200)]
Fix T63598: "child of" constraint "set/clear inverse" ops not working

was missing DEG updates

Reviewers: sergey

Maniphest Tasks: T63598

Differential Revision:

4 months agoFix T63377: "Principled Volume" node not working anymore in EEVEE
Clément Foucault [Mon, 15 Apr 2019 12:36:16 +0000 (14:36 +0200)]
Fix T63377: "Principled Volume" node not working anymore in EEVEE

I'm not sur how it ever worked before. There was no texture bound to these
sampdensity and sampflame when no volume simulation was happening.

This fixes the issue using 1x1x1 dummy textures.

4 months agocleanup: typo in comment
Philipp Oeser [Mon, 15 Apr 2019 09:44:56 +0000 (11:44 +0200)]
cleanup: typo in comment

4 months agoCleanup: Add missing comma
Antonioya [Mon, 15 Apr 2019 09:03:56 +0000 (11:03 +0200)]
Cleanup: Add missing comma

4 months agoIndustry Compat Keymap: Tool shortcuts
William Reynish [Mon, 15 Apr 2019 08:58:52 +0000 (10:58 +0200)]
Industry Compat Keymap: Tool shortcuts

- Use C for Cursor tool
- Use D for Annotate tool
- Use tool shortcuts in UV Editor (although it's weak here still - waiting for Move, Rotate & Scale tools here)

4 months agoGPencil: New Dots gradient
Antonioya [Mon, 15 Apr 2019 08:32:06 +0000 (10:32 +0200)]
GPencil: New Dots gradient

This commit adds support for drawing Dots strokes with a gradient factor to get artistic effects like watercolor.

Currently, the option is only supported by Dots materials, and in the future will be added to line strokes, but now there is a limitation on drawing engine and we will keep disabled on Line materials.

Also, added the option to align Dots and Boxes strokes textures aligned with the drawing path to get more fluid strokes.

4 months agoIndustry Compat Keymap: Panning consistency
William Reynish [Mon, 15 Apr 2019 08:23:33 +0000 (10:23 +0200)]
Industry Compat Keymap: Panning consistency

- Allow orbiting while using Knife tool
- Use consistent panning keys in properties lists
- Also fix warning related to empty View 3D Generic keymap

4 months agoIndustry Compat Keymap: Remove Ctrl-click for context menu
William Reynish [Mon, 15 Apr 2019 07:37:06 +0000 (09:37 +0200)]
Industry Compat Keymap: Remove Ctrl-click for context menu

This was conflicting with some tools such as the select tools which used it for deselecting.

4 months agoCMake: fix WITH_PYTHON=OFF
Campbell Barton [Mon, 15 Apr 2019 06:40:15 +0000 (08:40 +0200)]

4 months agoCMake: sort file list
Campbell Barton [Mon, 15 Apr 2019 05:13:13 +0000 (07:13 +0200)]
CMake: sort file list

4 months agoCMake: resolve issue building without sorted libs
Campbell Barton [Mon, 15 Apr 2019 04:38:26 +0000 (06:38 +0200)]
CMake: resolve issue building without sorted libs

Linking empty libs gave an error.

4 months agoFix copy & paste mistake in assert.
Alexander Gavrilov [Sun, 14 Apr 2019 19:18:00 +0000 (22:18 +0300)]
Fix copy & paste mistake in assert.

4 months agoDepsgraph: fix hard CTD on dependency cycles through POSE_INIT.
Alexander Gavrilov [Sun, 14 Apr 2019 18:53:03 +0000 (21:53 +0300)]
Depsgraph: fix hard CTD on dependency cycles through POSE_INIT.

As reported in T63582, it can cause chan_array to be not ready.
To reliably avoid crashing, the only easy way seems to be to
create the index during COW -- maybe @sergey has a better idea.

4 months agoRender: new material preview
William Reynish [Sun, 14 Apr 2019 16:41:10 +0000 (18:41 +0200)]
Render: new material preview

* EEVEE support through irradiance volume and light probe.
* New shader ball shape (designed by Robin Marin).
* New cloth and liquid shapes, removed monkey.
* Replace world sphere by toggle to use world for any shape.
* Slight bevel on cube.
* More subdivision for displacement preview.
* Fixed and improved UV mapping for all shapes.
* Material icon / asset preview now uses specified shape instead of always
  a sphere. So for example hair material can be displayed as hair.

Ref T57683

4 months agoFix Alembic using wrong visible/selected flags, fix warnings.
Brecht Van Lommel [Sun, 14 Apr 2019 17:37:30 +0000 (19:37 +0200)]
Fix Alembic using wrong visible/selected flags, fix warnings.

4 months agoCleanup: remove deprecated grease pencil object property.
Brecht Van Lommel [Sun, 14 Apr 2019 17:08:19 +0000 (19:08 +0200)]
Cleanup: remove deprecated grease pencil object property.

4 months agoCleanup: fix compiler warnings.
Brecht Van Lommel [Sun, 14 Apr 2019 17:04:37 +0000 (19:04 +0200)]
Cleanup: fix compiler warnings.

4 months agoFix T63599: fix the zero ease hack for the B-Bone end matrix.
Alexander Gavrilov [Sun, 14 Apr 2019 17:30:33 +0000 (20:30 +0300)]
Fix T63599: fix the zero ease hack for the B-Bone end matrix.

Negate the second derivative, because it's effectively stepping back.

4 months agoFix T59622: dependency problems with Spline IK.
Alexander Gavrilov [Sun, 14 Apr 2019 10:44:12 +0000 (13:44 +0300)]
Fix T59622: dependency problems with Spline IK.

The bug is caused by problems in the dependency graph. Unfortunately,
fixing is not just a matter of fixing the graph, because correct
dependencies would cause a cycle here and in other reasonable use
cases. The real fix thus requires refactoring Spline IK to require
curve data only in the actual evaluation phase, and not in POSE_INIT_IK.

In addition, this separates the normal bone evaluation loop from
Spline IK computations for two reasons:

- That still needs to be done even if spline IK can't evaluate
  due to missing curve data.

- It should reduce issues with induced shearing, as Spline IK now
  controls how parent-child relations are handled in the chain, and
  can take care to only carry over rotation and location.

4 months agoComplete the set of matrix multiplication functions.
Alexander Gavrilov [Sun, 14 Apr 2019 15:13:39 +0000 (18:13 +0300)]
Complete the set of matrix multiplication functions.

Also, mul_m3_m3m4 was named incorrectly.

4 months agoFix add_search node operator to show custom nodes
Miguel Porces [Sun, 14 Apr 2019 14:59:01 +0000 (16:59 +0200)]
Fix add_search node operator to show custom nodes

Differential Revision:

4 months agoUI: Remember the last display mode in file browser
Sharan Ranjit [Sun, 14 Apr 2019 14:33:59 +0000 (16:33 +0200)]
UI: Remember the last display mode in file browser

See also T57688.

Differential Revision:

4 months agoUI: Do not show full action range
Jacques Lucke [Sun, 14 Apr 2019 14:18:48 +0000 (16:18 +0200)]
UI: Do not show full action range

Reviewers: brecht

Differential Revision:

4 months agoCMake: prepare for BLENDER_SORTED_LIBS removal
Campbell Barton [Sun, 14 Apr 2019 13:18:44 +0000 (15:18 +0200)]
CMake: prepare for BLENDER_SORTED_LIBS removal

No functional change, this adds LIB definition and args to cmake files.
Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS'
since there are many platforms/configurations that could break when
changing linking order.

Manually add and enable WITHOUT_SORTED_LIBS to try building
without sorted libs (currently fails since all variables are empty).
This check will eventually be removed.

See T46725.

4 months agoDopesheet: enable Show Keyframes and Interpolation by default.
Alexander Gavrilov [Sun, 14 Apr 2019 13:34:06 +0000 (16:34 +0300)]
Dopesheet: enable Show Keyframes and Interpolation by default.

Make the option enabled by default, and enable it in old files,
unless Show Extremes is enabled.

However, suppress it for the Timeline, because its View menu
doesn't include the option.

Reviewers: billreynish, brecht

Differential Revision:

4 months agoExplain the Local With Parent coordinate space better.
Alexander Gavrilov [Sun, 14 Apr 2019 13:26:47 +0000 (16:26 +0300)]
Explain the Local With Parent coordinate space better.

Just saying "parent transformation added" doesn't really explain
what this coordinate space does. Thus it seems almost nobody used
it and serious bugs like T61981 went unnoticed.

4 months agoFix T61981: Local With Parent broken as constraint own space.
Alexander Gavrilov [Sun, 14 Apr 2019 12:50:49 +0000 (15:50 +0300)]
Fix T61981: Local With Parent broken as constraint own space.

Specifically, matrix multiplication order in Local With Parent
to Pose space conversion was wrong, compared with Pose to LWP.

4 months agoMissed version bump in recent commit
Campbell Barton [Sun, 14 Apr 2019 11:29:06 +0000 (13:29 +0200)]
Missed version bump in recent commit

4 months agoKeymap: toggle context gizmo instead of the tool gizmo
Campbell Barton [Sun, 14 Apr 2019 11:21:44 +0000 (13:21 +0200)]
Keymap: toggle context gizmo instead of the tool gizmo

When a tool is activated in many cases the gizmo is needed so toggling
them isn't so useful.

Change behavior to use the active object instead so users who prefer
to enable gizmos in the popover can toggle them.

Also remove duplicate keymap item.

4 months agoGizmo: individual toggles for 3D view gizmos
Campbell Barton [Sun, 14 Apr 2019 11:11:17 +0000 (13:11 +0200)]
Gizmo: individual toggles for 3D view gizmos

The popover for displaying gizmos now has options for
empty, light & camera gizmos.

Transform toggles are now checkboxes, which has the advantage that it's
more obvious they can be mixed however changing from one to another now
uses 3x clicks instead of a single click-drag action.
We might need a faster way to switch between transform types.

4 months agoDepsgraph: fix debug print crash on IK constraint without target.
Alexander Gavrilov [Sun, 14 Apr 2019 08:31:51 +0000 (11:31 +0300)]
Depsgraph: fix debug print crash on IK constraint without target.

4 months agoCleanup: rename 'ObData' to 'Object Data'
Campbell Barton [Sun, 14 Apr 2019 09:19:09 +0000 (11:19 +0200)]
Cleanup: rename 'ObData' to 'Object Data'

4 months agoFix T63587: 3D View clipping region crashes
Campbell Barton [Sun, 14 Apr 2019 09:04:34 +0000 (11:04 +0200)]
Fix T63587: 3D View clipping region crashes

4 months agoCleanup: doxy comments
Campbell Barton [Sun, 14 Apr 2019 08:48:42 +0000 (10:48 +0200)]
Cleanup: doxy comments

Use doxy references to function and enums,
also correct some names which became out of sync.

4 months agoCleanup: move operator constants out of DNA
Campbell Barton [Sun, 14 Apr 2019 07:58:40 +0000 (09:58 +0200)]
Cleanup: move operator constants out of DNA

Also use doxy struct member references.

4 months agoGizmo: move transform to a persistent option
Campbell Barton [Sat, 13 Apr 2019 18:36:53 +0000 (20:36 +0200)]
Gizmo: move transform to a persistent option

Based on feedback from animators, this is useful to keep as a view
option (as in 2.7x).

Now the transform gizmos can be enabled from the popover,
the tools still work for location/scale/rotation.
The transform tool has been removed.

See T63518

4 months agoKeymap: warn when running poll on empty keymaps
Campbell Barton [Sat, 13 Apr 2019 17:22:08 +0000 (19:22 +0200)]
Keymap: warn when running poll on empty keymaps

4 months agoFix T62048: crash when turning off curve path animation with Spline IK.
Alexander Gavrilov [Sat, 13 Apr 2019 14:36:57 +0000 (17:36 +0300)]
Fix T62048: crash when turning off curve path animation with Spline IK.

Both fix missing depsgraph flag, and gracefully give up on missing data.

4 months agoFix T37500: implement Bendy bone segment deformation interpolation.
Alexander Gavrilov [Fri, 5 Apr 2019 15:40:59 +0000 (18:40 +0300)]
Fix T37500: implement Bendy bone segment deformation interpolation.

Previously B-Bone deformation mapped every vertex to just one
B-Bone segment. This results in abrupt transformation differences
between the sides of each threshold plane, reducing the quality
of B-Bone deformation and making the use of shape keys impractical.

This commit replaces this approach with a linear blend between
the two closest segment transformations, effectively representing
the B-Bone as two weight-blended plain bones for each vertex.

In order to distribute the interpolation more evenly along the
bone, segment matrices for deformation are now computed at points
between the segments and at the ends of the B-Bone. The computation
also uses the true tangents of the Bezier curve for the orientation.
The nodes at the end of the bone require some special handling to
deal with zero-length Bezier handles caused by a zero ease value.

The Copy Transforms constraint now also smoothly interpolates
rotation and scaling along the bone shape when enabled.

The initial version of the patch was submitted by @Sam200.

Differential Revision: