Exemplo n.º 1
0
    //void createStack(const PxTransform& t, PxU32 size, PxReal halfExtent){
    void createStack(PxTransform t, uint size, float halfExtent)
    {
        //PxShape* shape = gPhysics->createShape(PxBoxGeometry(halfExtent, halfExtent, halfExtent), *gMaterial);
        PxShapePtr shape = gPhysics.createShape(new PxBoxGeometry(halfExtent, halfExtent, halfExtent), gMaterial);

        //for(PxU32 i=0; i<size;i++){
        // for(PxU32 j=0;j<size-i;j++){
        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size - i; j++)
            {
                //PxTransform localTm(PxVec3(PxReal(j*2) - PxReal(size-i), PxReal(i*2+1), 0) * halfExtent);
                //PxRigidDynamic* body = gPhysics->createRigidDynamic(t.transform(localTm));
                //body->attachShape(*shape);
                //PxRigidBodyExt::updateMassAndInertia(*body, 10.0f);
                //gScene->addActor(*body);
                PxTransform       localTm = new PxTransform(new PxVec3(((j * 2) - (size - i)) * halfExtent, (i * 2 + 1) * halfExtent, 0));
                PxRigidDynamicPtr body    = gPhysics.createRigidDynamic(t.transform(localTm));
                body.attachShape(shape);
                PxRigidBodyExt.updateMassAndInertia(body, 10);
                gScene.addActor(body);
            }
        }
        //shape->release();
        shape.release();
    }
Exemplo n.º 2
0
    //PxRigidDynamic* createDynamic(const PxTransform& t, const PxGeometry& geometry, const PxVec3& velocity=PxVec3(0)){
    PxRigidDynamicPtr createDynamic(PxTransform t, PxGeometry.Ref geometry, PxVec3 velocity)
    {
        //PxRigidDynamic* dynamic = PxCreateDynamic(*gPhysics, t, geometry, *gMaterial, 10.0f);
        //dynamic->setAngularDamping(0.5f);
        //dynamic->setLinearVelocity(velocity);
        //gScene->addActor(*dynamic);
        //return dynamic;
        PxRigidDynamicPtr dynamic = PxCreateDynamic(gPhysics, t, geometry, gMaterial, 10);

        dynamic.setAngularDamping(.5f);
        dynamic.setLinearVelocity(velocity);
        gScene.addActor(dynamic);
        return(dynamic);
    }
Exemplo n.º 3
0
    protected override void OnInit()
    {
        var geometry = new PxBoxGeometry(0.5f, 0.5f, 0.5f);
        var material = pxPhysics.createMaterial(.5f, .5f, .5f);

        var wallSize = 4;

        for (int i = 0; i < wallSize; i++)
        {
            for (int j = 0; j < wallSize; j++)
            {
                var transform             = new PxTransform(new PxVec3(i - wallSize / 2, j, 0));
                PxRigidDynamicPtr dynamic = PxCreateDynamic(pxPhysics, transform, geometry, material, 10);
                dynamic.setAngularDamping(.5f);
                pxScene.addActor(dynamic);
            }
        }
    }