UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

28 lines 1.48 kB
import { Object3D } from "three"; import { setPxTransform_, setPxTransform__ } from "../../engine/physx/pxMath"; import { physxPtr } from "../../pointers/physxPtr"; import createInternalSystem from "../utils/createInternalSystem"; const getRelativeTransform = (thisObject, fromObject, setPxTransform) => { const fromScale = fromObject.scale; const clone = new Object3D(); clone.position.copy(thisObject.position); clone.quaternion.copy(thisObject.quaternion); fromObject.attach(clone); const fromPxTransform = setPxTransform(clone.position.x * fromScale.x, clone.position.y * fromScale.y, clone.position.z * fromScale.z, clone.quaternion.x, clone.quaternion.y, clone.quaternion.z, clone.quaternion.w); fromObject.remove(clone); return fromPxTransform; }; export const configJointCreateSystem = createInternalSystem("configJointCreateSystem", { effect: (self) => { const fromManager = self.$fromManager; const toManager = self.$toManager; if (!fromManager.$actor || !toManager.$actor) return false; self.$pxJoint = self.$createJoint(getRelativeTransform(self.outerObject3d, fromManager.outerObject3d, setPxTransform_), getRelativeTransform(self.outerObject3d, toManager.outerObject3d, setPxTransform__), fromManager, toManager); }, cleanup: (self) => { physxPtr[0].destroy(self.$pxJoint); self.$pxJoint = undefined; } }); //# sourceMappingURL=configJointCreateSystem.js.map