basic curve editing through moving control points
This commit is contained in:
parent
3dee1bae17
commit
175eb7e484
21
src/main.js
21
src/main.js
|
|
@ -440,6 +440,7 @@ function stage() {
|
||||||
case "select":
|
case "select":
|
||||||
let curve = selectCurve(context, mouse)
|
let curve = selectCurve(context, mouse)
|
||||||
if (curve) {
|
if (curve) {
|
||||||
|
context.dragging = true
|
||||||
console.log("gonna move this")
|
console.log("gonna move this")
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -451,6 +452,7 @@ function stage() {
|
||||||
})
|
})
|
||||||
stage.addEventListener("mouseup", (e) => {
|
stage.addEventListener("mouseup", (e) => {
|
||||||
context.mouseDown = false
|
context.mouseDown = false
|
||||||
|
context.dragging = false
|
||||||
let mouse = getMousePos(stage, e)
|
let mouse = getMousePos(stage, e)
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "draw":
|
case "draw":
|
||||||
|
|
@ -470,9 +472,9 @@ function stage() {
|
||||||
})
|
})
|
||||||
stage.addEventListener("mousemove", (e) => {
|
stage.addEventListener("mousemove", (e) => {
|
||||||
let mouse = getMousePos(stage, e)
|
let mouse = getMousePos(stage, e)
|
||||||
context.activeCurve = undefined
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case "draw":
|
case "draw":
|
||||||
|
context.activeCurve = undefined
|
||||||
if (context.activeShape) {
|
if (context.activeShape) {
|
||||||
if (vectorDist(mouse, context.lastMouse) > minSegmentSize) {
|
if (vectorDist(mouse, context.lastMouse) > minSegmentSize) {
|
||||||
context.activeShape.addLine(mouse.x, mouse.y)
|
context.activeShape.addLine(mouse.x, mouse.y)
|
||||||
|
|
@ -481,6 +483,7 @@ function stage() {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "rectangle":
|
case "rectangle":
|
||||||
|
context.activeCurve = undefined
|
||||||
if (context.activeShape) {
|
if (context.activeShape) {
|
||||||
context.activeShape.clear()
|
context.activeShape.clear()
|
||||||
context.activeShape.addLine(mouse.x, context.activeShape.starty)
|
context.activeShape.addLine(mouse.x, context.activeShape.starty)
|
||||||
|
|
@ -491,7 +494,19 @@ function stage() {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "select":
|
case "select":
|
||||||
context.activeCurve = selectCurve(context, mouse)
|
if (context.dragging) {
|
||||||
|
let dist = vectorDist(mouse, context.activeCurve.points[1])
|
||||||
|
let cpoint = context.activeCurve.points[1]
|
||||||
|
if (vectorDist(mouse, context.activeCurve.points[2]) < dist) {
|
||||||
|
cpoint = context.activeCurve.points[2]
|
||||||
|
}
|
||||||
|
cpoint.x += (mouse.x - context.lastMouse.x)
|
||||||
|
cpoint.y += (mouse.y - context.lastMouse.y)
|
||||||
|
|
||||||
|
} else {
|
||||||
|
context.activeCurve = selectCurve(context, mouse)
|
||||||
|
}
|
||||||
|
context.lastMouse = mouse
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
@ -616,9 +631,7 @@ function infopanel() {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "enum":
|
case "enum":
|
||||||
console.log(e)
|
|
||||||
if (prop.options.indexOf(e.target.value) >= 0) {
|
if (prop.options.indexOf(e.target.value) >= 0) {
|
||||||
console.log(setProperty)
|
|
||||||
setProperty(context, property, e.target.value)
|
setProperty(context, property, e.target.value)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue