Rotate brush tip with canvas

Userstory

As a user I want my brush tip to rotate with the canvas so I can keep the rotation the same even when rotating the canvas.

Current behavior

Wanted behavior

Technical requirements

  • Add a new option to the brush preferences at rotation to rotate with or against the canvas
  • Upon checking the brush tip stays how it was defined at the brush tip option

How it could be used

For example

  • in calligraphy you want the brushtip to stay in the same angle
  • when drawing city skylines, when all brushstrokes should be vertical

Where does this request come from

There was a question that was never converted to a feature request and I want that feature so here we are.

I always wonder how Clip Studio Paint manage the rotate brushes, if this is something that other programs like Photoshop or Procreate already have it.

The way this should probably be solved is with having canvas rotation as an input for brushes. Making the brush rotation lock with the canvas rotation would then just be a matter of enabling that input and leaving it as a default linear curve.

While at it, we could also add the zoom level as an input, since that lets you make zoom-independent brushes the same way. The MyPaint engine already has an input for this under the hood, but I think it’s not hooked up to anything in Krita.

I venture a look at the api.

so view. rotation() β†’ i think is the way to get the canvas rotation

seBrushRotation(rotation) β†’ to set the brush rotation

Whats left now is something like to capture when the canvas rotate.

I wonder if its possible to make proof of concept script.

Edit: this is like a very rough code that i tested to see if input from rotation function can be fed to the brush rotation function;

view = Krita.instance().activeWindow().activeView()

view.setBrushRotation(view.canvas().rotation())

would this be a per brush or a global setting?