- Code: Select all
NewtonCollision* treecollision;
void newton_addstaticcollisiongeometry()
{
D3DXVECTOR4 minBox;
D3DXVECTOR4 maxBox;
D3DXMATRIX mat;
treecollision = NewtonCreateTreeCollision(nworld,0);
NewtonTreeCollisionBeginBuild(treecollision);
newton_treecollisionaddblocks(treecollision);
NewtonTreeCollisionEndBuild(treecollision, 0);
if (newton_level) { NewtonDestroyBody(nworld, newton_level); }
newton_level = NewtonCreateBody(nworld, treecollision);
NewtonBodyGetMatrix(newton_level, &mat);
NewtonCollisionCalculateAABB (treecollision, &mat, &minBox, &maxBox);
// add some extra padding
minBox.x -= 50;
minBox.y -= 50;
minBox.z -= 50;
maxBox.x += 50;
maxBox.y += 50;
maxBox.z += 50;
// set the new world size
NewtonSetWorldSize (nworld, &minBox, &maxBox);
NewtonReleaseCollision(nworld, treecollision);
draw_red_rect3d(minBox.x, minBox.y, minBox.z, maxBox.x, maxBox.y, maxBox.z);
}
But i get this
http://pic.ipicture.ru/uploads/091116/T3Uog6z7YX.jpg
Yellow lines is collision, that was added and work
Red lines is minBox and maxBox, calculated by NewtonCollisionCalculateAABB()
So, looking like red cube may be larger than all level collition, highlighted with yellow.
Whats wrong?