Commit Graph

55 Commits

Author SHA1 Message Date
2743d746ea Cleanup: use an array for wmEvent cursor position variables
Use arrays for wmEvent coordinates, this quiets warnings with GCC11.

- `x, y` -> `xy`.
- `prevx, prevy` -> `prev_xy`.
- `prevclickx, prevclicky` -> `prev_click_xy`.

There is still some cleanup such as using `copy_v2_v2_int()`,
this can be done separately.

Reviewed By: campbellbarton, Severin

Ref D12901
2021-10-21 00:00:01 +11:00
c9d9bfa84a Keymap: preference for fallback-tool with RMB select
Expose a key-map preference "Fallback Tool (RMB)",
disabled by default.

The right mouse button uses the fallback tool
(currently visible selection tool in the toolbar),
instead of always tweaking.

When any selection tool is active, right mouse always tweaks.

To enable fallback selection on RMB, set the "Right Mouse Select Action"
to "Selection Tool".

Internal changes:

- Add fall-back key-maps, separate key-maps needed for when the tool is
  run as a fall-back. This is needed so RMB-select can support fall-back
  tools, so left-mouse can be used when it's the active tool and RMB
  can be used as a fall-back action when another tool is active.
- Add options field to tools so tools without gizmos can enable the
  full-back tool keymap.
- Support multiple key-maps for keymap handlers.
- Fall-back keymaps now co-exist with the tool-keymaps.
  So both keymaps may be active at once - using different mouse buttons.
  When gizmos are in use, a highlighted gizmo prioritizes the
  tool-keymap over the fall-back keymap.

Resolves T83690.

Reviewed By: JulienKaspar

Ref D12493
2021-09-21 18:14:11 +10:00
84f048fda5 Cleanup: use C style comments for descriptive text 2021-08-26 12:36:58 +10:00
d6e97a53ab Correct task ID in 00b57136e4 2021-08-03 18:13:06 +10:00
00b57136e4 Revert "Fix spin-gizmo not allowing click events to select vertices"
This reverts commit 0b903755a9.

This caused T86030, left-mouse selection override clicking,
which is used for creating a full revolution.
2021-08-03 16:34:26 +10:00
0b903755a9 Fix spin-gizmo not allowing click events to select vertices 2021-04-19 17:18:52 +10:00
d138cbfb47 Code Quality: Replace for loops with LISTBASE_FOREACH
Note this only changes cases where the variable was declared inside
the for loop. To handle it outside as well is a different challenge.

Differential Revision: https://developer.blender.org/D7320
2020-04-03 19:27:46 +02:00
b0c1184875 Cleanup: Including "BLI_listbase.h" for LISTBASE_FOREACH macro
These headers are not needed right away, but will be in the upcoming
commit.
2020-04-03 19:27:42 +02:00
2d1cce8331 Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
b2ee1770d4 Cleanup: Rename ARegion variables from ar to region
The old convention was easy to confuse with ScrArea.
Part of https://developer.blender.org/T74432.

This is mostly a batch rename with some manual fixing. Only single word
variable names are changed, no prefixed/suffixed names.

Brecht van Lommel and Campbell Barton both gave me a green light for
this convention change.

Also ran clan clang format on affected files.
2020-03-06 17:19:23 +01:00
3d015c71cc Gizmo: show extrude gizmos with dark '+' instead of negative space 2019-11-22 17:23:24 +11:00
93e8c962fc Cleanup: unused structs, struct members 2019-10-03 07:39:45 +10:00
82e719ff87 Fix T64998: Multi window spin tool crash
There could be a more direct way to initialize a gizmo in a view,
for now this resolves the crash.
2019-08-16 22:21:44 +10:00
b6a0027de3 Gizmo: add event argument to invoke_prepare callback 2019-05-27 23:59:36 +10:00
c7f67d60fb Cleanup: comments (long lines) in editors 2019-04-29 19:29:41 +10:00
e12c08e8d1 ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.

For details on usage and instructions for migrating branches
without conflicts, see:

https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17 06:21:24 +02:00
14884cda1f 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
2019-04-13 20:58:25 +02:00
69665bc7f0 RNA: move cursor into own struct
Without this it's impractical to subscribe to any change to the cursor.

Fixes T61969 by having gizmos update on any change to the cursor.
2019-03-01 12:41:40 +11:00
de13d0a80c doxygen: add newline after \file
While \file doesn't need an argument, it can't have another doxy
command after it.
2019-02-18 08:22:12 +11:00
46ac288a93 Cleanup: rename V3D_MANIP_* -> V3D_ORIENT_*
Wasn't obvious it's related to orientation,
also term manipulator is no longer in use.
2019-02-08 15:22:15 +11:00
eef4077f18 Cleanup: remove redundant doxygen \file argument
Move \ingroup onto same line to be more compact and
make it clear the file is in the group.
2019-02-06 15:45:22 +11:00
65ec7ec524 Cleanup: remove redundant, invalid info from headers
BF-admins agree to remove header information that isn't useful,
to reduce noise.

