From 3aec232bf05f6c5027ab66f4bf6da832eaf3d8dc Mon Sep 17 00:00:00 2001 From: dominik-korsa <29484605+dominik-korsa@users.noreply.github.com> Date: Wed, 23 Jul 2025 01:07:44 +0200 Subject: [PATCH] Fix wrong Quaternion class use in some places --- src/helpers/curveHelper.js | 4 ++-- src/model/defs/defined-switches.js | 2 +- src/model/misc/misc.js | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/helpers/curveHelper.js b/src/helpers/curveHelper.js index 74a165c..ab6f48d 100644 --- a/src/helpers/curveHelper.js +++ b/src/helpers/curveHelper.js @@ -1,6 +1,6 @@ import Vector3 from "../model/vector3"; -import Quaternion from "../model/quaternion"; import AngleHelper from "./angleHelper"; +import QuaternionPrefabParser from "../model/quaternion-prefab-parser"; function calculateCurveEnd(startPos, startAngle, radius, curveLength) { if (radius === 0) { @@ -39,7 +39,7 @@ function calculateCurveEndStandard(radius, curveLength) { function transformStart(globalStart, globalRotationDeg, localStart, localRotationQuat) { const globalRotationRad = AngleHelper.rotationDegToRad(globalRotationDeg); const startPos = globalStart.add(localStart.rotate(globalRotationRad)); - const rotationQuat = Quaternion.fromEulerAnglesRad(globalRotationRad).multiply(localRotationQuat); + const rotationQuat = QuaternionPrefabParser.fromEulerAnglesRad(globalRotationRad).multiply(localRotationQuat); const rotationRad = rotationQuat.toEulerAnglesRad(); const rotationDeg = AngleHelper.rotationRadToDeg(rotationRad); diff --git a/src/model/defs/defined-switches.js b/src/model/defs/defined-switches.js index 8966651..980f4c5 100644 --- a/src/model/defs/defined-switches.js +++ b/src/model/defs/defined-switches.js @@ -1,4 +1,4 @@ -import Quaternion from "../quaternion"; +import { default as Quaternion } from "../quaternion-prefab-parser"; import Vector3 from "../vector3"; import {TrackConnectionEnd} from "../track-connection"; diff --git a/src/model/misc/misc.js b/src/model/misc/misc.js index fd98aa4..94638a7 100644 --- a/src/model/misc/misc.js +++ b/src/model/misc/misc.js @@ -1,4 +1,3 @@ -import AngleHelper from "../../helpers/angleHelper"; import Quaternion from "../quaternion"; import SceneryObject from "../scenery-object"; import Vector3 from "../vector3"; @@ -20,7 +19,7 @@ export default class Misc extends SceneryObject { }); } - static fromText(id, text, miscGroups = []) { + static fromText(id, text, miscGroups = []) { const values = text.split(";"); const object = new Misc( @@ -42,7 +41,7 @@ export default class Misc extends SceneryObject { const localRotRad = localRot.multiply(Math.PI / 180); let worldQuat = Quaternion.fromEulerAngles(localRotRad).normalize(); let worldPos = localPos.clone(); - + for (const group of miscGroups) { const groupQuat = group.getQuaternion(); worldPos = groupQuat.rotateVector(worldPos).add(group.pos); @@ -51,7 +50,7 @@ export default class Misc extends SceneryObject { const worldRot = worldQuat.toEulerAngles().multiply(180 / Math.PI); const yawData = worldQuat.getMiscYawData(); - + return [ worldPos, worldRot, yawData ]; } }