| 317 | } |
| 318 | |
| 319 | PxTriangleMesh* SampleLargeWorld::generateTriMesh(const SampleArray<PxVec3>* vertices, const SampleArray<PxU32>* indices) |
| 320 | { |
| 321 | //Cooking mesh |
| 322 | PxTriangleMeshDesc meshDesc; |
| 323 | meshDesc.points.count = vertices->size(); |
| 324 | meshDesc.triangles.count = indices->size()/3; |
| 325 | meshDesc.points.stride = sizeof(PxVec3); |
| 326 | meshDesc.triangles.stride = sizeof(PxU32)*3; |
| 327 | meshDesc.points.data = &(*vertices)[0]; |
| 328 | meshDesc.triangles.data = &(*indices)[0]; |
| 329 | meshDesc.flags = PxMeshFlags(0); |
| 330 | |
| 331 | PxDefaultMemoryOutputStream stream; |
| 332 | bool ok = getCooking().cookTriangleMesh(meshDesc, stream); |
| 333 | if( !ok ) |
| 334 | return NULL; |
| 335 | |
| 336 | PxDefaultMemoryInputData rb(stream.getData(), stream.getSize()); |
| 337 | |
| 338 | return getPhysics().createTriangleMesh(rb); |
| 339 | } |
| 340 | |
| 341 | void SampleLargeWorld::createChunk(CoordType coordX, CoordType coordY, PxCollection& outCollection) |
| 342 | { |
nothing calls this directly
no test coverage detected