Add brush angle shortcut

This commit is contained in:
luboslenco
2020-03-24 11:50:45 +01:00
parent ce001aa0c3
commit 2421568825
4 changed files with 22 additions and 7 deletions
@@ -13,6 +13,7 @@
"brush_radius_decrease": "[",
"brush_radius_increase": "]",
"brush_opacity": "shift+f",
"brush_angle": "alt+f",
"brush_ruler": "shift",
"file_new": "ctrl+n",
"file_open": "ctrl+o",
@@ -13,6 +13,7 @@
"brush_radius_decrease": "[",
"brush_radius_increase": "]",
"brush_opacity": "shift+f",
"brush_angle": "alt+f",
"brush_ruler": "shift",
"file_new": "ctrl+n",
"file_open": "ctrl+o",
+2 -3
View File
@@ -160,9 +160,8 @@ class UIHeader {
}
}
var brushAngleHandle = Id.handle({value: UISidebar.inst.brushAngle});
UISidebar.inst.brushAngle = ui.slider(brushAngleHandle, tr("Angle"), 0.0, 360.0, true, 1);
if (brushAngleHandle.changed) {
UISidebar.inst.brushAngle = ui.slider(UISidebar.inst.brushAngleHandle, tr("Angle"), 0.0, 360.0, true, 1);
if (UISidebar.inst.brushAngleHandle.changed) {
MaterialParser.parsePaintMaterial();
}
}
+18 -4
View File
@@ -187,6 +187,7 @@ class UISidebar {
public var brushOpacityHandle = new Handle({value: 1.0});
public var brushScale = 1.0;
public var brushAngle = 0.0;
public var brushAngleHandle = new Handle({value: 0.0});
public var brushHardness = 0.8;
public var brushLazyRadius = 0.0;
public var brushLazyStep = 0.0;
@@ -480,15 +481,24 @@ class UISidebar {
var mouse = Input.getMouse();
if (brushCanLock || brushLocked) {
if (kb.down(Config.keymap.brush_radius) && mouse.moved) {
if ((brushCanLock || brushLocked) && mouse.moved) {
if (Operator.shortcut(Config.keymap.brush_radius, ShortcutDown) ||
Operator.shortcut(Config.keymap.brush_opacity, ShortcutDown) ||
Operator.shortcut(Config.keymap.brush_angle, ShortcutDown)) {
if (brushLocked) {
if (kb.down("shift")) {
if (Operator.shortcut(Config.keymap.brush_opacity, ShortcutDown)) {
brushOpacity += mouse.movementX / 500;
brushOpacity = Math.max(0.0, Math.min(1.0, brushOpacity));
brushOpacity = Math.round(brushOpacity * 100) / 100;
brushOpacityHandle.value = brushOpacity;
}
else if(Operator.shortcut(Config.keymap.brush_angle, ShortcutDown)) {
brushAngle += mouse.movementX / 5;
brushAngle = Math.max(0.0, Math.min(360.0, brushAngle));
brushAngle = Std.int(brushAngle);
brushAngleHandle.value = brushAngle;
MaterialParser.parsePaintMaterial();
}
else {
brushRadius += mouse.movementX / 150;
brushRadius = Math.max(0.05, Math.min(4.0, brushRadius));
@@ -546,7 +556,8 @@ class UISidebar {
Context.tool == ToolBlur ||
Context.tool == ToolParticle) {
if (Operator.shortcut(Config.keymap.brush_radius) ||
Operator.shortcut(Config.keymap.brush_opacity)) {
Operator.shortcut(Config.keymap.brush_opacity) ||
Operator.shortcut(Config.keymap.brush_angle)) {
brushCanLock = true;
if (!Input.getPen().connected) mouse.lock();
lockStartedX = mouse.x;
@@ -978,11 +989,14 @@ class UISidebar {
var psizex = Std.int(256 * (brushRadius * brushNodesRadius * brushScaleX));
var psizey = Std.int(256 * (brushRadius * brushNodesRadius));
g.color = kha.Color.fromFloats(1, 1, 1, brushOpacity);
var angle = (brushAngle + brushNodesAngle) * (Math.PI / 180);
g.pushRotation(-angle, mx, my);
#if (kha_direct3d11 || kha_direct3d12)
g.drawScaledImage(decalImage, mx - psizex / 2, my - psizey / 2, psizex, psizey);
#else
g.drawScaledImage(decalImage, mx - psizex / 2, my - psizey / 2 + psizey, psizex, -psizey);
#end
g.popTransformation();
g.color = 0xffffffff;
}
else if (Context.tool == ToolBrush ||