Terrain deformation & make colision dynamically[solved]

cmk524

31-07-2008 11:20:10

Iam doing a project on Earth Movers.
so i need physics for vehicles and mesh deformation at run time.

iam deforming mesh by using a sample ETTerrain.

But for colision iam using:

Vector3 Level::getTerrainVertex(size_t x,size_t z)
{

Vector3 res;

res.x = mTerrainInfo->getOffset().x + mTerrainInfo->getScaling().x * x;
res.y = mTerrainInfo->getOffset().y + mTerrainInfo->at(x,z) * mTerrainInfo->getScaling().y;

res.z = mTerrainInfo->getOffset().z + mTerrainInfo->getScaling().z * z;
return res;

}
void Level::generateTerrainCollision()
{
OgreNewt::CollisionPrimitives::TreeCollision *col = new OgreNewt::CollisionPrimitives::TreeCollision(mWorld);
col->start();
for(size_t x=0;x<mTerrainInfo->getWidth()-1;x++)//hmWidth and hmHeight are the dimensions of the heightmap
{
for(size_t z=0;z<mTerrainInfo->getHeight()-1;z++)
{

//| |
//4---3-
//| \ |
//1---2-

Vector3 v1 = getTerrainVertex(x,z);
Vector3 v2 = getTerrainVertex(x+1,z);
Vector3 v3 = getTerrainVertex(x+1,z+1);
Vector3 v4 = getTerrainVertex(x,z+1);
Ogre::Vector3 poly_verts[3];

poly_verts[2] = v1;
poly_verts[1] = v2;
poly_verts[0] = v4;

col->addPoly( poly_verts, 0 );
poly_verts[2] = v2;
poly_verts[1] = v3;
poly_verts[0] = v4;

col->addPoly( poly_verts, 0 );

}
}
col->finish(false);

terrainBody = new OgreNewt::Body(mWorld,col);
delete col;

}


at the beganing
but if i cdeform the mesh again i had to made colision for the mesh.


Is there any another methods to add colision for deforming mesh.