Commit Graph

3471 Commits

Author SHA1 Message Date
e757c4a3be Cleanup: use colon separator after parameter
Helps separate variable names from descriptive text.
Was already used in some parts of the code,
double space and dashes were used elsewhere.
2018-12-12 12:50:58 +11:00
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
0d4ec8a7a9 Fix T58905: Knife project redo fails 2018-12-07 13:33:58 +11:00
341d5b08b0 Fix adding objects in local view 2018-12-07 13:01:26 +11:00
aeffaf75ab Fix knife project, add to mesh menu 2018-12-06 16:52:49 +11:00
81c2fd25e5 Fix T58528: Assign material skips non-active 2018-12-03 15:53:31 +11:00
c44a203aa7 Texture Paint: fix fast selection update to also work without modifiers.
If there are no (non-deform) modifiers, the evaluated mesh simply
shares arrays with the base COW copy instead of having CD_ORIGINDEX.
2018-12-02 20:05:53 +03:00
9ed522db73 Fix more cases of evaluated mesh being built for non-COW objects. 2018-12-01 19:09:09 +03:00
02a4fc1395 Texture Paint: implement efficient face selection updates.
Fix the old code that propagates selection changes to the
evaluated mesh directly without rebuilding, and avoid tagging
DEG_TAG_COPY_ON_WRITE if it succeeds.
2018-12-01 15:40:48 +03:00
ee8a2edb96 Fix usage of mesh_get_eval_final in vertex selection.
It's a very bad idea to call this on non-COW instances - see T58150.
Also, when rebuilding mesh it's better to accumulate mask flags to
avoid possible repeated rebuilds from different users.
2018-12-01 14:46:55 +03:00
2699ababa9 Cleanup: style 2018-12-01 19:55:52 +11:00
aa2079bad3 Fix crash accessing mesh.point_normals default
This memory needs to be static,
in this case the argument isn't needed so remove it.
2018-11-26 16:28:00 +11: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
1cc7bcd8d8 Add missing COW updates when selection changes in paint modes. 2018-11-23 18:37:28 +03:00
783b0809b6 Fix T57578: Vertex Connect crash with less than two verts selected 2018-11-22 13:28:53 +01:00
79ef6f30f0 UI: Use primary gizmo color for loopcut edge pre-select.
Instead of hardcoded pink.
2018-11-21 19:14:56 +01:00
d3a75c48fd Cleanup: move extrude gizmo to transform module
Since this is no longer mesh only, move out of mesh,
rename next.
2018-11-21 09:20:19 +11:00
34b9bd3a9b Gizmo: initial extrude support for non mesh types 2018-11-21 09:09:34 +11:00
c17cc4c0d8 Fix extrude tool redo
Redo operator properties weren't being set.
2018-11-21 08:20:22 +11:00
140d383393 Fix T57935: Crash Alt clicking w/ poly build tool 2018-11-21 05:25:52 +11:00
49cd13768f UI: 'Add Object' rename dimensions
D3943 by @Zachman w/ edits
2018-11-15 17:44:50 +11:00
55e719ec35 Merge branch 'master' into blender2.8 2018-11-14 17:21:34 +11:00
d7f55c4ff5 Cleanup: comment block tabs 2018-11-14 17:10:56 +11:00
ae6e84471a Merge branch 'master' into blender2.8 2018-11-14 09:54:55 +11:00
c1d29ea783 WM: enforce descriptions being NULL or defined
Without this bugs slip through that don't null check the descriptions
since many were set to empty strings.
2018-11-14 09:47:23 +11:00
0feeea1bd5 BMesh: avoid incorrect/invalid matrix calculation
- `BKE_object_scale_to_mat3` was used to get the worldspace scale,
  without taking constraints, parenting etc into account.
- Don't pass object's into BMesh API, (prefer matrices instead).
- Avoid matrix invert for each edge-angle calculation.
- Avoid 2x matrix multiplies when looping over edge pairs.
2018-11-10 18:55:03 +11:00
0c1934f3c2 Multi-Objects: MESH_OT_select_similar worldspace completion
This makes the operator to work 100% with worldspace similarity:
* SIMFACE_PERIMETER
* SIMFACE_AREA
* SIMEDGE_FACE_ANGLE

Note from revisor (Dalai Felinto):

I'm not sure we want to pass Object * to the bmesh api, though I
personally don't see why not. Either way I group the patches together so
we can more easily roll them back if needs be.

Maniphest Tasks: T56948
Differential Revision: D3908, D3899, D3896
2018-11-09 17:19:04 -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
4b2110fc86 Cleanup: Remove 'BKE_library.h' include from 'BKE_main.h'
That kind of implicit includes should really only be done when totally,
absolutely necessary, and ideally only with rather simple 'second-level'
headers.

Otherwise not being explicit with includes always end up biting in
unexpected ways...
2018-11-07 20:58:53 +01:00
e31625a697 Fix 'Set and Use 3D Cursor' normal editing command.
Was missing a return of OPERATOR_RUNNING_MODAL for that subcommand.
2018-11-07 07:43:19 -05: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
d3c815bd08 BLI_heap: add an API function to directly read the top node value.
It is very commonly needed in loop conditions to check if
the items in the heap are good enough to continue.
2018-11-04 13:29:17 +03:00
c07d486dcd Fix gizmo extrude adjust & normal axis w/o faces
- Extruding edges/vertices on normals gave bad/strange results.
- The adjust gizmo used the orientation axis instead of the
  last-orientation (which could get out of sync).
2018-11-01 07:56:44 +11:00
a41f85d324 Fix error w/ poly-build clearing the edit-object 2018-10-24 16:26:33 +11:00
901ccfab52 Fix T57366: Mesh.from_pydata invalid loose-edge state 2018-10-24 11:37:44 +11:00
bb3d999571 Fix T57190: loopcut crash w/o overlays 2018-10-23 15:16:49 +11:00
0f4064c66f Fix T57028: Connect Vertex not working with more than 2 selected
vertices

rB944054fbb61e introduced a sanity check which is not needed and
prevents the operator to run successfully with more than 2 selected
vertices

Reviewed By: dfelinto

Differential Revision: https://developer.blender.org/D3763
2018-10-22 14:09:43 +02:00
30b1e37e94 Fix T57295: Edit-mesh modes got out of sync 2018-10-19 15:48:39 +11:00
9b5183769b Cleanup: compiler warnings 2018-10-19 14:51:55 +11:00
40f679ccb9 Cleanup: move gizmo sort functions into an API 2018-10-18 11:50:22 +11:00
3f3eae675a Cleanup: naming
'mp' was a reference to 'manipulator'
2018-10-16 22:09:27 +11:00
86635402d5 Mesh: remove derivedFinal from various places 2018-10-12 19:29:40 +11:00
66738d4aa0 Merge branch 'master' into blender2.8 2018-10-11 09:08:30 +11:00
f36f029321 Cleanup: style 2018-10-05 15:01:58 +10:00
0b98a679bb UI: rename Border Select -> Box Select
See: T56648
2018-10-05 10:29:31 +10:00