Commit Graph

82256 Commits

Author SHA1 Message Date
Dalai Felinto
098e807f9e Viewport collections visibility popover
This brings the functionality currently in the H shortcut, to hide/show
individual collections.

In order to convey hierarchy, and to make justice to the originally
intended 1-10 shortcuts, we group the collections per siblings.
2018-11-15 11:52:00 -02:00
Dalai Felinto
b85886f8d5 LayerCollection RNA API util functions
* has_objects()
* has_visible_objects(view_layer)
* has_selected_objects(view_layer)
2018-11-15 11:51:57 -02:00
Dalai Felinto
570e37261d Hide collections menu: ignore excluded collections
Note: I didn't change the shortcuts, I think this is a separate decision
to be made. I just want at the moment to have the H operator to mimic
the upcoming popover.

Personally if we are to keep the 1-10 shortcuts (and they do work) I
think we should skip the excluded collections altogether.

In fact we could have an option to hide them from the outliner too.
2018-11-15 11:51:57 -02:00
Jacques Lucke
bdca863956 Units: Identifiers in Python
I only specified the identifiers for the units that are actually accessible for now.
This way we can postpone some decisions for now. E.g. if it should be `METER_SQUARE`, `SQUARE_METER`, `METER_SQ`, ...

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3945
2018-11-15 14:40:22 +01:00
Sergey Sharybin
cdfc128267 Fix T57848: Transforming large linked instances freezes Blender 2018-11-15 13:55:15 +01:00
Brecht Van Lommel
71fd7e610a Keymaps: minor code refactor after adding tools to default preset. 2018-11-15 12:50:33 +01:00
Sergey Sharybin
9a9ca5e40b Depsgraph: Build all type of IDs for modifiers and constraints
It was missing handling of collections there, which caused collection
used for smoke colliders to not be in the dependency graph.
2018-11-15 12:48:55 +01:00
William Reynish
c3e2b40a91 Icons: sculpt tool updates r62157
- Blue = Add/Subtract
- Yellow = Flatten/Contrast
- Red = Grab
- Grey = General/Other
2018-11-15 22:32:38 +11:00
William Reynish
165c447691 Tool System: add curve tilt tool 2018-11-15 22:31:47 +11:00
William Reynish
93b373060f Icons: add tilt tool 2018-11-15 22:31:42 +11:00
Bastien Montagne
d2c41293a0 Fix T57831: Crash with multi-select / delete of the same object in Collection outliner.
Tssst… that piece of code should have been removed when we got rid of
bases here, kind of obvious it would break if object pointer itself is
NULL! And since deleting an object clears its ID pointers in outliner
tree, this fixes for free the issue of deleting several time the same
object (being selected in several collections at once).
2018-11-15 12:26:55 +01:00
Alexander Gavrilov
e318da5350 Remove unused parameter. 2018-11-15 14:19:35 +03:00
Sergey Sharybin
90cf9bcc7d Depsgraph: Make drivers builder less noisy
Do early output when trying to add target relation with wrong rna_path.

We can't do anything reliably in that case anyway, so hopefully it is
a no-functional-change for artists, just avoids noisy error prints in
the terminal.
2018-11-15 12:13:28 +01:00
Alexander Gavrilov
a575c508fe Stretch To: fix initialization of the constraint with copy-on-write.
The constraint is supposed to automatically initialize the rest
length when it is first evaluated, so now that evaluation is done
on a separate copy it also has to copy the value to the master
instance - or newly created constraints will be broken.

Since this is supposed to happen once at constraint creation,
implementing as a search for now instead of adding new fields.
2018-11-15 14:10:24 +03:00
Sergey Sharybin
773110f848 Depsgraph: Save memory by ignoring invisible objects
This finished old standing TODO which was attempting to
ignore objects of all invisible collections.

The difference here is that we remove invisible bases from
view layers. This guarantees that the evaluated state is
consistent and does not reference original objects.
2018-11-15 11:43:12 +01:00
Sergey Sharybin
156fe74f91 Depsgraph: Fix/workaround crash after recent point cache changes
For some reason relations can not always be found. This is to be
investigated, but doesn't hurt to be safe here. Also allows to
unlock production.
2018-11-15 11:43:12 +01:00
Sergey Sharybin
4a3a4eef14 Depsgraph: Use more human readable relation keys identifier 2018-11-15 11:43:12 +01:00
Campbell Barton
48c137ad5d UI: remove node tree panels
This duplicates items in the add menu and uses a lot of vertical space.

