Fix wrong Quaternion class use in some places

This commit is contained in:
dominik-korsa 2025-07-23 01:07:44 +02:00
parent b7c71e37ac
commit 3aec232bf0
No known key found for this signature in database
GPG Key ID: 5A24D76EE0A30974
3 changed files with 6 additions and 7 deletions

View File

@ -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);

View File

@ -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";

View File

@ -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 ];
}
}