lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
24 lines • 1.24 kB
JavaScript
import computePxVertices from "../engine/physx/computePxVertices";
import { physxPtr } from "../pointers/physxPtr";
import createSharedPool from "./utils/createSharedPool";
export const [requestPhysxConvexGeometry, releasePhysxConvexGeometry] = createSharedPool((params, manager) => {
const { getConvexFlags, getCooking, getInsertionCallback, PxConvexMeshDesc, PxConvexMeshGeometry, PxSphereGeometry, PxBoxGeometry, destroy } = physxPtr[0];
const [typeSrc, x, y, z] = params;
if (typeSrc === "cube")
return new PxBoxGeometry(x * 0.5, y * 0.5, z * 0.5);
if (typeSrc === "sphere" && x === y && x === z)
return new PxSphereGeometry(x * 0.5);
const [vec3Vector, count] = computePxVertices(manager);
const desc = new PxConvexMeshDesc();
desc.flags = getConvexFlags();
desc.points.count = count;
desc.points.stride = 12;
desc.points.data = vec3Vector.data();
const convexMesh = getCooking().createConvexMesh(desc, getInsertionCallback());
const pxGeometry = new PxConvexMeshGeometry(convexMesh);
destroy(desc);
vec3Vector.clear();
destroy(vec3Vector);
return pxGeometry;
}, (target) => physxPtr[0].destroy(target));
//# sourceMappingURL=physxConvexGeometryPool.js.map