//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(); }
//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); }
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); } } }