fix(editor): correct object precision and dataset method binding
This commit is contained in:
parent
e62f2b54d5
commit
27b4b720ed
@ -121,15 +121,15 @@ const updateUI = Utils.throttle(function(object) {
|
|||||||
objectData.type = object.type;
|
objectData.type = object.type;
|
||||||
objectData.uuid = object.uuid;
|
objectData.uuid = object.uuid;
|
||||||
objectData.name = object.name;
|
objectData.name = object.name;
|
||||||
objectData.position.x = Number(object.position.x.toFixed(3));
|
objectData.position.x = Number(object.position.x.toFixed(6));
|
||||||
objectData.position.y = Number(object.position.y.toFixed(3));
|
objectData.position.y = Number(object.position.y.toFixed(6));
|
||||||
objectData.position.z = Number(object.position.z.toFixed(3));
|
objectData.position.z = Number(object.position.z.toFixed(6));
|
||||||
objectData.rotation.x = Number((object.rotation.x * THREE.MathUtils.RAD2DEG).toFixed(3));
|
objectData.rotation.x = Number((object.rotation.x * THREE.MathUtils.RAD2DEG).toFixed(6));
|
||||||
objectData.rotation.y = Number((object.rotation.y * THREE.MathUtils.RAD2DEG).toFixed(3));
|
objectData.rotation.y = Number((object.rotation.y * THREE.MathUtils.RAD2DEG).toFixed(6));
|
||||||
objectData.rotation.z = Number((object.rotation.z * THREE.MathUtils.RAD2DEG).toFixed(3));
|
objectData.rotation.z = Number((object.rotation.z * THREE.MathUtils.RAD2DEG).toFixed(6));
|
||||||
objectData.scale.x = Number(object.scale.x.toFixed(3));
|
objectData.scale.x = Number(object.scale.x.toFixed(6));
|
||||||
objectData.scale.y = Number(object.scale.y.toFixed(3));
|
objectData.scale.y = Number(object.scale.y.toFixed(6));
|
||||||
objectData.scale.z = Number(object.scale.z.toFixed(3));
|
objectData.scale.z = Number(object.scale.z.toFixed(6));
|
||||||
|
|
||||||
if (object.fov !== undefined) {
|
if (object.fov !== undefined) {
|
||||||
objectData.fov = object.fov;
|
objectData.fov = object.fov;
|
||||||
@ -225,19 +225,19 @@ const update = (method: string) => {
|
|||||||
},
|
},
|
||||||
position: () => {
|
position: () => {
|
||||||
const newPosition = new THREE.Vector3(objectData.position.x, objectData.position.y, objectData.position.z);
|
const newPosition = new THREE.Vector3(objectData.position.x, objectData.position.y, objectData.position.z);
|
||||||
if (object.position.distanceTo(newPosition) >= 0.01) {
|
if (object.position.distanceTo(newPosition) >= 0.0001) {
|
||||||
App.execute(new SetPositionCommand(object, newPosition));
|
App.execute(new SetPositionCommand(object, newPosition));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
rotation: () => {
|
rotation: () => {
|
||||||
const newRotation = new THREE.Euler(objectData.rotation.x * THREE.MathUtils.DEG2RAD, objectData.rotation.y * THREE.MathUtils.DEG2RAD, objectData.rotation.z * THREE.MathUtils.DEG2RAD);
|
const newRotation = new THREE.Euler(objectData.rotation.x * THREE.MathUtils.DEG2RAD, objectData.rotation.y * THREE.MathUtils.DEG2RAD, objectData.rotation.z * THREE.MathUtils.DEG2RAD);
|
||||||
if (new THREE.Vector3().setFromEuler(object.rotation).distanceTo(new THREE.Vector3().setFromEuler(newRotation)) >= 0.01) {
|
if (new THREE.Vector3().setFromEuler(object.rotation).distanceTo(new THREE.Vector3().setFromEuler(newRotation)) >= 0.0001) {
|
||||||
App.execute(new SetRotationCommand(object, newRotation, undefined));
|
App.execute(new SetRotationCommand(object, newRotation, undefined));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
scale: () => {
|
scale: () => {
|
||||||
const newScale = new THREE.Vector3(objectData.scale.x, objectData.scale.y, objectData.scale.z);
|
const newScale = new THREE.Vector3(objectData.scale.x, objectData.scale.y, objectData.scale.z);
|
||||||
if (object.scale.distanceTo(newScale) >= 0.01) {
|
if (object.scale.distanceTo(newScale) >= 0.0001) {
|
||||||
App.execute(new SetScaleCommand(object, newScale, undefined));
|
App.execute(new SetScaleCommand(object, newScale, undefined));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -433,11 +433,11 @@ const handleUserDataClick = () => {
|
|||||||
<div class="sider-scene-attr-item">
|
<div class="sider-scene-attr-item">
|
||||||
<EsKeyFrame :label="t('layout.sider.object.position')" attr="position" />
|
<EsKeyFrame :label="t('layout.sider.object.position')" attr="position" />
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<EsInputNumber v-model:value="objectData.position.x" size="tiny" :show-button="false" :decimal="3" :step="1"
|
<EsInputNumber v-model:value="objectData.position.x" size="tiny" :show-button="false" :decimal="6" :step="1"
|
||||||
@change="update('position')" />
|
@change="update('position')" />
|
||||||
<EsInputNumber v-model:value="objectData.position.y" size="tiny" :show-button="false" :decimal="3" :step="1"
|
<EsInputNumber v-model:value="objectData.position.y" size="tiny" :show-button="false" :decimal="6" :step="1"
|
||||||
@change="update('position')" />
|
@change="update('position')" />
|
||||||
<EsInputNumber v-model:value="objectData.position.z" size="tiny" :show-button="false" :decimal="3" :step="1"
|
<EsInputNumber v-model:value="objectData.position.z" size="tiny" :show-button="false" :decimal="6" :step="1"
|
||||||
@change="update('position')" />
|
@change="update('position')" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -445,11 +445,11 @@ const handleUserDataClick = () => {
|
|||||||
<div class="sider-scene-attr-item" v-if="transformRowsVisible.rotation">
|
<div class="sider-scene-attr-item" v-if="transformRowsVisible.rotation">
|
||||||
<EsKeyFrame :label="t('layout.sider.object.rotation')" attr="quaternion" />
|
<EsKeyFrame :label="t('layout.sider.object.rotation')" attr="quaternion" />
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<EsInputNumber v-model:value="objectData.rotation.x" size="tiny" :decimal="2" :step="1" :show-button="false"
|
<EsInputNumber v-model:value="objectData.rotation.x" size="tiny" :decimal="6" :step="1" :show-button="false"
|
||||||
@change="update('rotation')" unit="°" />
|
@change="update('rotation')" unit="°" />
|
||||||
<EsInputNumber v-model:value="objectData.rotation.y" size="tiny" :decimal="2" :step="1" :show-button="false"
|
<EsInputNumber v-model:value="objectData.rotation.y" size="tiny" :decimal="6" :step="1" :show-button="false"
|
||||||
@change="update('rotation')" unit="°" />
|
@change="update('rotation')" unit="°" />
|
||||||
<EsInputNumber v-model:value="objectData.rotation.z" size="tiny" :decimal="2" :step="1" :show-button="false"
|
<EsInputNumber v-model:value="objectData.rotation.z" size="tiny" :decimal="6" :step="1" :show-button="false"
|
||||||
@change="update('rotation')" unit="°" />
|
@change="update('rotation')" unit="°" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<template v-if="model.type === 'API'">
|
<template v-if="model.type === 'API'">
|
||||||
<n-form-item-gi :span="12" :label="t('home.Method')">
|
<n-form-item-gi :span="12" :label="t('home.Method')">
|
||||||
<n-select v-model:value="model.type" :options="[
|
<n-select v-model:value="model.method" :options="[
|
||||||
{ label: 'GET', value: 'GET' },
|
{ label: 'GET', value: 'GET' },
|
||||||
{ label: 'POST', value: 'POST' },
|
{ label: 'POST', value: 'POST' },
|
||||||
]" />
|
]" />
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user