- Replace ImportMeshAsync with LoadAssetContainerAsync for person.stl - Cache loading promise to prevent race conditions and multiple fetches - Use instantiateModelsToScene() to create mesh instances from cached container - Simplify buildMesh signature to use DefaultScene singleton - Add Havok physics WASM prefetch hint to index.html 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
1.7 KiB
TypeScript
43 lines
1.7 KiB
TypeScript
import {AbstractMesh} from "@babylonjs/core";
|
|
import {DiagramManager} from "../../diagram/diagramManager";
|
|
import {DiagramObject} from "../../diagram/diagramObject";
|
|
import log from "loglevel";
|
|
import {vectoxys} from "../../diagram/functions/vectorConversion";
|
|
import {DiagramEntityType} from "../../diagram/types/diagramEntity";
|
|
import {DefaultScene} from "../../defaultScene";
|
|
|
|
export function grabAndClone(diagramManager: DiagramManager, mesh: AbstractMesh, parent: AbstractMesh):
|
|
DiagramObject {
|
|
const logger = log.getLogger('grabAndClone');
|
|
if (diagramManager.isDiagramObject(mesh)) {
|
|
logger.debug('grabAndClone called with diagram object', mesh.id);
|
|
const diagramObject = diagramManager.createCopy(mesh.id);
|
|
if (!diagramObject) {
|
|
logger.warn('grabAndClone called with invalid diagram object', mesh.id);
|
|
return null;
|
|
}
|
|
diagramObject.baseTransform.setParent(parent);
|
|
diagramManager.addObject(diagramObject);
|
|
return diagramObject;
|
|
} else {
|
|
const entity = {
|
|
template: mesh.metadata.template,
|
|
color: mesh.metadata.color,
|
|
position: vectoxys(mesh.absolutePosition),
|
|
rotation: vectoxys(mesh.absoluteRotationQuaternion.toEulerAngles()),
|
|
scale: vectoxys(mesh.scaling),
|
|
type: DiagramEntityType.ENTITY
|
|
|
|
}
|
|
const obj = new DiagramObject(DefaultScene.Scene,
|
|
diagramManager.onDiagramEventObservable,
|
|
{
|
|
diagramEntity: entity,
|
|
actionManager: diagramManager.actionManager
|
|
});
|
|
obj.baseTransform.setParent(parent);
|
|
diagramManager.addObject(obj);
|
|
return obj;
|
|
}
|
|
}
|