MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/PhysX / createRenderMeshFromRawMesh

Method createRenderMeshFromRawMesh

physx/samples/samplebase/PhysXSample.cpp:310–346  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

308///////////////////////////////////////////////////////////////////////////////
309
310RenderMeshActor* PhysXSample::createRenderMeshFromRawMesh(const RAWMesh& data, PxShape* shape)
311{
312 // Create render mesh from raw mesh
313 const PxU32 nbTris = data.mNbFaces;
314 const PxU32* src = data.mIndices;
315
316 PxU16* indices = (PxU16*)SAMPLE_ALLOC(sizeof(PxU16)*nbTris*3);
317 for(PxU32 i=0;i<nbTris;i++)
318 {
319 indices[i*3+0] = src[i*3+0];
320 indices[i*3+1] = src[i*3+2];
321 indices[i*3+2] = src[i*3+1];
322 }
323
324 RenderMeshActor* meshActor = SAMPLE_NEW(RenderMeshActor)(*getRenderer(), data.mVerts, data.mNbVerts, data.mVertexNormals, data.mUVs, indices, NULL, nbTris);
325 SAMPLE_FREE(indices);
326
327 if(data.mMaterialID!=0xffffffff)
328 {
329 size_t nbMaterials = mRenderMaterials.size();
330 for(PxU32 i=0;i<nbMaterials;i++)
331 {
332 if(mRenderMaterials[i]->mID==data.mMaterialID)
333 {
334 meshActor->setRenderMaterial(mRenderMaterials[i]);
335 break;
336 }
337 }
338 }
339
340 meshActor->setTransform(data.mTransform);
341 if(data.mName)
342 strcpy(meshActor->mName, data.mName);
343
344 mRenderActors.push_back(meshActor);
345 return meshActor;
346}
347
348///////////////////////////////////////////////////////////////////////////////
349

Callers 1

onTickMethod · 0.80

Calls 3

setRenderMaterialMethod · 0.80
setTransformMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected