handle better item scales
This commit is contained in:
@@ -745,7 +745,8 @@ export function usePlacementCoordinator(config: PlacementCoordinatorConfig): Rea
|
||||
}
|
||||
})
|
||||
|
||||
const dims = config.asset.dimensions ?? DEFAULT_DIMENSIONS
|
||||
const initialDraft = draftNode.current
|
||||
const dims = initialDraft ? getScaledDimensions(initialDraft) : (config.asset.dimensions ?? DEFAULT_DIMENSIONS)
|
||||
const initialBoxGeometry = new BoxGeometry(dims[0], dims[1], dims[2])
|
||||
initialBoxGeometry.translate(0, dims[1] / 2, 0)
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ export const ItemRenderer = ({ node }: { node: ItemNode }) => {
|
||||
useRegistry(node.id, node.type, ref)
|
||||
|
||||
return (
|
||||
<group position={node.position} rotation={node.rotation} scale={node.scale} ref={ref} visible={node.visible}>
|
||||
<group position={node.position} rotation={node.rotation} ref={ref} visible={node.visible}>
|
||||
<Suspense fallback={<PreviewModel node={node} />}>
|
||||
<ModelRenderer node={node} />
|
||||
</Suspense>
|
||||
@@ -73,6 +73,9 @@ const PreviewModel = ({ node }: { node: ItemNode }) => {
|
||||
)
|
||||
}
|
||||
|
||||
const multiplyScales = (a: [number, number, number], b: [number, number, number]): [number, number, number] =>
|
||||
[a[0] * b[0], a[1] * b[1], a[2] * b[2]]
|
||||
|
||||
const ModelRenderer = ({ node }: { node: ItemNode }) => {
|
||||
const { scene, nodes } = useGLTF(resolveCdnUrl(node.asset.src) || '')
|
||||
|
||||
@@ -115,7 +118,7 @@ const ModelRenderer = ({ node }: { node: ItemNode }) => {
|
||||
return (
|
||||
<Clone
|
||||
object={scene}
|
||||
scale={node.asset.scale}
|
||||
scale={multiplyScales(node.asset.scale, node.scale)}
|
||||
position={node.asset.offset}
|
||||
rotation={node.asset.rotation}
|
||||
{...handlers}
|
||||
|
||||
Reference in New Issue
Block a user