more diagonal work (unfinished)

This commit is contained in:
Tim
2024-05-04 21:05:12 -04:00
parent 171d6431ae
commit 95fd55e560
8 changed files with 92 additions and 51 deletions

View File

@@ -35,7 +35,6 @@
<script setup>
import BuilderPanel from "@/components/chart/BuilderPanel.vue";
import {useOrderStore} from "@/store/store.js";
import {deleteBuilder, linearWeights, useChartOrderStore} from "@/orderbuild.js";
import {linspace, sideColor} from "@/misc.js";
import {computed, watchEffect} from "vue";
@@ -44,15 +43,14 @@ import {cancelDrawing} from "@/charts/chart.js";
import {
devectorize,
vectorAdd,
vectorDiv,
vectorMul,
vectorSub,
vectorDiv, vectorEquals,
vectorIsNull,
vectorIsZero,
vectorize,
vectorIsZero
vectorMul,
vectorSub
} from "@/vector.js";
const os = useOrderStore()
const co = useChartOrderStore()
const endpoints = defineModel('modelValue') // 2-item list of points/values
const props = defineProps({
@@ -60,7 +58,7 @@ const props = defineProps({
order: Object,
builder: Object,
buildTranches: Function,
stdWidth: Number,
stdWidth: [Number, Array],
shape: Function, // shape() -> Shape
mode: { type: Number, default: 0 }, // rung addition mode: 0 = split, 1 = extend
flip: { type: Boolean, default: false }, // if true, the skew slider is flipped upside-down
@@ -89,6 +87,7 @@ watchEffect(()=>{
function setEndpoints(a, b) {
console.log('rb setting endpoints', devectorize(a), devectorize(b))
endpoints.value = [devectorize(a), devectorize(b)]
}
@@ -234,7 +233,7 @@ function translateOnModel(shape) {
const prev = getModelValue(oldModel)
const cur = vectorize(getModelValue(this.model))
const delta = vectorSub(cur, prev)
// console.log('delta', shape.id, prev, cur, delta)
console.log('delta', shape.id, prev, cur, delta)
let [a, b] = endpoints.value
a = vectorize(a)
if (!vectorIsZero(delta)) {
@@ -254,7 +253,8 @@ function setModelColor(model) {
const shapeA = createShape(endpoints.value[0], {color: defaultColor},
function (model) {
const value = getModelValue(model);
if (value !== endpoints.value[0])
console.log('gotModelValue', model, value)
if ( !vectorEquals(value, endpoints.value[0]) )
setEndpoints(value, endpoints.value[1])
setModelColor(model)
},
@@ -266,7 +266,7 @@ if (props.mode===1)
const shapeB = createShape(endpoints.value[1], {color:defaultColor},
function (model) {
const value = getModelValue(model);
if (value !== endpoints.value[1])
if ( !vectorEquals(value, endpoints.value[1]) )
setEndpoints(endpoints.value[0], value)
setModelColor(model)
},