From 3be6493f3db5b9c136884528f3d3f12bf4736176 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sun, 18 Feb 2024 14:08:01 +0200 Subject: [PATCH] asdf --- src/three/builder.ts | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/three/builder.ts b/src/three/builder.ts index 741d3b7..220c844 100644 --- a/src/three/builder.ts +++ b/src/three/builder.ts @@ -89,13 +89,7 @@ export class ThreeBuilder { parent: Object3D, parentComponent?: MsonComponent, ) { - const offset = new Vector3(); - if (parentComponent?.pivot) { - offset.sub(new Vector3().fromArray(parentComponent.pivot as Vec3)); - } - const size = new Vector3().fromArray(component.size as Vec3); - const pos = new Vector3().fromArray(component.from as Vec3); const dilate = new Vector3(); if (component.dilate) { @@ -112,9 +106,18 @@ export class ThreeBuilder { ); } + const pos = new Vector3(); + if (parentComponent?.pivot) { + pos.fromArray(parentComponent.pivot as Vec3); + } + pos.setY(pos.y * -1); + + const offset = new Vector3().fromArray(component.from as Vec3); const halfOffset = offset.clone().divideScalar(2); const halfSize = size.clone().divideScalar(2); - const halfDilation = dilate.clone().divideScalar(2); + + offset.setY(offset.y * -1); + const adjustedTranslate = halfSize.clone().add(offset); const geometry = new BoxGeometry( size.x + dilate.x, @@ -125,7 +128,11 @@ export class ThreeBuilder { 1, ); - geometry.translate(halfOffset.x, halfOffset.y, halfOffset.z); + geometry.translate( + adjustedTranslate.x, + adjustedTranslate.y - size.y, + adjustedTranslate.z, + ); geometry.rotateX(rotate.x); geometry.rotateY(rotate.y); geometry.rotateZ(rotate.z); @@ -135,7 +142,7 @@ export class ThreeBuilder { delete (geometry as any).parameters; // TODO: apply UVs - pos.add(halfOffset).add(halfSize); + // pos.add(halfOffset).add(halfSize); const mesh = new Mesh(geometry, this.material); mesh.name = `${name}__mesh`;