コード例 #1
0
ファイル: ExtExtensions.cpp プロジェクト: thomhughes/Awe
void PxCollectForExportSDK(const PxPhysics& physics, PxCollection& collection)
{
    // Collect convexes
    {
        Ps::Array<PxConvexMesh*> objects(physics.getNbConvexMeshes());
        const PxU32 nb = physics.getConvexMeshes(objects.begin(), objects.size());
        PX_ASSERT(nb == objects.size());
        PX_UNUSED(nb);

        for(PxU32 i=0; i<objects.size(); i++)
            objects[i]->collectForExport(collection);
    }

    // Collect triangle meshes
    {
        Ps::Array<PxTriangleMesh*> objects(physics.getNbTriangleMeshes());
        const PxU32 nb = physics.getTriangleMeshes(objects.begin(), objects.size());

        PX_ASSERT(nb == objects.size());
        PX_UNUSED(nb);

        for(PxU32 i=0; i<objects.size(); i++)
            objects[i]->collectForExport(collection);
    }

    // Collect heightfields
    {
        Ps::Array<PxHeightField*> objects(physics.getNbHeightFields());
        const PxU32 nb = physics.getHeightFields(objects.begin(), objects.size());

        PX_ASSERT(nb == objects.size());
        PX_UNUSED(nb);

        for(PxU32 i=0; i<objects.size(); i++)
            objects[i]->collectForExport(collection);
    }

    // Collect materials
    {
        Ps::Array<PxMaterial*> objects(physics.getNbMaterials());
        const PxU32 nb = physics.getMaterials(objects.begin(), objects.size());

        PX_ASSERT(nb == objects.size());
        PX_UNUSED(nb);

        for(PxU32 i=0; i<objects.size(); i++)
            objects[i]->collectForExport(collection);
    }

#if PX_USE_CLOTH_API
    // Collect cloth fabrics
    {
        Ps::Array<PxClothFabric*> objects(physics.getNbClothFabrics());
        const PxU32 nb = physics.getClothFabrics(objects.begin(), objects.size());

        PX_ASSERT(nb == objects.size());
        PX_UNUSED(nb);

        for(PxU32 i=0; i<objects.size(); i++)
            objects[i]->collectForExport(collection);
    }
#endif
}