Public feed #529735

Renato

public cpp v1 · immutable
Raw Edit
·published 2007-06-02 01:25 UTC
rendered paste body
    // Physics SDK globals    NxPhysicsSDK* gPhysicsSDK = NULL;    NxScene* gScene = NULL;    // Actor globals    NxActor* gameLevel = NULL;    NxActor* CreateLevelMesh()    {         gLevelMesh.convertLevel();        // Build physical model        @@NxTriangleMeshDesc levelDesc;        @@levelDesc.numVertices = g_Level.m_numOfVerts;        @@levelDesc.numTriangles = gLevelMesh.nbTriangles;        @@levelDesc.pointStrideBytes = sizeof(tBSPVertex);        @@levelDesc.triangleStrideBytes = 3*sizeof(NxU32);        @@levelDesc.points = (const NxPoint*)&(g_Level.m_pVerts[0].vPosition);        @@levelDesc.triangles = gLevelMesh.triangles;        @@levelDesc.flags = 0;        NxTriangleMeshShapeDesc levelShapeDesc;        NxInitCooking();        if (0)        {            // Cooking from file            bool status = NxCookTriangleMesh(levelDesc, UserStream("c:\\tmp.bin", false));            levelShapeDesc.meshData = gPhysicsSDK->createTriangleMesh(UserStream("c:\\tmp.bin", true));        }        else        {            // Cooking from memory            MemoryWriteBuffer buf;            bool status = NxCookTriangleMesh(levelDesc, buf);            levelShapeDesc.meshData = gPhysicsSDK->createTriangleMesh(MemoryReadBuffer(buf.data));        }        NxActorDesc actorDesc;        actorDesc.shapes.pushBack(&levelShapeDesc);        NxActor* actor = gScene->createActor(actorDesc);        actor->userData = (void*)1;         return actor;    }    void InitNx()    {        // ...        // Initialize BSP Level Actor        LoadBSP();        gameLevel = CreateLevelMesh();        // ...    }