lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
362 lines • 22.1 kB
JavaScript
import { forceGetInstance, lazy } from "@lincode/utils";
import { setPhysXLoaded } from "../../states/usePhysXLoaded";
import { physxPtr } from "../../pointers/physxPtr";
import { simd } from "wasm-feature-detect";
import { getGravity } from "../../states/useGravity";
import { actorPtrManagerMap, controllerManagerContactMap, controllerManagerMap, managerContactMap } from "../../collections/pxCollections";
import "./physxLoop";
import { clearCollectionEffectSystem } from "../../systems/configSystems/clearCollectionEffectSystem";
(async () => {
const simdSupported = await simd();
const { default: physx } = await (simdSupported
? import("./physxSimd")
: import("./physx"));
const PhysX = await physx();
const { destroy, wrapPointer, NativeArrayHelpers, Vector_PxVec3, Vector_PxReal, Vector_PxU32, Vector_PxContactPairPoint, PxTopLevelFunctions, PxDefaultAllocator, PxDefaultErrorCallback, PxTolerancesScale, PxCookingParams, PxConvexFlags, PxVec3, PxExtendedVec3, PxSceneDesc, PxShapeFlags, PxTransform, PxFilterData, PxBoxGeometry, PxCapsuleGeometry, PxSphereGeometry, PxPlaneGeometry, PxConvexMeshDesc, PxConvexMeshGeometry, PxRigidActorExt, PxRigidBodyExt, PxBoundedData, PxTriangleMeshDesc, PxTriangleMeshGeometry, PxQuat, PxCapsuleControllerDesc, PxControllerFilters, PxRaycastBuffer10, PxOverlapBuffer10, PxJointLimitCone, PxJointAngularLimitPair, PxJointLinearLimit, PxJointLinearLimitPair, PxShapeExt, PxD6Drive, PxD6JointDrive, PxSimulationEventCallbackImpl, PxUserControllerHitReportImpl, PxMeshPreprocessingFlags, PxContactPair, PxContactPairHeader, PxControllerShapeHit, PxQueryFilterData, _emscripten_enum_PxMeshPreprocessingFlagEnum_eDISABLE_CLEAN_MESH, _emscripten_enum_PxMeshPreprocessingFlagEnum_eDISABLE_ACTIVE_EDGES_PRECOMPUTE, _emscripten_enum_PxMeshCookingHintEnum_eCOOKING_PERFORMANCE, _emscripten_enum_PxConvexFlagEnum_eCOMPUTE_CONVEX, _emscripten_enum_PxConvexFlagEnum_eDISABLE_MESH_VALIDATION, _emscripten_enum_PxConvexFlagEnum_eFAST_INERTIA_COMPUTATION, _emscripten_enum_PxShapeFlagEnum_eSCENE_QUERY_SHAPE, _emscripten_enum_PxShapeFlagEnum_eSIMULATION_SHAPE, _emscripten_enum_PxIDENTITYEnum_PxIdentity, _emscripten_enum_PxCapsuleClimbingModeEnum_eEASY, _emscripten_enum_PxCapsuleClimbingModeEnum_eCONSTRAINED, _emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_CAN_RIDE_ON_OBJECT, _emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_SLIDE, _emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_USER_DEFINED_RIDE, _emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_SIDES, _emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_UP, _emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_DOWN, _emscripten_enum_PxControllerNonWalkableModeEnum_ePREVENT_CLIMBING, _emscripten_enum_PxControllerNonWalkableModeEnum_ePREVENT_CLIMBING_AND_FORCE_SLIDING, _emscripten_enum_PxControllerShapeTypeEnum_eBOX, _emscripten_enum_PxControllerShapeTypeEnum_eCAPSULE, _emscripten_enum_PxForceModeEnum_eFORCE, _emscripten_enum_PxForceModeEnum_eIMPULSE, _emscripten_enum_PxForceModeEnum_eVELOCITY_CHANGE, _emscripten_enum_PxForceModeEnum_eACCELERATION, _emscripten_enum_PxActorFlagEnum_eVISUALIZATION, _emscripten_enum_PxActorFlagEnum_eDISABLE_GRAVITY, _emscripten_enum_PxActorFlagEnum_eSEND_SLEEP_NOTIFIES, _emscripten_enum_PxActorFlagEnum_eDISABLE_SIMULATION, _emscripten_enum_PxPairFlagEnum_eNOTIFY_TOUCH_FOUND, _emscripten_enum_PxPairFlagEnum_eNOTIFY_TOUCH_LOST, _emscripten_enum_PxPairFlagEnum_eNOTIFY_CONTACT_POINTS, _emscripten_enum_PxPairFilteringModeEnum_eKEEP, _emscripten_enum_PxPairFilteringModeEnum_eKILL, _emscripten_enum_PxPairFilteringModeEnum_eDEFAULT, _emscripten_enum_PxPairFilteringModeEnum_eSUPPRESS, _emscripten_enum_PxArticulationFlagEnum_eFIX_BASE, _emscripten_enum_PxArticulationFlagEnum_eDRIVE_LIMITS_ARE_FORCES, _emscripten_enum_PxArticulationFlagEnum_eDISABLE_SELF_COLLISION, _emscripten_enum_PxArticulationFlagEnum_eCOMPUTE_JOINT_FORCES, _emscripten_enum_PxArticulationJointTypeEnum_ePRISMATIC, _emscripten_enum_PxArticulationJointTypeEnum_eREVOLUTE, _emscripten_enum_PxArticulationJointTypeEnum_eSPHERICAL, _emscripten_enum_PxArticulationJointTypeEnum_eFIX, _emscripten_enum_PxArticulationJointTypeEnum_eUNDEFINED, _emscripten_enum_PxArticulationAxisEnum_eTWIST, _emscripten_enum_PxArticulationAxisEnum_eSWING1, _emscripten_enum_PxArticulationAxisEnum_eSWING2, _emscripten_enum_PxArticulationAxisEnum_eX, _emscripten_enum_PxArticulationAxisEnum_eY, _emscripten_enum_PxArticulationAxisEnum_eZ, _emscripten_enum_PxArticulationAxisEnum_eCOUNT, _emscripten_enum_PxArticulationMotionEnum_eLOCKED, _emscripten_enum_PxArticulationMotionEnum_eLIMITED, _emscripten_enum_PxArticulationMotionEnum_eFREE, _emscripten_enum_PxRigidBodyFlagEnum_eKINEMATIC, _emscripten_enum_PxRigidBodyFlagEnum_eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD_FRICTION, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_POSE_INTEGRATION_PREVIEW, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_SPECULATIVE_CCD, _emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD_MAX_CONTACT_IMPULSE, _emscripten_enum_PxRigidBodyFlagEnum_eRETAIN_ACCELERATIONS, _emscripten_enum_PxSphericalJointFlagEnum_eLIMIT_ENABLED, _emscripten_enum_PxPrismaticJointFlagEnum_eLIMIT_ENABLED, _emscripten_enum_PxRevoluteJointFlagEnum_eLIMIT_ENABLED, _emscripten_enum_PxRevoluteJointFlagEnum_eDRIVE_ENABLED, _emscripten_enum_PxArticulationCacheFlagEnum_eALL, _emscripten_enum_PxArticulationCacheFlagEnum_ePOSITION, _emscripten_enum_PxGeometryTypeEnum_eBOX, _emscripten_enum_PxGeometryTypeEnum_eSPHERE, _emscripten_enum_PxGeometryTypeEnum_eCAPSULE, _emscripten_enum_PxGeometryTypeEnum_eCONVEXMESH, _emscripten_enum_PxD6AxisEnum_eX, _emscripten_enum_PxD6AxisEnum_eY, _emscripten_enum_PxD6AxisEnum_eZ, _emscripten_enum_PxD6AxisEnum_eTWIST, _emscripten_enum_PxD6AxisEnum_eSWING1, _emscripten_enum_PxD6AxisEnum_eSWING2, _emscripten_enum_PxD6AxisEnum_eCOUNT, _emscripten_enum_PxD6MotionEnum_eLOCKED, _emscripten_enum_PxD6MotionEnum_eLIMITED, _emscripten_enum_PxD6MotionEnum_eFREE, _emscripten_enum_PxD6DriveEnum_eX, _emscripten_enum_PxD6DriveEnum_eY, _emscripten_enum_PxD6DriveEnum_eZ, _emscripten_enum_PxD6DriveEnum_eSWING, _emscripten_enum_PxD6DriveEnum_eTWIST, _emscripten_enum_PxD6DriveEnum_eSLERP, _emscripten_enum_PxQueryFlagEnum_eDYNAMIC, _emscripten_enum_PxQueryFlagEnum_eSTATIC } = PhysX;
const Px = PxTopLevelFunctions.prototype;
// create PxFoundation
const version = Px.PHYSICS_VERSION;
const allocator = new PxDefaultAllocator();
const errorCb = new PxDefaultErrorCallback();
const foundation = Px.CreateFoundation(version, allocator, errorCb);
//create PxPhysics
const scale = new PxTolerancesScale();
const physics = Px.CreatePhysics(version, foundation, scale);
//init extensions
Px.InitExtensions(physics);
//create PxCooking
const getCooking = lazy(() => {
const cookingParams = new PxCookingParams(scale);
cookingParams.suppressTriangleMeshRemapTable = true;
cookingParams.meshPreprocessParams = new PxMeshPreprocessingFlags(_emscripten_enum_PxMeshPreprocessingFlagEnum_eDISABLE_CLEAN_MESH() |
_emscripten_enum_PxMeshPreprocessingFlagEnum_eDISABLE_ACTIVE_EDGES_PRECOMPUTE());
//todo: bind the following
// cookingParams.meshCookingHint =
// _emscripten_enum_PxMeshCookingHintEnum_eCOOKING_PERFORMANCE()
return Px.CreateCooking(version, foundation, cookingParams);
});
//create default convex flags
const getConvexFlags = lazy(() => new PxConvexFlags(_emscripten_enum_PxConvexFlagEnum_eCOMPUTE_CONVEX() |
_emscripten_enum_PxConvexFlagEnum_eDISABLE_MESH_VALIDATION() |
_emscripten_enum_PxConvexFlagEnum_eFAST_INERTIA_COMPUTATION()));
//create insertion callback
const getInsertionCallback = lazy(() => physics.getPhysicsInsertionCallback());
//create controller hit callback
const controllerHitCallback = new PxUserControllerHitReportImpl();
//onControllerHit, onObstacleHit
controllerHitCallback.onShapeHit = (h) => {
const hit = wrapPointer(h, PxControllerShapeHit);
// hit.worldNormal
// hit.worldPos
const controllerManager = controllerManagerMap.get(hit.controller);
const manager = actorPtrManagerMap.get(hit.actor.ptr);
if (!controllerManager || !manager)
return;
const contacts = forceGetInstance(controllerManagerContactMap, controllerManager, (Set));
contacts.add(manager);
clearCollectionEffectSystem.add(contacts);
};
controllerHitCallback.onControllerHit = (h) => { };
//create simulation event callback
const simulationEventCallback = new PxSimulationEventCallbackImpl();
simulationEventCallback.onContact = (pairHeader, pairs) => {
const pairsWrapped = wrapPointer(pairs, PxContactPair);
const pairHeaderWrapped = wrapPointer(pairHeader, PxContactPairHeader);
const manager0 = actorPtrManagerMap.get(pairHeaderWrapped.get_actors(0).ptr);
const manager1 = actorPtrManagerMap.get(pairHeaderWrapped.get_actors(1).ptr);
if (!manager0 || !manager1)
return;
const contacts0 = forceGetInstance(managerContactMap, manager0, WeakSet);
const contacts1 = forceGetInstance(managerContactMap, manager1, WeakSet);
const pair = NativeArrayHelpers.prototype.getContactPairAt(pairsWrapped, 0);
const evts = pair.events;
if (evts.isSet(_emscripten_enum_PxPairFlagEnum_eNOTIFY_TOUCH_FOUND())) {
contacts0.add(manager1);
contacts1.add(manager0);
}
else if (evts.isSet(_emscripten_enum_PxPairFlagEnum_eNOTIFY_TOUCH_LOST())) {
contacts0.delete(manager1);
contacts1.delete(manager0);
}
};
// create scene
const pxVec = new PxVec3(0, 0, 0);
const pxVec_ = new PxVec3(0, 0, 0);
const pxVec__ = new PxVec3(0, 0, 0);
const pxExtendedVec = new PxExtendedVec3(0, 0, 0);
const sceneDesc = new PxSceneDesc(scale);
// const filteringMode = _emscripten_enum_PxPairFilteringModeEnum_eKEEP()
// sceneDesc.set_staticKineFilteringMode(filteringMode)
// sceneDesc.set_kineKineFilteringMode(filteringMode)
sceneDesc.set_cpuDispatcher(Px.DefaultCpuDispatcherCreate(0));
sceneDesc.set_filterShader(Px.ContactReportFilterShader());
sceneDesc.set_simulationEventCallback(simulationEventCallback);
const pxScene = physics.createScene(sceneDesc);
// set gravity
const gravityVec = new PxVec3(0, 0, 0);
getGravity((val) => {
gravityVec.set_y(val);
pxScene.setGravity(gravityVec);
});
// create a default material
// static friction, dynamic friction, restitution
const material = physics.createMaterial(0.5, 0.5, 0.5);
// create default simulation shape flags
const shapeFlags = new PxShapeFlags(_emscripten_enum_PxShapeFlagEnum_eSCENE_QUERY_SHAPE() |
_emscripten_enum_PxShapeFlagEnum_eSIMULATION_SHAPE());
// create a few temporary objects used during setup
const pxIdentity = _emscripten_enum_PxIDENTITYEnum_PxIdentity();
const pxTransform = new PxTransform(pxIdentity);
const pxTransform_ = new PxTransform(pxIdentity);
const pxTransform__ = new PxTransform(pxIdentity);
const pxFilterData = new PxFilterData(1, 1, 0, 0);
const pxQuat = new PxQuat(0, 0, 0, 1);
// create raycast query
const raycastResult = new PxRaycastBuffer10();
const pxRaycast = (origin, direction, maxDistance, excludePtr) => {
if (!pxScene.raycast(origin, direction, maxDistance, raycastResult))
return;
let distMin = Infinity;
let hitDistMin;
const iMax = raycastResult.getNbAnyHits();
for (let i = 0; i < iMax; ++i) {
const hit = raycastResult.getAnyHit(i);
if (hit.actor.ptr === excludePtr || hit.distance > distMin)
continue;
distMin = hit.distance;
hitDistMin = hit;
}
return hitDistMin;
};
// create overlap query
const overlapResult = new PxOverlapBuffer10();
const pxOverlap = (shape, transform) => {
if (!pxScene.overlap(shape, transform, overlapResult))
return [];
const hits = [];
const iMax = overlapResult.getNbAnyHits();
for (let i = 0; i < iMax; ++i) {
const hit = overlapResult.getAnyHit(i);
hits.push(hit);
}
return hits;
};
// create PxController
const getPxControllerManager = lazy(() => Px.CreateControllerManager(pxScene));
const pxControllerFilters = new PxControllerFilters();
//port PxCreateDynamic
const PxGeometryTypeEnum = {
eBOX: lazy(_emscripten_enum_PxGeometryTypeEnum_eBOX),
eSPHERE: lazy(_emscripten_enum_PxGeometryTypeEnum_eSPHERE),
eCAPSULE: lazy(_emscripten_enum_PxGeometryTypeEnum_eCAPSULE),
eCONVEXMESH: lazy(_emscripten_enum_PxGeometryTypeEnum_eCONVEXMESH)
};
const isDynamicGeometry = (type) => type == PxGeometryTypeEnum.eBOX() ||
type == PxGeometryTypeEnum.eSPHERE() ||
type == PxGeometryTypeEnum.eCAPSULE() ||
type == PxGeometryTypeEnum.eCONVEXMESH();
const PxCreateDynamic2 = (sdk, transform, shape, density) => {
const actor = sdk.createRigidDynamic(transform);
if (actor) {
actor.attachShape(shape);
actor.setMass(density);
// PxRigidBodyExt.prototype.updateMassAndInertia(actor, density)
}
return actor;
};
const PxCreateDynamic = (sdk, transform, geometry, material, density, shapeOffset) => {
if (!isDynamicGeometry(geometry.getType()) || density <= 0)
return null;
const shape = sdk.createShape(geometry, material, true);
if (!shape)
return null;
shape.setLocalPose(shapeOffset);
const body = PxCreateDynamic2(sdk, transform, shape, density);
shape.release();
return body;
};
// controller enum
const PxCapsuleClimbingModeEnum = {
eEASY: lazy(_emscripten_enum_PxCapsuleClimbingModeEnum_eEASY),
eCONSTRAINED: lazy(_emscripten_enum_PxCapsuleClimbingModeEnum_eCONSTRAINED)
};
const PxControllerBehaviorFlagEnum = {
eCCT_CAN_RIDE_ON_OBJECT: lazy(_emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_CAN_RIDE_ON_OBJECT),
eCCT_SLIDE: lazy(_emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_SLIDE),
eCCT_USER_DEFINED_RIDE: lazy(_emscripten_enum_PxControllerBehaviorFlagEnum_eCCT_USER_DEFINED_RIDE)
};
const PxControllerCollisionFlagEnum = {
eCOLLISION_SIDES: lazy(_emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_SIDES),
eCOLLISION_UP: lazy(_emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_UP),
eCOLLISION_DOWN: lazy(_emscripten_enum_PxControllerCollisionFlagEnum_eCOLLISION_DOWN)
};
const PxControllerNonWalkableModeEnum = {
ePREVENT_CLIMBING: lazy(_emscripten_enum_PxControllerNonWalkableModeEnum_ePREVENT_CLIMBING),
ePREVENT_CLIMBING_AND_FORCE_SLIDING: lazy(_emscripten_enum_PxControllerNonWalkableModeEnum_ePREVENT_CLIMBING_AND_FORCE_SLIDING)
};
const PxControllerShapeTypeEnum = {
eBOX: lazy(_emscripten_enum_PxControllerShapeTypeEnum_eBOX),
eCAPSULE: lazy(_emscripten_enum_PxControllerShapeTypeEnum_eCAPSULE)
};
// force mode enum
const PxForceModeEnum = {
eFORCE: lazy(_emscripten_enum_PxForceModeEnum_eFORCE),
eIMPULSE: lazy(_emscripten_enum_PxForceModeEnum_eIMPULSE),
eVELOCITY_CHANGE: lazy(_emscripten_enum_PxForceModeEnum_eVELOCITY_CHANGE),
eACCELERATION: lazy(_emscripten_enum_PxForceModeEnum_eACCELERATION)
};
// actor flag enum
const PxActorFlagEnum = {
eDISABLE_GRAVITY: lazy(_emscripten_enum_PxActorFlagEnum_eDISABLE_GRAVITY),
eSEND_SLEEP_NOTIFIES: lazy(_emscripten_enum_PxActorFlagEnum_eSEND_SLEEP_NOTIFIES),
eDISABLE_SIMULATION: lazy(_emscripten_enum_PxActorFlagEnum_eDISABLE_SIMULATION),
eVISUALIZATION: lazy(_emscripten_enum_PxActorFlagEnum_eVISUALIZATION)
};
// articulation joint type enum
const PxArticulationJointTypeEnum = {
ePRISMATIC: lazy(_emscripten_enum_PxArticulationJointTypeEnum_ePRISMATIC),
eREVOLUTE: lazy(_emscripten_enum_PxArticulationJointTypeEnum_eREVOLUTE),
eSPHERICAL: lazy(_emscripten_enum_PxArticulationJointTypeEnum_eSPHERICAL),
eFIX: lazy(_emscripten_enum_PxArticulationJointTypeEnum_eFIX),
eUNDEFINED: lazy(_emscripten_enum_PxArticulationJointTypeEnum_eUNDEFINED)
};
// articulation axis enum
const PxArticulationAxisEnum = {
eTWIST: lazy(_emscripten_enum_PxArticulationAxisEnum_eTWIST),
eSWING1: lazy(_emscripten_enum_PxArticulationAxisEnum_eSWING1),
eSWING2: lazy(_emscripten_enum_PxArticulationAxisEnum_eSWING2),
eX: lazy(_emscripten_enum_PxArticulationAxisEnum_eX),
eY: lazy(_emscripten_enum_PxArticulationAxisEnum_eY),
eZ: lazy(_emscripten_enum_PxArticulationAxisEnum_eZ),
eCOUNT: lazy(_emscripten_enum_PxArticulationAxisEnum_eCOUNT)
};
// articulation motion enum
const PxArticulationMotionEnum = {
eLOCKED: lazy(_emscripten_enum_PxArticulationMotionEnum_eLOCKED),
eLIMITED: lazy(_emscripten_enum_PxArticulationMotionEnum_eLIMITED),
eFREE: lazy(_emscripten_enum_PxArticulationMotionEnum_eFREE)
};
// rigid body flag enum
const PxRigidBodyFlagEnum = {
eKINEMATIC: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eKINEMATIC),
eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eUSE_KINEMATIC_TARGET_FOR_SCENE_QUERIES),
eENABLE_CCD: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD),
eENABLE_CCD_FRICTION: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD_FRICTION),
eENABLE_POSE_INTEGRATION_PREVIEW: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eENABLE_POSE_INTEGRATION_PREVIEW),
eENABLE_SPECULATIVE_CCD: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eENABLE_SPECULATIVE_CCD),
eENABLE_CCD_MAX_CONTACT_IMPULSE: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eENABLE_CCD_MAX_CONTACT_IMPULSE),
eRETAIN_ACCELERATIONS: lazy(_emscripten_enum_PxRigidBodyFlagEnum_eRETAIN_ACCELERATIONS)
};
// spherical joint flag enum
const PxSphericalJointFlagEnum = {
eLIMIT_ENABLED: lazy(_emscripten_enum_PxSphericalJointFlagEnum_eLIMIT_ENABLED)
};
// prismatic joint flag enum
const PxPrismaticJointFlagEnum = {
eLIMIT_ENABLED: lazy(_emscripten_enum_PxPrismaticJointFlagEnum_eLIMIT_ENABLED)
};
// revolute joint flag enum
const PxRevoluteJointFlagEnum = {
eLIMIT_ENABLED: lazy(_emscripten_enum_PxRevoluteJointFlagEnum_eLIMIT_ENABLED),
eDRIVE_ENABLED: lazy(_emscripten_enum_PxRevoluteJointFlagEnum_eDRIVE_ENABLED)
};
// cache flag enum
const PxArticulationCacheFlagEnum = {
eALL: lazy(_emscripten_enum_PxArticulationCacheFlagEnum_eALL),
ePOSITION: lazy(_emscripten_enum_PxArticulationCacheFlagEnum_ePOSITION)
};
// d6 axis enum
const PxD6AxisEnum = {
eX: lazy(_emscripten_enum_PxD6AxisEnum_eX),
eY: lazy(_emscripten_enum_PxD6AxisEnum_eY),
eZ: lazy(_emscripten_enum_PxD6AxisEnum_eZ),
eSWING1: lazy(_emscripten_enum_PxD6AxisEnum_eSWING1),
eSWING2: lazy(_emscripten_enum_PxD6AxisEnum_eSWING2),
eTWIST: lazy(_emscripten_enum_PxD6AxisEnum_eTWIST),
eCOUNT: lazy(_emscripten_enum_PxD6AxisEnum_eCOUNT)
};
// d6 motion enum
const PxD6MotionEnum = {
eLOCKED: lazy(_emscripten_enum_PxD6MotionEnum_eLOCKED),
eLIMITED: lazy(_emscripten_enum_PxD6MotionEnum_eLIMITED),
eFREE: lazy(_emscripten_enum_PxD6MotionEnum_eFREE)
};
//d6 drive enum
const PxD6DriveEnum = {
eX: lazy(_emscripten_enum_PxD6DriveEnum_eX),
eY: lazy(_emscripten_enum_PxD6DriveEnum_eY),
eZ: lazy(_emscripten_enum_PxD6DriveEnum_eZ),
eSWING: lazy(_emscripten_enum_PxD6DriveEnum_eSWING),
eTWIST: lazy(_emscripten_enum_PxD6DriveEnum_eTWIST),
eSLERP: lazy(_emscripten_enum_PxD6DriveEnum_eSLERP)
};
physxPtr[0] = {
destroy: (target) => "release" in target ? target.release() : destroy(target),
controllerHitCallback,
NativeArrayHelpers,
physics,
material,
shapeFlags,
pxRaycast,
pxOverlap,
pxQuat,
pxVec,
pxVec_,
pxVec__,
pxExtendedVec,
pxTransform,
pxTransform_,
pxTransform__,
pxFilterData,
pxControllerFilters,
pxScene,
getCooking,
getConvexFlags,
getInsertionCallback,
getPxControllerManager,
Vector_PxVec3,
Vector_PxReal,
Vector_PxU32,
Px,
PxBoxGeometry,
PxCapsuleGeometry,
PxSphereGeometry,
PxPlaneGeometry,
PxConvexMeshDesc,
PxConvexMeshGeometry,
PxRigidActorExt,
PxRigidBodyExt,
PxBoundedData,
PxTriangleMeshDesc,
PxTriangleMeshGeometry,
PxCapsuleControllerDesc,
PxJointLimitCone,
PxJointAngularLimitPair,
PxJointLinearLimit,
PxJointLinearLimitPair,
PxShapeExt,
PxD6Drive,
PxD6JointDrive,
PxCreateDynamic,
PxCapsuleClimbingModeEnum,
PxControllerBehaviorFlagEnum,
PxControllerCollisionFlagEnum,
PxControllerNonWalkableModeEnum,
PxControllerShapeTypeEnum,
PxForceModeEnum,
PxActorFlagEnum,
PxArticulationJointTypeEnum,
PxArticulationAxisEnum,
PxArticulationMotionEnum,
PxRigidBodyFlagEnum,
PxSphericalJointFlagEnum,
PxPrismaticJointFlagEnum,
PxRevoluteJointFlagEnum,
PxArticulationCacheFlagEnum,
PxD6AxisEnum,
PxD6MotionEnum,
PxD6DriveEnum
};
setPhysXLoaded(true);
})();
//# sourceMappingURL=index.js.map