|
@@ -95,7 +95,7 @@ export const useTransformer = installGlobalVar(() => {
|
|
|
});
|
|
|
|
|
|
const cleanups: (() => void)[] = [];
|
|
|
- const getData = useGetComponentData()
|
|
|
+ const getData = useGetComponentData();
|
|
|
const viewer = useViewer();
|
|
|
getSvgContent("./icons/m_rotate.svg").then((svgContent) => {
|
|
|
const svg = parseSvgContent(svgContent);
|
|
@@ -117,23 +117,23 @@ export const useTransformer = installGlobalVar(() => {
|
|
|
rotateRect.opacity(0);
|
|
|
rotateRect.parent!.add(group);
|
|
|
const update = async () => {
|
|
|
- await nextTick()
|
|
|
+ await nextTick();
|
|
|
setShapeTransform(group, rotateRect.getTransform());
|
|
|
group.x(group.x() + 8);
|
|
|
group.y(group.y() + 8);
|
|
|
group.visible(rotateRect.visible());
|
|
|
};
|
|
|
- viewer.viewer.bus.on("transformChange", update)
|
|
|
+ viewer.viewer.bus.on("transformChange", update);
|
|
|
|
|
|
const stopShapeJoin = watch(
|
|
|
() => transformer.queueShapes.value[0],
|
|
|
(shape, _b, onCleanup) => {
|
|
|
if (shape) {
|
|
|
- const data = getData(computed(() => shape))
|
|
|
+ const data = getData(computed(() => shape));
|
|
|
update();
|
|
|
shape.on("bound-change", update);
|
|
|
onCleanup(() => shape.off("bound-change", update));
|
|
|
- onCleanup(watch(data, update))
|
|
|
+ onCleanup(watch(data, update));
|
|
|
}
|
|
|
},
|
|
|
{ immediate: true }
|
|
@@ -291,7 +291,6 @@ export const useShapeDrag = (shape: Ref<DC<EntityShape> | undefined>) => {
|
|
|
});
|
|
|
|
|
|
shape.on("pointerdown.mouse-drag", (ev) => {
|
|
|
- console.error('down')
|
|
|
if (ev.evt.button !== 0) return;
|
|
|
enter(conversion(getOffset(ev.evt)));
|
|
|
});
|
|
@@ -304,7 +303,6 @@ export const useShapeDrag = (shape: Ref<DC<EntityShape> | undefined>) => {
|
|
|
},
|
|
|
listener(document.documentElement, "pointerup", (ev) => {
|
|
|
if (ev.button !== 0) return;
|
|
|
- console.error('up')
|
|
|
start && leave();
|
|
|
}),
|
|
|
]);
|
|
@@ -348,6 +346,7 @@ export const useShapeTransformer = <T extends EntityShape>(
|
|
|
const can = useCan();
|
|
|
|
|
|
const init = ($shape: T) => {
|
|
|
+ let isRun = false;
|
|
|
let rep: Rep<T>;
|
|
|
if (replaceShape) {
|
|
|
rep = replaceShape($shape);
|
|
@@ -360,12 +359,13 @@ export const useShapeTransformer = <T extends EntityShape>(
|
|
|
}
|
|
|
|
|
|
let selfFire = false;
|
|
|
- const set = frameEebounce((appleTransform: Transform | undefined) => {
|
|
|
+ const set = (appleTransform: Transform | undefined) => {
|
|
|
transform.value = appleTransform;
|
|
|
selfFire = true;
|
|
|
$shape.fire("bound-change");
|
|
|
selfFire = false;
|
|
|
- });
|
|
|
+ };
|
|
|
+
|
|
|
const updateTransform = () => {
|
|
|
if (!can.dragMode) return;
|
|
|
let appleTransform = rep.tempShape.getTransform().copy();
|
|
@@ -398,6 +398,7 @@ export const useShapeTransformer = <T extends EntityShape>(
|
|
|
(translate, oldTranslate) => {
|
|
|
if (translate) {
|
|
|
if (!oldTranslate) {
|
|
|
+ isRun = true;
|
|
|
rep.init && rep.init();
|
|
|
rep.update && rep.update();
|
|
|
}
|
|
@@ -412,6 +413,7 @@ export const useShapeTransformer = <T extends EntityShape>(
|
|
|
} else {
|
|
|
prevMoveTf = null;
|
|
|
transform.value = void 0;
|
|
|
+ isRun = false;
|
|
|
}
|
|
|
},
|
|
|
{ immediate: true }
|
|
@@ -441,6 +443,7 @@ export const useShapeTransformer = <T extends EntityShape>(
|
|
|
|
|
|
let isEnter = false;
|
|
|
const downHandler = () => {
|
|
|
+ isRun = true;
|
|
|
if (isEnter) {
|
|
|
mode.pop();
|
|
|
}
|
|
@@ -457,6 +460,7 @@ export const useShapeTransformer = <T extends EntityShape>(
|
|
|
document.documentElement,
|
|
|
"pointerup",
|
|
|
() => {
|
|
|
+ isRun = false;
|
|
|
if (isEnter) {
|
|
|
mode.pop();
|
|
|
transform.value = void 0;
|
|
@@ -626,7 +630,7 @@ export const useCustomTransformer = <T extends BaseItem, S extends EntityShape>(
|
|
|
return {
|
|
|
tempShape: repResult.shape,
|
|
|
update: () => {
|
|
|
- repResult.update && repResult.update(data.value, repResult.shape);
|
|
|
+ repResult.update && repResult.update(data.value, repResult.shape);
|
|
|
},
|
|
|
init: () => {
|
|
|
repResult.init && repResult.init(data.value, repResult.shape);
|
|
@@ -688,7 +692,7 @@ export const useLineTransformer = <T extends LineTransformerData>(
|
|
|
let inverAttitude: Transform;
|
|
|
let stableVs = data.value.points;
|
|
|
let tempVs = data.value.points;
|
|
|
- const transformer = useTransformer()
|
|
|
+ const transformer = useTransformer();
|
|
|
|
|
|
useCustomTransformer(shape, data, {
|
|
|
openSnap: true,
|
|
@@ -730,7 +734,7 @@ export const useLineTransformer = <T extends LineTransformerData>(
|
|
|
repShape.points(flatPositions(initVs));
|
|
|
repShape.closed(true);
|
|
|
inverAttitude = inverMat;
|
|
|
- transformer.forceUpdate()
|
|
|
+ transformer.forceUpdate();
|
|
|
};
|
|
|
update(data.value);
|
|
|
|