12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { AbstractMesh } from "../../Meshes/abstractMesh.js";
- import { PhysicsJoint } from "./physicsJoint.js";
- Object.defineProperty(AbstractMesh.prototype, "physicsImpostor", {
- get: function () {
- return this._physicsImpostor;
- },
- set: function (value) {
- if (this._physicsImpostor === value) {
- return;
- }
- if (this._disposePhysicsObserver) {
- this.onDisposeObservable.remove(this._disposePhysicsObserver);
- }
- this._physicsImpostor = value;
- if (value) {
- this._disposePhysicsObserver = this.onDisposeObservable.add(() => {
- // Physics
- if (this.physicsImpostor) {
- this.physicsImpostor.dispose( /*!doNotRecurse*/);
- this.physicsImpostor = null;
- }
- });
- }
- },
- enumerable: true,
- configurable: true,
- });
- /**
- * Gets the current physics impostor
- * @see https://doc.babylonjs.com/features/featuresDeepDive/physics
- * @returns a physics impostor or null
- */
- AbstractMesh.prototype.getPhysicsImpostor = function () {
- return this.physicsImpostor;
- };
- /**
- * Apply a physic impulse to the mesh
- * @param force defines the force to apply
- * @param contactPoint defines where to apply the force
- * @returns the current mesh
- * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine
- */
- AbstractMesh.prototype.applyImpulse = function (force, contactPoint) {
- if (!this.physicsImpostor) {
- return this;
- }
- this.physicsImpostor.applyImpulse(force, contactPoint);
- return this;
- };
- /**
- * Creates a physic joint between two meshes
- * @param otherMesh defines the other mesh to use
- * @param pivot1 defines the pivot to use on this mesh
- * @param pivot2 defines the pivot to use on the other mesh
- * @param options defines additional options (can be plugin dependent)
- * @returns the current mesh
- * @see https://www.babylonjs-playground.com/#0BS5U0#0
- */
- AbstractMesh.prototype.setPhysicsLinkWith = function (otherMesh, pivot1, pivot2, options) {
- if (!this.physicsImpostor || !otherMesh.physicsImpostor) {
- return this;
- }
- this.physicsImpostor.createJoint(otherMesh.physicsImpostor, PhysicsJoint.HingeJoint, {
- mainPivot: pivot1,
- connectedPivot: pivot2,
- nativeParams: options,
- });
- return this;
- };
- //# sourceMappingURL=physicsEngineComponent.js.map
|