This should be used for tools or disabled.
2018-11-15 19:36:32 +11:00
Campbell Barton
b8d21f9b9b Cleanup: typo, whitespace 2018-11-15 18:50:18 +11:00
Campbell Barton
5ec1d709e7 WM: use Python bytecode cache to run presets
Key-maps can be very large, avoid parsing on every startup.
2018-11-15 18:46:00 +11:00
Campbell Barton
49cd13768f UI: 'Add Object' rename dimensions
D3943 by @Zachman w/ edits
2018-11-15 17:44:50 +11:00
Campbell Barton
7c03365861 WM: use spacebar press event (not double click)
Functionality) is nicer but this uses a hack to make it work,
keep the code under a variable in case we want to remove.
2018-11-15 17:12:33 +11:00
Campbell Barton
02a21420e8 Fix gizmos in the node editor 2018-11-15 15:43:50 +11:00
Campbell Barton
8c7727946c Gizmo: tweak navigation drawing for axis views
Axis aligned views now show both small/large handles,
this makes it possible to well if the view is in front or behind.
2018-11-15 14:11:08 +11:00
Campbell Barton
b3d84853ac Keymap: remove keymap export that wrote API calls
Use new keymap format which defines data to be loaded.
2018-11-15 13:51:55 +11:00
Campbell Barton
8734a09379 Tool System: use preset keymap loading logic
The data structures for tool keymaps and presets were different,
use the same structure and expose function publicly.
2018-11-15 13:38:27 +11:00
Campbell Barton
349d85eb9e Missed when moving tool keymaps 2018-11-15 13:34:47 +11:00
Campbell Barton
02d77e5bf5 Keymap: use parameters for tool keymap 2018-11-15 12:54:44 +11:00
Campbell Barton
27eba3867a Keymap: move tool system keymaps into the default keymap
Note that tools can still define their keymaps,
since it's useful for add-ons.
2018-11-15 12:45:45 +11:00
Campbell Barton
c94f806dc7 WM: remove warning when toolbar not found
Not useful for general usage, so removing.
2018-11-15 09:51:37 +11:00
Campbell Barton
3ecc79fa1a Gizmo: use color fading to show depth for navigate
Previously the positive axis was always brighter,
now use bright colors which face towards the view.
2018-11-15 09:44:03 +11:00
Campbell Barton
28e7c94de2 Gizmo: minor fix for navigation axis color
When view aligned, the near axis was hidden,
making it seem as if the opposite axis was at the front.
2018-11-15 08:17:16 +11:00
Campbell Barton
d04947b422 Gizmo: skip text drawing w/ select for navigate
Also use struct for storing extra args.
2018-11-15 07:59:03 +11:00
Jacques Lucke
78207eac9b Py API Docs: New custom shader example 2018-11-14 18:41:33 +01:00
Brecht Van Lommel
6f08124fbd Fix assert in bevel modifier with certain geometry.
This happened in in the barbershop_interior.blend benchmark file, seems
duplicate hash entries are ok for this algorithm.
2018-11-14 18:21:28 +01:00
Bastien Montagne
a4fccde67a Fix some templates for 2.8. 2018-11-14 18:21:06 +01:00
Bastien Montagne
844c7440fc Fix (unreported) bpy.ops.wm.read_factory_settings(use_empty=True) crash.
`BKE_blendfile_read_make_empty()` was not preserving workspaces...
2018-11-14 18:21:06 +01:00
Alexander Gavrilov
e20557046b Depsgraph: suppress logs from add_relation on invalid driver variables.
Rig generators (e.g. rigify) use dummy drivers to attach extra
ID references to rigs for Append/Link. These references use
Single Property variables with empty path, which is intentionally
invalid and shouldn't produce low-level error logs from depsgraph.

The removed code would always print an error because RNAPathKey
requires a valid path to produce a non-NULL reference.
2018-11-14 20:18:48 +03:00
Alexander Gavrilov
10bab568d3 Fix assertion failure evaluating depsgraph on an empty armature.
If there are no bones, chan_array may not be allocated.
2018-11-14 19:15:41 +03:00
Bastien Montagne
b44e6f2b3d Fix T57760: Depsgraph 'object_instances' showing incorrect list of objects.
It appears that Python gets next item before using current one, which
would break our Depsgraph instance iterator (since only current item is
valid there, we use the same memory at each iteration).

Working around that with an ugly ping-pong game between two sets of
iterator data, so that previous one (C RNA-iterator-wise) remains valid
memory for Python to access to.
2018-11-14 17:07:02 +01:00
Bastien Montagne
d2dd278c5e Fix typo in comment. 2018-11-14 17:07:02 +01:00
Bastien Montagne
b785586232 Fix T57558: Outliner displaying same object twice in some cases.
Logical flaw in `BKE_scene_objects_iterator_begin()` code (two errors
actually, wrong handling of first object of Master collection, and
missing call to `object_base_unique()` to 'register' that first object
and avoid getting it returned a second time).

Simply fixed by always calling `BKE_scene_objects_iterator_next()`
after minimal proper init, that one knows how to do the things. ;)
2018-11-14 17:07:02 +01:00
Jacques Lucke
46ac317a29 Py API Docs: documentation for gpu_extras.presets 2018-11-14 16:43:48 +01:00
Sergey Sharybin
eefae747da Depsgraph: Remove meaningless evaluation mode
With the current implementation it only confuses logic around
checks like vewport/render subdivision levels.

If this mode is really needed for any decision making, implement
this properly.
2018-11-14 14:08:39 +01:00
Sergey Sharybin
d3c08b1aa6 Depsgraph: Fix missing point cache reset when physics changes
Among all the lines moved around, the general idea is quite simple.
Actually, there are two ideas implemented there.

First one, is when object itself is tagged for update, we tag its
point cache component for evaluation, which makes it so point cache
is properly reset. We do it implicitly because otherwise we'll need
to go everywhere and add explicit tag in almost all the properties.

Second thing is, we link all collider and force fields to a point
cache component using special type of link. This type of link only
allows flush if change is caused by a user update. This way reset
does not happen when change is caused due to animation, but will
properly happen when user causes indirect change to the objects
which are part of physics simulation.
2018-11-14 14:08:39 +01:00
Sergey Sharybin
1d8db50538 Depsgraph: Remove unused operation code 2018-11-14 14:08:39 +01:00
Sergey Sharybin
39cd872acb Add function to query whether object has any point cache 2018-11-14 14:08:39 +01:00
Sergey Sharybin
ec2fea733b Make object point cache iteration more generic
Currently should be no functional changes, but this will
simplify implementing some incoming logic.
2018-11-14 14:08:39 +01:00
Sergey Sharybin
fdd1fea851 Depsgraph: Cleanup, code style
Should be no functional changes.
2018-11-14 14:08:39 +01:00
Campbell Barton
1386a4a0f2 Gizmo: get background color based on view option 2018-11-15 00:05:54 +11:00