# BoundBox

Hi.

I´m having problens to update the BoundBox of my models.

When I translate the model, ou rotate the BoundBox don´t are update. I have all the transformation of the model in 3 matrices translate, rotate and scale. And multiply then by MODEL_VIEW before rendering.

But how i will do this with my BB ??
I need to have a copy of the original BB, to make transformations, and I don´t want to do this all frames, only when the model are updated!

How could I do this fast ???

Thanks…

Well, if you are using axis aligned bounding box, coded as min/max point, transform all box corners by the model transformation and find the new min and max. (if you code the BB by center/extents, it works exactly the same, you just have some extra works)
Here a piece of code i wrote as an exemple :

AABB AABB::TransformBy(const Matrix4& mat)
{
Vec3 min, max;
Vec3 v;
int i;

``````for (i = 0; i &lt; 8; i++) {
v[i] = mat * GetCorner(i, v[i]);
}
min = max = v;
for (i = 1; i &lt; 8; i++) {
if (v[i].x &lt; min.x) min.x = v[i].x;
else if (v[i].x &gt; max.x) max.x = v[i].x;
if (v[i].y &lt; min.y) min.y = v[i].y;
else if (v[i].y &gt; max.y) max.y = v[i].y;
if (v[i].z &lt; min.z) min.z = v[i].z;
else if (v[i].x &gt; max.x) max.z = v[i].z;
}
return AABB(min,max);
``````

}

oh i forgot, if you want the bounding box to be aligned with world axis, the matrix should be the local->world matrix, and the original bounding box should be in local space (computed directly from vertices) (By the way why use 3 matrices ?)

[This message has been edited by delbass (edited 02-15-2004).]

[This message has been edited by delbass (edited 02-15-2004).]