bx-1379-redesign #15
|
@ -276,23 +276,30 @@ watch(() => sidebar.is_open && sidebar.id_clickable, () => {
|
||||||
|
|
||||||
el.getWorldPosition(target_vector);
|
el.getWorldPosition(target_vector);
|
||||||
// target_vector.y = raw_dataStore.data.min_distance > 50 ? raw_dataStore.data.min_distance / 10 : 1;
|
// target_vector.y = raw_dataStore.data.min_distance > 50 ? raw_dataStore.data.min_distance / 10 : 1;
|
||||||
|
target_vector.setComponent(1, raw_dataStore.data.min_distance > 50 ? raw_dataStore.data.min_distance / 10 : 1)
|
||||||
|
|
||||||
const quaternion = new Quaternion();
|
// const quaternion = new Quaternion();
|
||||||
quaternion.setFromEuler(new Euler(
|
// quaternion.setFromEuler(new Euler(
|
||||||
-45 * 1 * (Math.PI / 180),
|
// -45 * 1 * (Math.PI / 180),
|
||||||
35 * 1 * (Math.PI / 180),
|
// 35 * 1 * (Math.PI / 180),
|
||||||
35 * 1 * (Math.PI / 180)
|
// 35 * 1 * (Math.PI / 180)
|
||||||
));
|
// ));
|
||||||
|
|
||||||
set_moveto(smooth_rotate, quaternion)
|
// set_moveto(smooth_rotate, quaternion)
|
||||||
|
|
||||||
|
const d = raw_dataStore.data.max_distance * 0.5;
|
||||||
|
const lerp_vector = new Vector3(0, 0, 0)
|
||||||
|
lerp_vector.lerpVectors(target_vector, camera.value?.position as Vector3, 0.5)
|
||||||
|
lerp_vector.setComponent(1, raw_dataStore.data.max_distance * 0.5)
|
||||||
|
if (
|
||||||
|
camera.value?.position && camera.value?.position.distanceTo(lerp_vector) > raw_dataStore.data.max_distance * 0.5 ||
|
||||||
|
camera.value?.position && camera.value?.position.distanceTo(target_vector) > 10
|
||||||
|
) {
|
||||||
|
set_moveto(smooth_target, new Vector3(lerp_vector.x, d, lerp_vector.z))
|
||||||
|
set_moveto(smooth_move, lerp_vector)
|
||||||
|
|
||||||
const d = raw_dataStore.data.max_distance * 0.5
|
|
||||||
if (camera.value?.position && camera.value?.position.distanceTo(new Vector3(d, d, d)) > 20) {
|
|
||||||
set_moveto(temp_smooth_target, target_vector)
|
set_moveto(temp_smooth_target, target_vector)
|
||||||
set_moveto(temp_smooth_move, target_vector)
|
set_moveto(temp_smooth_move, target_vector)
|
||||||
|
|
||||||
set_moveto(smooth_target, new Vector3(0, 0, 0))
|
|
||||||
set_moveto(smooth_move, new Vector3(d, d, d))
|
|
||||||
} else {
|
} else {
|
||||||
set_moveto(smooth_target, target_vector)
|
set_moveto(smooth_target, target_vector)
|
||||||
set_moveto(smooth_move, target_vector)
|
set_moveto(smooth_move, target_vector)
|
||||||
|
@ -322,17 +329,21 @@ onAfterRender(() => {
|
||||||
{
|
{
|
||||||
el: smooth_target,
|
el: smooth_target,
|
||||||
temp_el: temp_smooth_target,
|
temp_el: temp_smooth_target,
|
||||||
f: () => (controls.value as any).target.lerp(smooth_target.value as Vector3, smooth_target.count < COUNT * 0.5 ? 0.15 : koef),
|
f: () => {
|
||||||
|
(controls.value as any).target.lerp(smooth_target.value as Vector3, 1 / smooth_target.count);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
el: smooth_move,
|
el: smooth_move,
|
||||||
temp_el: temp_smooth_move,
|
temp_el: temp_smooth_move,
|
||||||
f: () => camera.value?.position.lerp(smooth_move.value as Vector3, smooth_move.count < COUNT * 0.5 ? 0.15 : koef),
|
f: () => {
|
||||||
|
camera.value?.position.lerp(smooth_move.value as Vector3, 1 / smooth_move.count);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
el: smooth_rotate,
|
el: smooth_rotate,
|
||||||
f: () => {
|
f: () => {
|
||||||
camera.value?.quaternion.slerp(smooth_rotate.value as Quaternion, koef);
|
camera.value?.quaternion.slerp(smooth_rotate.value as Quaternion, 1 / smooth_rotate.count);
|
||||||
camera.value?.quaternion.normalize()
|
camera.value?.quaternion.normalize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -342,9 +353,8 @@ onAfterRender(() => {
|
||||||
timer.resetTimer();
|
timer.resetTimer();
|
||||||
element.f()
|
element.f()
|
||||||
element.el.count -= 1
|
element.el.count -= 1
|
||||||
if (element.el.count == 0) {
|
if (element.el.count == 1) {
|
||||||
set_moveto(element.el, undefined)
|
set_moveto(element.el, undefined)
|
||||||
|
|
||||||
if (element.temp_el && element.temp_el.value) {
|
if (element.temp_el && element.temp_el.value) {
|
||||||
set_moveto(element.el, element.temp_el.value)
|
set_moveto(element.el, element.temp_el.value)
|
||||||
set_moveto(element.temp_el, undefined)
|
set_moveto(element.temp_el, undefined)
|
||||||
|
@ -357,8 +367,11 @@ onAfterRender(() => {
|
||||||
const timer = useTimer()
|
const timer = useTimer()
|
||||||
timer.timer_func = () => {
|
timer.timer_func = () => {
|
||||||
if (timer.seconds_left == 0 && !(controls.value as any).autoRotate && (controls.value as any).enabled) {
|
if (timer.seconds_left == 0 && !(controls.value as any).autoRotate && (controls.value as any).enabled) {
|
||||||
gotoCenterAndDistance();
|
if (sidebar.is_open) {
|
||||||
sidebar.close();
|
sidebar.close();
|
||||||
|
} else {
|
||||||
|
gotoCenterAndDistance();
|
||||||
|
}
|
||||||
(controls.value as any).autoRotate = true;
|
(controls.value as any).autoRotate = true;
|
||||||
(controls.value as any).autoRotateSpeed = 0.5;
|
(controls.value as any).autoRotateSpeed = 0.5;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue