Commit Graph

844 Commits

Author SHA1 Message Date
Campbell Barton
51bba03b31 Undo System: add Main argument to encode/decode
Needed since we don't always have the context,
and avoids adding G_MAIN into undo callbacks.
2019-01-31 12:07:13 +11:00
Campbell Barton
c0f88ed8a8 Cleanup: sort forward declarations of enum & struct
Done using:
  source/tools/utils_maintenance/c_sort_blocks.py
2019-01-28 21:17:58 +11:00
Campbell Barton
f20dbc293f Cleanup: blank lines over doxy headers 2019-01-26 21:43:24 +11:00
Campbell Barton
1e4aab36c2 Cleanup: remove redundant BKE/BLI/BIF headers 2019-01-26 21:20:25 +11:00
Campbell Barton
b8e8c0e325 Cleanup: comment line length (editors)
Prevents clang-format wrapping text before comments.
2019-01-15 23:30:31 +11:00
Campbell Barton
1a208f0326 Cleanup: indentation, naming
Use rna naming conventions for unit-settings callbacks.
2019-01-02 17:07:47 +11:00
Campbell Barton
bcf0c71433 Cleanup: remove non-existing function declarations 2018-12-31 00:58:54 +11:00
Sergey Sharybin
79312c1912 Depsgraph: Remove duplicated sets of recalc/update flags
There were at least three copies of those:

- OB_RECALC* family of flags, which are rudiment of an old
  dependency graph system.
- PSYS_RECALC* which were used by old dependency graph system
  as a separate set since the graph itself did not handle
  particle systems.
- DEG_TAG_* which was used to tag IDs.

Now there is a single set, which defines what can be tagged
and queried for an update. It also has some aggregate flags
to make queries simpler.

Lets once and for all solve the madness of those flags, stick
to a single set, which will not overlap with anything or require
any extra conversion.

Technically, shouldn't be measurable user difference, but some
of the agregate flags for few dependency graph components did
change.

Fixes T58632: Particle don't update rotation settings
2018-12-07 11:37:38 +01:00
Campbell Barton
341d5b08b0 Fix adding objects in local view 2018-12-07 13:01:26 +11:00
Bastien Montagne
98ecab1af0 Fix T56906: Mesh from Curve not working on curves beveled by curves.
Not exactly sure why we did not have cached displist for bevel object
here... But anyway, that conversion operation should really happen
outside of depsgraph evaluation area, so makes sense to do it as when
generating geometry for rendering, imho. Also solves issues like loosing
hidden parts of the curve/surface, etc. Still using viewport resolution
for curves, though.
2018-11-28 18:16:48 +01:00
Campbell Barton
7493848008 3D View: remove 3D cursor
Use 3D cursor from the scene (was previously used for local-view).
2018-11-26 14:02:09 +11:00
Dalai Felinto
4c3ed98ca2 Local View
Bring back per-viewport localview. This is based on Blender 2.79.
We have a limit of 16 different local view viewports.

We are using both the numpad /, as well as the regular /.

Missing features:
* Hack to make sure lights are always visible.
* Make rendered mode with external engines to support this as well
  (probably just need to support this in the RNA iterators).
* Support over 16 viewports by taking existing viewports out of local view.

The code can use a cleanup pass in the future to unify the test to see
if an object is visible (or we can use TESTBASE in more places).
2018-11-25 09:50:34 -02:00
Campbell Barton
49cd13768f UI: 'Add Object' rename dimensions
D3943 by @Zachman w/ edits
2018-11-15 17:44:50 +11:00
Campbell Barton
184ab749c3 Merge branch 'master' into blender2.8 2018-11-13 14:25:36 +11:00
Campbell Barton
fe566a30f3 Cleanup: use lowercase 2d/3d in function names 2018-11-13 14:21:42 +11:00
Habib Gahbiche
ab77f5b5fe Improvements on CURVE_OT_select_similar: SIMCURHAND_DIRECTION
Consider rotation and scale when calculating direction in world space.

Reviewers: dfelinto
Maniphest Tasks: T56948

Differential Revision: https://developer.blender.org/D3911
2018-11-09 09:39:46 -02:00
Brecht Van Lommel
3064da1200 Keymap: move builtin keymaps from C to Python
This should be purely an implementation change,
for end users there should be no functional difference.

The entire key configuration is in one file with ~5000 lines of code.
Mostly avoiding code duplication and preserve comments and utility
functions from the C code.
It's a bit long but for searching and editing it's also convenient to
have it all in one file.

Notes:

- Actual keymap is shared by blender / blender_legacy
  and stored in `keymap_data/blender_default.py`

  This only generates JSON-like data to be passed into
  `keyconfig_import_from_data`, allowing other presets to load and
  manipulate the default keymap.

- Each preset defines 'keyconfig_data'
  which can be shared between presets.

- Some of the utility functions for generating keymap items still
  need to be ported over to Python.

- Some keymap items can be made into loops (marked as TODO).

See: D3907
2018-11-09 11:33:06 +11:00
Bastien Montagne
64ec05b64d Cleanup: remove some useless BKE_library and BKE_main includes.
Makes it simpler to make some changes...

Also fix order of some includes (use alphabetical please).
2018-11-07 20:58:54 +01:00
Campbell Barton
188857e0f2 Cleanup: style 2018-11-07 12:57:24 +11:00
Habib Gahbiche
4e9911663a Multi-Objects: CURVE_OT_select_similar
Implemented the following methods:
* SIMCURHAND_TYPE
* SIMCURHAND_RADIUS
* SIMCURHAND_WEIGHT
* SIMCURHAND_DIRECTION