- BEGIN/END license blocks

  Developers should add non license comments as separate comment blocks.
  No need for separator text.

- Contributors

  This is often invalid, outdated or misleading
  especially when splitting files.

  It's more useful to git-blame to find out who has developed the code.

See P901 for script to perform these edits.
2019-02-02 01:36:28 +11:00
6dfe6b4f19 Fix T58199: Spin tool top bar settings don't apply 2019-01-23 16:15:01 +11:00
b4a77a351e Cleanup: add trailing commas to structs 2019-01-07 09:15:07 +11:00
f7dc6a63fb Gizmo: optional custom orientations for transform
This aims to resolve a conflict where some users want to keep keyboard
axis setting global, even when the orientation is set to something else.

Move/rotate/scale can optionally each have a separate orientation.

Some UI changes will be made next.
2018-12-19 20:57:51 +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
4c22807e69 Cleanup: style 2018-10-03 08:10:48 +10:00
c14949e9ed Gizmo: move spin tool axis option into gizmo-group
Having this setting here wasn't correct (the operator ignores it).
2018-10-02 17:09:53 +10:00
dce12293d0 WM: generalize tool property initialization
Prepare for storing different kinds of properties in tools.
2018-10-02 15:39:20 +10:00
58adc58661 Merge branch 'master' into blender2.8 2018-09-27 15:49:59 +02:00
d1bac6f70d Spin Tool: match dial orientation to active gizmo 2018-09-26 16:31:31 +10:00
f5c4cc877e Spin Tool: option (disabled) for gizmos to follow selection
Disable since this causes multiple axis to overlap too often.
It's also glitchy since we don't have a good way to detect
changes to selection.
2018-09-26 14:36:23 +10:00
bd79ea03cb Correct error in last commit
Didn't account for non-identity orientation.
2018-09-26 13:30:15 +10:00
12cfa13470 Spin Tool: correct the initial redo dial rotation 2018-09-26 13:08:02 +10:00
518451757e Gizmo: dial support for a click setting a value
Useful for click w/o drag to spin a full revolution.
2018-09-25 15:15:38 +10:00
ebdeb3eca0 Gizmo: support spin tool normal flipping
Use the 2x spin tool has 2x handles to control normal direction,
dragging either handle backwards now reverses normals.

Previously it was common for the spin result to have normals
flipped the wrong way.
2018-09-25 14:24:19 +10:00
3d860f53e8 Gizmo: hide redo gizmo when spin tool not active
Selecting a another tool left the gizmo,
which could overlap other tools gizmos.
2018-09-24 17:13:16 +10:00
6db79dafb3 Gizmo: show partial arc & icons for spin tool 2018-09-24 17:06:55 +10:00
c3d46694e2 Gizmo: add spin-tool rotate on view axis
This also acts to catch stray click events so missing a gizmo
doesn't move the cursor or execute another spin action.
2018-09-24 10:13:39 +10:00
7a3474ddfd Gizmo: spin tool XYZ axis toggles
New handle type for initial spin,
gives clear differentiation between do & redo (similar to extrude).

Some tweaks still required to match T56571.
2018-09-21 13:48:22 +10:00
3266ebf9e5 Gizmo: enable spin tool redo gizmos again
- Add x,y rotate and translate controls.
- Remove x-depth adjustment.
2018-09-21 13:34:29 +10:00
9dac8633d6 Merge branch 'master' into blender2.8 2018-09-20 12:51:16 +10:00
ce56088bcd Gizmo: use ED_view3d_win_to_3d_on_plane 2018-09-20 11:38:11 +10:00
2c30922e2c Fix spin/rotate gizmo not updating view orientation
Check for navigation didn't refresh when navigation was completed.
2018-09-20 10:19:59 +10:00
574484006b EditMesh: show the spin arc as a thin ribbon
Closer to the design from T54661
2018-09-19 17:52:13 +10:00
6c7ad56f00 EditMesh: orient spin arc to follow the cursor 2018-09-19 16:41:56 +10:00
88cd23914f Gizmo: dial3d option to show the final angle
Was showing modal-delta-angle, which isn't useful for the spin tool.
2018-09-19 13:35:15 +10:00
d421adb83e Gizmo: de-duplicate poll logic
Checking the active tool or operator was a common way to check
if the gizmo was still in use.
2018-09-18 16:15:06 +10:00
0a3b66cfb5 Gizmo: dial3d option to get angles w/o wrapping
Needed for spinning multiple revolutions.
2018-09-18 14:58:20 +10:00
add961c209 Correct view orientation update in last commit 2018-09-18 14:04:55 +10:00