Initial Tool System
AbandonedPublic

Authored by Campbell Barton (campbellbarton) on Oct 15 2017, 2:31 PM.

Details

Reviewers
None
Maniphest Tasks
T53047: Tool System Proposal
Summary

This is an initial tool-system proposed here: T53047

The patch could be considered a proof of concept, depends on exact design we go with.

Usage

  • The 3D views toolbar has a new panel to show the active tool.
  • Clicking on a tool makes it "active".
  • Tools use the action-mouse or action-tweak-event (by convention only, other keys can be used - it might make sense for some tools)

    This means once you have an active tool set, you can still select and manipulate the view.
  • Some tools such as border select or lasso use tweak-events, this means clicking can still be used to place the 3D cursor.
  • For selection tools, Ctrl needs to be held to de-select.

Limits

  • Currently only one active tool, switching modes may leave you with no active tool.
  • While the tool-buttons work, they look strange/clumsy, we may need new button types, we will want tools to list all their keys too (longer term goal).
  • Modal operators circle and border select were not intended to be accessed directly in a single step.

This diff remains quite small because changes to operators have been committed up-stream:

Diff Detail

Repository
rB Blender
Branch
TEMP-TOOLSYSTEM
Build Status
Buildable 916
Build 916: arc lint + arc unit

Position operator properties next to operator

Campbell Barton (campbellbarton) retitled this revision from Primitive tool system to Initial Tool System.Oct 15 2017, 3:22 PM
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)

Applied changes for border and circle select to be used as tools to master,
updated this patch to use those changes.

  • PATCH
  • Merge branch '28' into TEMP-TOOLSYSTEM
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)
  • Resolve conflicts with recent changes to workspaces.
  • Add rip as tools, also support recursive property setting
Campbell Barton (campbellbarton) edited the summary of this revision. (Show Details)
  • Support manipulators as tools
  • Move tool definitions into own file.

I gave it a short try today. It's definitively interesting, nice work. Questions:

  1. Is there already a way to go back to have no active tool?
  2. Lamp Place:

You are using this to enable the widget instead of directly mapping RMB to lamp placement. I then wonder if we shouldn't we see the widget of all the select lamps, not only the active one.

  1. Transformation widget:

It looks like there is some redundancy with the transformation widgets and the transformation tools. Do we really want to be able to directly transform without the widgets? (short of using shortcuts)

I gave it a short try today. It's definitively interesting, nice work. Questions:

  1. Is there already a way to go back to have no active tool?

The "Cursor" tool is this.

  1. Lamp Place: You are using this to enable the widget instead of directly mapping RMB to lamp placement. I then wonder if we shouldn't we see the widget of all the select lamps, not only the active one.

This was work in progress, agree, lamp place can have it's own tool.

  1. Transformation widget: It looks like there is some redundancy with the transformation widgets and the transformation tools. Do we really want to be able to directly transform without the widgets? (short of using shortcuts)

Agree this is redundant, these can be removed except for scale-cage.


Closing this revision since its now in 2.8