initial diagonal work (unfinished)
This commit is contained in:
@@ -41,7 +41,16 @@ import {linspace, sideColor} from "@/misc.js";
|
||||
import {computed, watchEffect} from "vue";
|
||||
import Color from "color";
|
||||
import {cancelDrawing} from "@/charts/chart.js";
|
||||
import {devectorize, vectorAdd, vectorDiv, vectorMul, vectorSub, vectorIsNull, vectorize} from "@/vector.js";
|
||||
import {
|
||||
devectorize,
|
||||
vectorAdd,
|
||||
vectorDiv,
|
||||
vectorMul,
|
||||
vectorSub,
|
||||
vectorIsNull,
|
||||
vectorize,
|
||||
vectorIsZero
|
||||
} from "@/vector.js";
|
||||
|
||||
const os = useOrderStore()
|
||||
const co = useChartOrderStore()
|
||||
@@ -99,9 +108,8 @@ const rungs = computed({
|
||||
r = Number(r)
|
||||
const prevR = Number(props.builder.rungs)
|
||||
props.builder.rungs = r
|
||||
console.log('set rungs', prevR, r, a, b)
|
||||
// console.log('set rungs', prevR, r, a, b)
|
||||
if ( r > 0 && vectorIsNull(b) ) {
|
||||
console.log('convert to range')
|
||||
// convert single shape to a range
|
||||
if (props.mode===0) {
|
||||
const width = props.stdWidth
|
||||
@@ -126,7 +134,6 @@ const rungs = computed({
|
||||
else {
|
||||
// from multi to multi
|
||||
if (props.mode===1) {
|
||||
console.log('multi-multi mode 1')
|
||||
const width = vectorDiv(vectorSub(b, a), (prevR-1))
|
||||
b = vectorAdd(a, vectorMul(width, (r-1)))
|
||||
setEndpoints(a,b)
|
||||
@@ -222,18 +229,18 @@ function translateOnModel(shape) {
|
||||
const oldOnModel = shape.onModel
|
||||
shape.onModel = function (model, oldModel) {
|
||||
oldOnModel.call(this, ...arguments)
|
||||
// console.log('translateOnDrag', this.beingDragged(), shape.ourPoints)
|
||||
if (!this.beingDragged())
|
||||
return
|
||||
const prev = getModelValue(oldModel)
|
||||
const cur = getModelValue(this.model)
|
||||
const delta = cur - prev
|
||||
const cur = vectorize(getModelValue(this.model))
|
||||
const delta = vectorSub(cur, prev)
|
||||
// console.log('delta', shape.id, prev, cur, delta)
|
||||
let [a, b] = endpoints.value
|
||||
if (delta !== 0) {
|
||||
a = vectorize(a)
|
||||
if (!vectorIsZero(delta)) {
|
||||
a = vectorAdd(a, delta)
|
||||
if (rungs.value > 1)
|
||||
b = vectorAdd(b, delta)
|
||||
b = vectorAdd(vectorize(b), delta)
|
||||
setEndpoints(a,b)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user