diff --git a/src/bit-systems/object-menu-transform-system.ts b/src/bit-systems/object-menu-transform-system.ts index 453ee00b04..b2f06feaa4 100644 --- a/src/bit-systems/object-menu-transform-system.ts +++ b/src/bit-systems/object-menu-transform-system.ts @@ -17,6 +17,7 @@ const tmpMat42 = new Matrix4(); const aabb = new Box3(); const sphere = new Sphere(); const yVector = new Vector3(0, 1, 0); +const UNIT_V3 = new Vector3(1, 1, 1); // Calculate the AABB without accounting for the root object rotation function getAABB(obj: Object3D, box: Box3, onlyVisible: boolean = false) { @@ -84,8 +85,14 @@ function transformMenu(world: HubsWorld, menu: EntityID) { } else { targetObj.updateMatrices(true, true); targetObj.matrixWorld.decompose(tmpVec1, tmpQuat1, tmpVec2); - targetObj.getWorldScale(tmpVec2); - tmpMat42.compose(tmpVec1, tmpQuat1, tmpVec2); + + const scale = (ObjectMenuTransform.flags[menu] & ObjectMenuTransformFlags.Scale) !== 0 ? true : false; + if (scale) { + targetObj.getWorldScale(tmpVec2); + tmpMat42.compose(tmpVec1, tmpQuat1, tmpVec2); + } else { + tmpMat42.compose(tmpVec1, tmpQuat1, UNIT_V3); + } tmpMat4.copy(tmpMat42); const isFacing = isFacingCamera(targetObj); diff --git a/src/inflators/object-menu-transform.ts b/src/inflators/object-menu-transform.ts index 301ae648d1..7f8cb3c099 100644 --- a/src/inflators/object-menu-transform.ts +++ b/src/inflators/object-menu-transform.ts @@ -5,11 +5,13 @@ import { ObjectMenuTransform } from "../bit-components"; export const ObjectMenuTransformFlags = { Enabled: 1 << 0, - Center: 1 << 1 + Center: 1 << 1, + Scale: 1 << 2 }; export type ObjectMenuTransformParams = { center?: boolean; + scale?: boolean; }; const DEFAULTS = { @@ -22,4 +24,7 @@ export function inflateObjectMenuTransform(world: HubsWorld, eid: EntityID, para if (params.center === true) { ObjectMenuTransform.flags[eid] |= ObjectMenuTransformFlags.Center; } + if (params.scale === true) { + ObjectMenuTransform.flags[eid] |= ObjectMenuTransformFlags.Scale; + } } diff --git a/src/prefabs/pdf-menu.tsx b/src/prefabs/pdf-menu.tsx index ee24504a2d..6b87d72573 100644 --- a/src/prefabs/pdf-menu.tsx +++ b/src/prefabs/pdf-menu.tsx @@ -61,7 +61,7 @@ export function PDFMenuPrefab() { return (