AABB = Axis Aligned Bounding Box
I have a model. I suround it by an AABB. The model may need to rotate. Rather than recompute the AABB (which would be slow), I’ld rather rotate the AABB with the model. My absolute rotation comes to me as a Quaternion. Here is my working algorithm. Is there a faster way?
My AABB is defined by a center and 3 extent variables (X extent Y extent Z extent). My AABB keeps track of its original center and original extents, but has a “using” center and “using” extent which it uses for culling purposes. They start off equal.
- Convert Quaternion to a 3x3 rotation matrix
- Rotate the original center by this 3x3 rotation matrix. This is now my new “using” center.
- Make every value in the 3x3 matrix it’s absolute value (IE if a value is -32 it becomes 32)
- Multiply this 3x3 matrix by my “original” X,Y,Z extent of the bounding box. This is now my new X/Y/Z extent.
This algorithm works correctly. I’m wondering if there is a faster way.