Limits:
* DIRECTION does not support surfaces, because `BKE_nurb_bpoint_calc_normal`
  does not work with Nurbs of type `CU_CARDINAL`. This also didn't work prior
  to this patch, so we wait until surfaces are properly supported in EditMode.

* Also DIRECTION should take scaling into consideration. We need our own
  versions of BKE_nurb_bpoint_calc_normal/bezt.

* Threshold default is too large. Not sure if it's better to change the default
  or scale the threshold in code.

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

Changes from committer (Dalai Felinto):
 * Moved nurb_bpoint_direction_worldspace_get/bezt to functions.
 * Comments hinting at the mode (direction) that require scaling to be
   taken into account - to be addressed by patch creator in a future
   patch.
2018-11-06 22:56:33 -02:00
Campbell Barton
900c562b71 Cleanup: rename fast-heap -> heap-simple
In general prefer API names don't start with adjectives
since it causes grouping of unrelated API's for completion.
2018-11-06 13:06:49 +11:00
Campbell Barton
d805a4a5ef Cleanup: move fast heap into own source & header 2018-11-06 12:52:34 +11:00
Alexander Gavrilov
fee6ab18e7 BLI_heap: implement a limited but faster version of heap.
If the user only needs insertion and removal from top, there is
no need to allocate and manage separate HeapNode objects: the
data can be stored directly in the main tree array.

This measured a 24% FPS increase on a ~50% heap-heavy workload.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3898
2018-11-05 20:49:17 +03:00
Campbell Barton
a18927463c Cleanup: style 2018-11-03 15:55:45 +11:00
Dalai Felinto
c63d133f4d Small cleanup on curve separation error handling 2018-11-02 14:12:20 -03:00
Dalai Felinto
3335618489 Multi-Objects: CURVE_OT_make_segment
And another go at a more complete error handling.
I couldn't test all the error throwing cases but hopefully it is all
working as expected.
2018-11-02 14:12:20 -03:00
Dalai Felinto
b5a18c1aac Multi-Objects: CURVE_OT_reveal 2018-11-02 14:12:20 -03:00
Dalai Felinto
597d0ce93c Multi-Objects: CURVE_OT_hide 2018-11-02 14:12:20 -03:00
Dalai Felinto
3e55b3c6d0 Multi-Objects: CURVE_OT_switch_direction 2018-11-02 14:12:20 -03:00
Dalai Felinto
14344de261 Multi-Objects: CURVE_OT_tilt_clear 2018-11-02 14:12:20 -03:00
Dalai Felinto
3d4fd6ce1e Multi-Objects: CURVE_OT_handle_type_set 2018-11-02 14:12:20 -03:00
Dalai Felinto
500ebf7348 Multi-Objects: CURVE_OT_normals_make_consistent 2018-11-02 12:37:56 -03:00
Dalai Felinto
4135c7786e Multi-Objects: CURVE_OT_separate
This is also a first take on trying to handle errors for partial
succeeded operators. Handling it all manually for now.

For the remaining operators I will use changed_multi to get over with
multi-objects. But we can handle their errors in a separate pass.
2018-11-02 12:16:59 -03:00
Campbell Barton
2959e4c72c Multi-Object-Mode: Edit curve draw (deselect all)
D3887 by @zazizizou
2018-11-02 08:31:36 +11:00
Campbell Barton
93b99306d8 Multi-Object-Mode: Edit curve toggle cyclic
D3882 by @zazizizou
2018-11-02 08:26:11 +11:00
Campbell Barton
bafd1b6d92 Multi-Object-Mode : Edit Curve Decimate
D3309 by @thornydre
2018-10-31 15:40:01 +11:00
Campbell Barton
1fb9fcb333 Cleanup: indentation 2018-10-31 14:43:25 +11:00
Dalai Felinto
e9980e5a75 Multi-Objects: CURVE_OT_split 2018-10-30 18:59:43 -03:00
Dalai Felinto
46bf079b7f Fix error checking on curve duplication 2018-10-30 18:59:43 -03:00
Dalai Felinto
5a156fd109 Cleanup style :|
So much for saving time by copying existing patches from phabricator.
2018-10-30 18:48:21 -03:00
Dalai Felinto
b9d5888728 Multi-Objects: CURVE_OT_duplicate 2018-10-30 18:31:27 -03:00
Dalai Felinto
993f4d4827 Multi-Objects: CURVE_OT_extrude 2018-10-30 17:53:52 -03:00
Dalai Felinto
258ad21cf2 Multi-Objects: CURVE_OT_spin 2018-10-30 17:37:45 -03:00
Dalai Felinto
d7c6013d01 Multi-Objects: CURVE_OT_dissolve_verts 2018-10-30 17:07:32 -03:00
Habib Gahbiche
df613a52e6 Multi-Objects: CURVE_OT_de_select_last
Reviewers: dfelinto
https://developer.blender.org/D3841
2018-10-30 16:22:55 -03:00
Habib Gahbiche
9d9d44dbcb Multi-Objects: CURVE_OT_de_select_first
Reviewers: dfelinto
https://developer.blender.org/D3839
2018-10-30 16:22:55 -03:00
Dalai Felinto
47afabbb42 Multi-Objects: CURVE_OT_select_nth
Based on D3407 by Daniel Griffin.
2018-10-30 16:22:55 -03:00
Campbell Barton
0973ea5132 Multi-Object EditMode: curve delete
D3859 by @zazizizou
2018-10-30 14:14:03 +11:00
Campbell Barton
95150b8414 Multi-Object EditMode: curve select next/prev
D3842 & D3843 by @zazizizou
2018-10-29 13:41:44 +11:00
Campbell Barton
45aa812fb3 Multi-Object EditMode: curve select more/less
D3844 by @zazizizou with support for select-less
2018-10-29 13:25:04 +11:00