public void PreloadTriangleMesh(StillDesign.PhysX.Scene scene, MeshCollisionData.TriangleMeshData model) { usingScene = scene; // This is cheat lock (preloadQueue) { preloadQueue.Enqueue(model); Monitor.PulseAll(preloadQueue); } }
public void Update(StillDesign.PhysX.Scene scene) { lock (this) { if (currentPreloadingMesh == null) { return; } if (cookedStream == null) { return; } var mesh = scene.Core.CreateTriangleMesh(cookedStream); triangleMeshEntries[currentPreloadingMesh] = mesh; Console.WriteLine("Mesh succesfully preloaded!"); currentPreloadingMesh = null; cookedStream = null; Monitor.PulseAll(this); } }
public TriangleMesh LoadTriangleMesh(MeshCollisionData.TriangleMeshData model, StillDesign.PhysX.Scene scene, Matrix transform) { MemoryStream stream = cookTriangleMeshStream(model, transform); return(scene.Core.CreateTriangleMesh(stream)); }
private BoundingBox calculateBBTriangleMesh(MeshCollisionData.TriangleMeshData data) { return(BoundingBox.CreateFromPoints(data.Positions)); }