20 lines
925 B
TypeScript
20 lines
925 B
TypeScript
import {AbstractMesh, TransformNode} from "@babylonjs/core";
|
|
import {DiagramManager} from "../../diagram/diagramManager";
|
|
import {DefaultScene} from "../../defaultScene";
|
|
|
|
export function grabAndClone(diagramManager: DiagramManager, mesh: AbstractMesh, parent: AbstractMesh):
|
|
{ transformNode: TransformNode, newMesh: AbstractMesh } {
|
|
const scene = DefaultScene.Scene;
|
|
const newMesh = diagramManager.createCopy(mesh, true);
|
|
const transformNode = new TransformNode("grabAnchor", scene);
|
|
transformNode.id = "grabAnchor";
|
|
transformNode.position = newMesh.position.clone();
|
|
if (newMesh.rotationQuaternion) {
|
|
transformNode.rotationQuaternion = newMesh.rotationQuaternion.clone();
|
|
} else {
|
|
transformNode.rotation = newMesh.rotation.clone();
|
|
}
|
|
transformNode.setParent(parent);
|
|
newMesh.setParent(transformNode);
|
|
return {transformNode: transformNode, newMesh: newMesh};
|
|
} |