diff --git a/src/controllers/base.ts b/src/controllers/base.ts index b3aee53..0e3e63b 100644 --- a/src/controllers/base.ts +++ b/src/controllers/base.ts @@ -139,8 +139,10 @@ export class Base { switch (this.grabbedMeshType) { case MeshTypeEnum.ENTITY: const diagramObject = this.diagramManager.getDiagramObject(mesh.id); - diagramObject.baseTransform.setParent(this.xrInputSource.motionController.rootMesh); - this.grabbedObject = diagramObject; + if (diagramObject.isGrabbable) { + diagramObject.baseTransform.setParent(this.xrInputSource.motionController.rootMesh); + this.grabbedObject = diagramObject; + } break; case MeshTypeEnum.HANDLE: this.grabbedMesh.setParent(this.xrInputSource.motionController.rootMesh); diff --git a/src/objects/diagramObject.ts b/src/objects/diagramObject.ts index cf50bd1..037968c 100644 --- a/src/objects/diagramObject.ts +++ b/src/objects/diagramObject.ts @@ -71,6 +71,10 @@ export class DiagramObject { return this._baseTransform; } + public get isGrabbable() { + return this._diagramEntity?.template !== '#connection-template'; + } + public get diagramEntity(): DiagramEntity { if (this._mesh) { this._diagramEntity = toDiagramEntity(this._mesh);