A method that works, but it slows my frame rate down to 15fps
- cpp Code: Select all
//Get separation distance
vector3d<f32> edges1[8];
vector3d<f32> edges2[8];
Sobj1.irr_node->getTransformedBoundingBox().getEdges(edges1);
Sobj2.irr_node->getTransformedBoundingBox().getEdges(edges2);
vector3d<f32> SepDist;
vector3d<f32> dist;
//X
dist.X = abs(Sobj2.irr_node->getTransformedBoundingBox().getCenter().X - Sobj1.irr_node->getTransformedBoundingBox().getCenter().X);
SepDist.X = dist.X - (((abs(edges1[4].X-edges1[0].X))/2.0)+((abs(edges2[4].X-edges2[0].X))/2.0));
//Y
dist.Y = abs(Sobj2.irr_node->getTransformedBoundingBox().getCenter().Y - Sobj1.irr_node->getTransformedBoundingBox().getCenter().Y);
SepDist.Y = dist.Y - (((abs(edges1[1].Y-edges1[0].Y))/2.0)+((abs(edges2[1].Y-edges2[0].Y))/2.0));
//Z
dist.Z = abs(Sobj2.irr_node->getTransformedBoundingBox().getCenter().Z - Sobj1.irr_node->getTransformedBoundingBox().getCenter().Z);
SepDist.Z = dist.Z - (((abs(edges1[2].Z-edges1[0].Z))/2.0)+((abs(edges2[2].Z-edges2[0].Z))/2.0));
There must be a quicker way!! (any ideas?)
Also - I'm having trouble displaying this information on the screen due to (I think) typecasting issues, how do you display a vector3d<f32> in the GUI?

