Commit Graph

835 Commits

Author SHA1 Message Date
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
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
49cd13768f UI: 'Add Object' rename dimensions
D3943 by @Zachman w/ edits
2018-11-15 17:44:50 +11:00
184ab749c3 Merge branch 'master' into blender2.8 2018-11-13 14:25:36 +11:00
fe566a30f3 Cleanup: use lowercase 2d/3d in function names 2018-11-13 14:21:42 +11:00
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
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
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
188857e0f2 Cleanup: style 2018-11-07 12:57:24 +11:00
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
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
d805a4a5ef Cleanup: move fast heap into own source & header 2018-11-06 12:52:34 +11:00
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
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
2959e4c72c Multi-Object-Mode: Edit curve draw (deselect all)
D3887 by @zazizizou
2018-11-02 08:31:36 +11:00
93b99306d8 Multi-Object-Mode: Edit curve toggle cyclic
D3882 by @zazizizou
2018-11-02 08:26:11 +11:00
bafd1b6d92 Multi-Object-Mode : Edit Curve Decimate
D3309 by @thornydre
2018-10-31 15:40:01 +11:00
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
df613a52e6 Multi-Objects: CURVE_OT_de_select_last
Reviewers: dfelinto
https://developer.blender.org/D3841
2018-10-30 16:22:55 -03:00
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
0973ea5132 Multi-Object EditMode: curve delete
D3859 by @zazizizou
2018-10-30 14:14:03 +11:00
95150b8414 Multi-Object EditMode: curve select next/prev
D3842 & D3843 by @zazizizou
2018-10-29 13:41:44 +11:00
45aa812fb3 Multi-Object EditMode: curve select more/less
D3844 by @zazizizou with support for select-less
2018-10-29 13:25:04 +11:00
Dalai Felinto
6479e800bc Multi-Objects: Curve - select pick, linked and short path
I'm following mesh editing to decide when to switch active object, or
deselect the other objects. I hope we can keep this all consistent in
the end.
2018-10-26 20:01:19 -03:00
c06333d77b Object Join: use 'selected_editable_objects'
Was using 'selected_editable_bases', which used to save a lookup.
This is no longer the case and complicates access from Python
which cant yet easily access Bases.
2018-10-01 16:45:57 +10:00
3a09ff77a1 Fix T56879: Blender2.8 Crash when Editing Text on Curve.
Moving cursor in 3D text edit mode calls `BKE_vfont_to_curve_ex()`,
which expects to work with evaluated data (curve cache runtime etc.).
2018-09-30 21:37:32 +02:00
58adc58661 Merge branch 'master' into blender2.8 2018-09-27 15:49:59 +02:00
a247b53084 Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3732
2018-09-27 15:36:35 +02:00
311db0e9f0 Edit Curves: Fix warnings due to recent changes 2018-09-25 23:04:41 +02:00
2cff9b4cb6 Curves: Move draw options to overlays
This commit add one regression: it is impossible to currently hide handles
in the viewport. But this should be fixed in another commit.
2018-09-25 22:51:54 +02:00
Roel Koster
3816592fc6 Fix broken shift + A menu in curve edit mode.
Differential Revision: https://developer.blender.org/D3699
2018-09-25 14:55:26 +02:00
1278890611 Put the Radius property of Curve points under shape key control.
Since shape keys are stored as raw floating point data, this
unfortunately requires changes to all code that works with it.

An additional complication is that bezier and nurbs control
points have different entry size, and can be mixed in the same
object (and hence shape key buffer).

Shape key entries are changed from:

  bezier: float v1[3], v2[3], v3[3], tilt, pad, pad;
  nurbs:  float vec[3], tilt;

To:

  bezier: float v1[3], v2[3], v3[3], tilt, radius, pad;
  nurbs:  float vec[3], tilt, radius, pad;

The official shape key element size is changed to 3 floats,
with 4 elements for  bezier nodes, and 2 for nurbs. This also
means that the element count is not equal to the vertex count
anymore.

While searching for all curve Shape Key code, I also found that
BKE_curve_transform_ex and BKE_curve_translate were broken. This
can be seen by trying to change the Origin of a Curve with keys.

Reviewers: campbellbarton, sergey

Differential Revision: https://developer.blender.org/D3676
2018-09-20 11:52:42 +03:00