UNPKG

lingo3d-react

Version:

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

259 lines (258 loc) 14.5 kB
import { b2 as Zt, b3 as zt, b4 as Q, b5 as q, b6 as Qt, b7 as j, b8 as $, b9 as ee, ba as ne, bb as te, bc as T, bd as qt, be as jt, bf as g, bg as R, bh as $t, bi as e_, bj as n_, bk as re, bl as t_, an as e, bm as __, bn as W, bo as w, bp as r_, bq as o_, br as _e, bs as i_, bt as a_ } from "./index-895cfa2f.mjs"; import "react"; import "react-dom"; const s_ = async () => WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11])), X = /* @__PURE__ */ new WeakMap(), k = /* @__PURE__ */ new WeakMap(), J = /* @__PURE__ */ new WeakSet(), m_ = (m, P) => J.has(m) ? !0 : P ? (J.add(m), setTimeout(() => J.delete(m), 500), !0) : !1; Zt(() => { const { pxScene: m, pxControllerFilters: P, pxRaycast: h } = re[0]; if (!m || !Q() || !q()) return; const B = Qt(() => { j.clear(); for (const [n, r] of $) { const { x: a, y: p, z: N } = n.position; let I = 0; const L = ee.get(n); ee.delete(n); const D = ne.get(n) ?? 0, F = te.get(n) ?? 0; if (n.gravity !== !1) { const x = m_(n, L !== void 0) ? !1 : !!h(T(a, p, N), qt(0, -1, 0), n.capsuleHeight, n.actor.ptr); if (X.set(n, x), x) I = -n.capsuleHeight, k.set(n, 0), j.add(n), ne.delete(n), te.delete(n); else { const C = (L ?? k.get(n) ?? 0) + jt[0] * g[0]; k.set(n, C), I = C * g[0]; } } else X.set(n, !1); if (R.has(n)) { R.delete(n); const { x, y: C, z: f } = r.getPosition(); r.move(T(a - x + D, p - C + I, N - f + F), 1e-3, g[0], P); } else r.move(T(D, I, F), 1e-3, g[0], P); } for (const n of R) n.actor.setGlobalPose($t(n)), "setLinearVelocity" in n.actor && (n.actor.setLinearVelocity(T(0, 0, 0)), n.actor.setAngularVelocity(T(0, 0, 0))); R.clear(), m.simulate(g[0]), m.fetchResults(!0); for (const [n, r] of e_) { const { p: a, q: p } = r.getGlobalPose(); n.position.copy(a), n.quaternion.copy(p); } for (const n of $.keys()) { const { position: r } = n.outerObject3d, { p: a } = n.actor.getGlobalPose(); r.lerp(a, n_(X.get(n) ? 0.3 : 1)), r.x = a.x, r.z = a.z; } }); return () => { B.cancel(); }; }, [zt, Q, q]); (async () => { const m = await s_(), { default: P } = await (m ? import("./physxSimd-d96569df.mjs") : import("./physx-d372fb5a.mjs")), h = await P(), { destroy: B, wrapPointer: n, NativeArrayHelpers: r, Vector_PxVec3: a, Vector_PxReal: p, Vector_PxU32: N, Vector_PxContactPairPoint: I, PxTopLevelFunctions: L, PxDefaultAllocator: D, PxDefaultErrorCallback: F, PxTolerancesScale: x, PxCookingParams: C, PxConvexFlags: f, PxVec3: d, PxSceneDesc: oe, PxShapeFlags: ie, PxTransform: b, PxFilterData: ae, PxBoxGeometry: se, PxCapsuleGeometry: me, PxSphereGeometry: ce, PxPlaneGeometry: Ee, PxConvexMeshDesc: ue, PxConvexMeshGeometry: le, PxRigidActorExt: Pe, PxRigidBodyExt: pe, PxBoundedData: xe, PxTriangleMeshDesc: Ce, PxTriangleMeshGeometry: Ie, PxQuat: Ae, PxCapsuleControllerDesc: Se, PxControllerFilters: Te, PxRaycastBuffer10: ge, PxOverlapBuffer10: Ne, PxJointLimitCone: Le, PxJointAngularLimitPair: De, PxJointLinearLimit: Fe, PxJointLinearLimitPair: de, PxShapeExt: Me, PxD6Drive: Oe, PxD6JointDrive: ye, PxSimulationEventCallbackImpl: Re, PxUserControllerHitReportImpl: he, PxMeshPreprocessingFlags: Be, PxContactPair: fe, PxContactPairHeader: be, PxControllerShapeHit: Ue, PxQueryFilterData: c_, _emscripten_enum_PxMeshPreprocessingFlagEnum_eDISABLE_CLEAN_MESH: Ge, _emscripten_enum_PxMeshPreprocessingFlagEnum_eDISABLE_ACTIVE_EDGES_PRECOMPUTE: Ve, _emscripten_enum_PxMeshCookingHintEnum_eCOOKING_PERFORMANCE: E_, _emscripten_enum_PxConvexFlagEnum_eCOMPUTE_CONVEX: ve, _emscripten_enum_PxConvexFlagEnum_eDISABLE_MESH_VALIDATION: He, _emscripten_enum_PxConvexFlagEnum_eFAST_INERTIA_COMPUTATION: We, _emscripten_enum_PxShapeFlagEnum_eSCENE_QUERY_SHAPE: we, _emscripten_enum_PxShapeFlagEnum_eSIMULATION_SHAPE: Xe, _emscripten_enum_PxIDENTITYEnum_PxIdentity: ke, _emscripten_enum_PxCapsuleClimbingModeEnum_eEASY: Je, _emscripten_enum_PxCapsuleClimbingModeEnum_eCONSTRAINED: Ye, _emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_CAN_RIDE_ON_OBJECT: Ke, _emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_SLIDE: Ze, _emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_USER_DEFINED_RIDE: ze, _emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_SIDES: Qe, _emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_UP: qe, _emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_DOWN: je, _emscripten_enum_PxControllerNonWalkableModeEnum_ePREVENT_CLIMBING: $e, _emscripten_enum_PxControllerNonWalkableModeEnum_ePREVENT_CLIMBING_AND_FORCE_SLIDING: en, _emscripten_enum_PxControllerShapeTypeEnum_eBOX: nn, _emscripten_enum_PxControllerShapeTypeEnum_eCAPSULE: tn, _emscripten_enum_PxForceModeEnum_eFORCE: _n, _emscripten_enum_PxForceModeEnum_eIMPULSE: rn, _emscripten_enum_PxForceModeEnum_eVELOCITY_CHANGE: on, _emscripten_enum_PxForceModeEnum_eACCELERATION: an, _emscripten_enum_PxActorFlagEnum_eVISUALIZATION: sn, _emscripten_enum_PxActorFlagEnum_eDISABLE_GRAVITY: mn, _emscripten_enum_PxActorFlagEnum_eSEND_SLEEP_NOTIFIES: cn, _emscripten_enum_PxActorFlagEnum_eDISABLE_SIMULATION: En, _emscripten_enum_PxPairFlagEnum_eNOTIFY_TOUCH_FOUND: un, _emscripten_enum_PxPairFlagEnum_eNOTIFY_TOUCH_LOST: ln, _emscripten_enum_PxPairFlagEnum_eNOTIFY_CONTACT_POINTS: u_, _emscripten_enum_PxPairFilteringModeEnum_eKEEP: l_, _emscripten_enum_PxPairFilteringModeEnum_eKILL: P_, _emscripten_enum_PxPairFilteringModeEnum_eDEFAULT: p_, _emscripten_enum_PxPairFilteringModeEnum_eSUPPRESS: x_, _emscripten_enum_PxArticulationFlagEnum_eFIX_BASE: C_, _emscripten_enum_PxArticulationFlagEnum_eDRIVE_LIMITS_ARE_FORCES: I_, _emscripten_enum_PxArticulationFlagEnum_eDISABLE_SELF_COLLISION: A_, _emscripten_enum_PxArticulationFlagEnum_eCOMPUTE_JOINT_FORCES: S_, _emscripten_enum_PxArticulationJointTypeEnum_ePRISMATIC: Pn, _emscripten_enum_PxArticulationJointTypeEnum_eREVOLUTE: pn, _emscripten_enum_PxArticulationJointTypeEnum_eSPHERICAL: xn, _emscripten_enum_PxArticulationJointTypeEnum_eFIX: Cn, _emscripten_enum_PxArticulationJointTypeEnum_eUNDEFINED: In, _emscripten_enum_PxArticulationAxisEnum_eTWIST: An, _emscripten_enum_PxArticulationAxisEnum_eSWING1: Sn, _emscripten_enum_PxArticulationAxisEnum_eSWING2: Tn, _emscripten_enum_PxArticulationAxisEnum_eX: gn, _emscripten_enum_PxArticulationAxisEnum_eY: Nn, _emscripten_enum_PxArticulationAxisEnum_eZ: Ln, _emscripten_enum_PxArticulationAxisEnum_eCOUNT: Dn, _emscripten_enum_PxArticulationMotionEnum_eLOCKED: Fn, _emscripten_enum_PxArticulationMotionEnum_eLIMITED: dn, _emscripten_enum_PxArticulationMotionEnum_eFREE: Mn, _emscripten_enum_PxRigidBodyFlagEnum_eKINEMATIC: On, _emscripten_enum_PxRigidBodyFlagEnum_eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES: yn, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD: Rn, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD_FRICTION: hn, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_POSE_INTEGRATION_PREVIEW: Bn, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_SPECULATIVE_CCD: fn, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD_MAX_CONTACT_IMPULSE: bn, _emscripten_enum_PxRigidBodyFlagEnum_eRETAIN_ACCELERATIONS: Un, _emscripten_enum_PxSphericalJointFlagEnum_eLIMIT_ENABLED: Gn, _emscripten_enum_PxPrismaticJointFlagEnum_eLIMIT_ENABLED: Vn, _emscripten_enum_PxRevoluteJointFlagEnum_eLIMIT_ENABLED: vn, _emscripten_enum_PxRevoluteJointFlagEnum_eDRIVE_ENABLED: Hn, _emscripten_enum_PxArticulationCacheFlagEnum_eALL: Wn, _emscripten_enum_PxArticulationCacheFlagEnum_ePOSITION: wn, _emscripten_enum_PxGeometryTypeEnum_eBOX: Xn, _emscripten_enum_PxGeometryTypeEnum_eSPHERE: kn, _emscripten_enum_PxGeometryTypeEnum_eCAPSULE: Jn, _emscripten_enum_PxGeometryTypeEnum_eCONVEXMESH: Yn, _emscripten_enum_PxD6AxisEnum_eX: Kn, _emscripten_enum_PxD6AxisEnum_eY: Zn, _emscripten_enum_PxD6AxisEnum_eZ: zn, _emscripten_enum_PxD6AxisEnum_eTWIST: Qn, _emscripten_enum_PxD6AxisEnum_eSWING1: qn, _emscripten_enum_PxD6AxisEnum_eSWING2: jn, _emscripten_enum_PxD6AxisEnum_eCOUNT: $n, _emscripten_enum_PxD6MotionEnum_eLOCKED: et, _emscripten_enum_PxD6MotionEnum_eLIMITED: nt, _emscripten_enum_PxD6MotionEnum_eFREE: tt, _emscripten_enum_PxD6DriveEnum_eX: _t, _emscripten_enum_PxD6DriveEnum_eY: rt, _emscripten_enum_PxD6DriveEnum_eZ: ot, _emscripten_enum_PxD6DriveEnum_eSWING: it, _emscripten_enum_PxD6DriveEnum_eTWIST: at, _emscripten_enum_PxD6DriveEnum_eSLERP: st, _emscripten_enum_PxQueryFlagEnum_eDYNAMIC: T_, _emscripten_enum_PxQueryFlagEnum_eSTATIC: g_ } = h; t_[0] = B; const c = L.prototype, U = c.PHYSICS_VERSION, mt = new D(), ct = new F(), Y = c.CreateFoundation(U, mt, ct), G = new x(), A = c.CreatePhysics(U, Y, G); c.InitExtensions(A); const Et = e(() => { const t = new C(G); return t.suppressTriangleMeshRemapTable = !0, t.meshPreprocessParams = new Be(Ge() | Ve()), c.CreateCooking(U, Y, t); }), ut = e(() => new f(ve() | He() | We())), lt = e(() => A.getPhysicsInsertionCallback()), V = new he(); V.onShapeHit = (t) => { const s = n(t, Ue), o = __.get(s.controller), i = W.get(s.actor.ptr); if (!o || !i) return; const _ = w(r_, o, Set); _.add(i), o_(_); }, V.onControllerHit = (t) => { }; const K = new Re(); K.onContact = (t, s) => { const o = n(s, fe), i = n(t, be), _ = W.get(i.get_actors(0).ptr), E = W.get(i.get_actors(1).ptr); if (!_ || !E) return; const u = w(_e, _, WeakSet), l = w(_e, E, WeakSet), z = r.prototype.getContactPairAt(o, 0).events; z.isSet(un()) ? (u.add(E), l.add(_)) : z.isSet(ln()) && (u.delete(E), l.delete(_)); }; const Pt = new d(0, 0, 0), pt = new d(0, 0, 0), xt = new d(0, 0, 0), M = new oe(G); M.set_cpuDispatcher(c.DefaultCpuDispatcherCreate(0)), M.set_filterShader(c.ContactReportFilterShader()), M.set_simulationEventCallback(K); const O = A.createScene(M), Z = new d(0, 0, 0); i_((t) => { Z.set_y(t), O.setGravity(Z); }); const Ct = A.createMaterial(0.5, 0.5, 0.5), It = new ie(we() | Xe()), v = ke(), At = new b(v), St = new b(v), Tt = new b(v), gt = new ae(1, 1, 0, 0), Nt = new Ae(0, 0, 0, 1), H = new ge(), Lt = (t, s, o, i) => { if (!O.raycast(t, s, o, H)) return; let _ = 1 / 0, E; const u = H.getNbAnyHits(); for (let l = 0; l < u; ++l) { const S = H.getAnyHit(l); S.actor.ptr === i || S.distance > _ || (_ = S.distance, E = S); } return E; }; new Ne(); const Dt = e(() => c.CreateControllerManager(O)), Ft = new Te(), y = { eBOX: e(Xn), eSPHERE: e(kn), eCAPSULE: e(Jn), eCONVEXMESH: e(Yn) }, dt = (t) => t == y.eBOX() || t == y.eSPHERE() || t == y.eCAPSULE() || t == y.eCONVEXMESH(), Mt = (t, s, o, i) => { const _ = t.createRigidDynamic(s); return _ && (_.attachShape(o), _.setMass(i)), _; }, Ot = (t, s, o, i, _, E) => { if (!dt(o.getType()) || _ <= 0) return null; const u = t.createShape(o, i, !0); if (!u) return null; u.setLocalPose(E); const l = Mt(t, s, u, _); return u.release(), l; }, yt = { eEASY: e(Je), eCONSTRAINED: e(Ye) }, Rt = { eCCT_CAN_RIDE_ON_OBJECT: e(Ke), eCCT_SLIDE: e(Ze), eCCT_USER_DEFINED_RIDE: e(ze) }, ht = { eCOLLISION_SIDES: e(Qe), eCOLLISION_UP: e(qe), eCOLLISION_DOWN: e(je) }, Bt = { ePREVENT_CLIMBING: e($e), ePREVENT_CLIMBING_AND_FORCE_SLIDING: e(en) }, ft = { eBOX: e(nn), eCAPSULE: e(tn) }, bt = { eFORCE: e(_n), eIMPULSE: e(rn), eVELOCITY_CHANGE: e(on), eACCELERATION: e(an) }, Ut = { eDISABLE_GRAVITY: e(mn), eSEND_SLEEP_NOTIFIES: e(cn), eDISABLE_SIMULATION: e(En), eVISUALIZATION: e(sn) }, Gt = { ePRISMATIC: e(Pn), eREVOLUTE: e(pn), eSPHERICAL: e(xn), eFIX: e(Cn), eUNDEFINED: e(In) }, Vt = { eTWIST: e(An), eSWING1: e(Sn), eSWING2: e(Tn), eX: e(gn), eY: e(Nn), eZ: e(Ln), eCOUNT: e(Dn) }, vt = { eLOCKED: e(Fn), eLIMITED: e(dn), eFREE: e(Mn) }, Ht = { eKINEMATIC: e(On), eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES: e(yn), eENABLE_CCD: e(Rn), eENABLE_CCD_FRICTION: e(hn), eENABLE_POSE_INTEGRATION_PREVIEW: e(Bn), eENABLE_SPECULATIVE_CCD: e(fn), eENABLE_CCD_MAX_CONTACT_IMPULSE: e(bn), eRETAIN_ACCELERATIONS: e(Un) }, Wt = { eLIMIT_ENABLED: e(Gn) }, wt = { eLIMIT_ENABLED: e(Vn) }, Xt = { eLIMIT_ENABLED: e(vn), eDRIVE_ENABLED: e(Hn) }, kt = { eALL: e(Wn), ePOSITION: e(wn) }, Jt = { eX: e(Kn), eY: e(Zn), eZ: e(zn), eSWING1: e(qn), eSWING2: e(jn), eTWIST: e(Qn), eCOUNT: e($n) }, Yt = { eLOCKED: e(et), eLIMITED: e(nt), eFREE: e(tt) }, Kt = { eX: e(_t), eY: e(rt), eZ: e(ot), eSWING: e(it), eTWIST: e(at), eSLERP: e(st) }; re[0] = { controllerHitCallback: V, NativeArrayHelpers: r, physics: A, material: Ct, shapeFlags: It, pxRaycast: Lt, pxQuat: Nt, pxVec: Pt, pxVec_: pt, pxVec__: xt, pxTransform: At, pxTransform_: St, pxTransform__: Tt, pxFilterData: gt, pxControllerFilters: Ft, pxScene: O, getCooking: Et, getConvexFlags: ut, getInsertionCallback: lt, getPxControllerManager: Dt, Vector_PxVec3: a, Vector_PxReal: p, Vector_PxU32: N, Px: c, PxBoxGeometry: se, PxCapsuleGeometry: me, PxSphereGeometry: ce, PxPlaneGeometry: Ee, PxConvexMeshDesc: ue, PxConvexMeshGeometry: le, PxRigidActorExt: Pe, PxRigidBodyExt: pe, PxBoundedData: xe, PxTriangleMeshDesc: Ce, PxTriangleMeshGeometry: Ie, PxCapsuleControllerDesc: Se, PxJointLimitCone: Le, PxJointAngularLimitPair: De, PxJointLinearLimit: Fe, PxJointLinearLimitPair: de, PxShapeExt: Me, PxD6Drive: Oe, PxD6JointDrive: ye, PxCreateDynamic: Ot, PxCapsuleClimbingModeEnum: yt, PxControllerBehaviorFlagEnum: Rt, PxControllerCollisionFlagEnum: ht, PxControllerNonWalkableModeEnum: Bt, PxControllerShapeTypeEnum: ft, PxForceModeEnum: bt, PxActorFlagEnum: Ut, PxArticulationJointTypeEnum: Gt, PxArticulationAxisEnum: Vt, PxArticulationMotionEnum: vt, PxRigidBodyFlagEnum: Ht, PxSphericalJointFlagEnum: Wt, PxPrismaticJointFlagEnum: wt, PxRevoluteJointFlagEnum: Xt, PxArticulationCacheFlagEnum: kt, PxD6AxisEnum: Jt, PxD6MotionEnum: Yt, PxD6DriveEnum: Kt }, a_(!0); })();