@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3 lines (2 loc) • 1.97 kB
JavaScript
import{a as t}from"./KHR_interactivity-D4lwBSW9.esm.min.js";import{R as e,f as i,d as s}from"./declarationMapper-D_filC93.esm.min.js";import{u as o}from"./index-BPURObVq.esm.min.js";import"./objectModelMapping-ClgDmo5Q.esm.min.js";import"./spotLight.pure-5s2DDDIt.esm.min.js";class l extends t{constructor(t){super(t),this.config=t,this.body=this.registerDataInput("body",e),this.otherBody=this.registerDataOutput("otherBody",e),this.point=this.registerDataOutput("point",i),this.normal=this.registerDataOutput("normal",i),this.impulse=this.registerDataOutput("impulse",s),this.distance=this.registerDataOutput("distance",s)}_preparePendingTasks(t){const e=this.body.getValue(t);if(!e)return void this._reportError(t,"No physics body provided for collision event");e.setCollisionCallbackEnabled(!0);const i=e.getCollisionObservable().add(e=>{this._onCollision(t,e)});t._setExecutionVariable(this,"_collisionObserver",i),t._setExecutionVariable(this,"_subscribedBody",e)}_onCollision(t,e){const i=this.body.getValue(t),s=e.collider===i?e.collidedAgainst:e.collider;this.otherBody.setValue(s,t),e.point&&this.point.setValue(e.point,t),e.normal&&this.normal.setValue(e.normal,t),this.impulse.setValue(e.impulse,t),this.distance.setValue(e.distance,t),this._execute(t)}_executeEvent(t,e){return!0}_cancelPendingTasks(t){const e=t._getExecutionVariable(this,"_collisionObserver",null),i=t._getExecutionVariable(this,"_subscribedBody",null);if(e&&i){const t=i.getCollisionObservable();t.remove(e),t.hasObservers()||i.setCollisionCallbackEnabled(!1)}t._setExecutionVariable(this,"_collisionObserver",null),t._setExecutionVariable(this,"_subscribedBody",null)}getClassName(){return"FlowGraphPhysicsCollisionEventBlock"}}let r=!1;function n(){r||(r=!0,o("FlowGraphPhysicsCollisionEventBlock",l))}n();export{l as FlowGraphPhysicsCollisionEventBlock,n as RegisterFlowGraphPhysicsCollisionEventBlock};
//# sourceMappingURL=flowGraphPhysicsCollisionEventBlock-mSZ35E9j.esm.min.js.map