My linear algebra is failing me (and I'm distracted by this prof in the front of the room talking) so I need some assistance.

I have noticed while debugging some collision code that when I calculate the normals for triangles involed in a collision, the normals do not take into account that the object may be rotated.

Example: I create a box, initially a specific side of the box has a normal facing (1,0,0) out along the X+, now I rotate the box about the y axis -90 degrees, so the side is now pointing out along the Z+. So, really the new normal for that side is (0,0,1), but when I request the normal it still returns (1,0,0).

So I need to recalculate the normal relative to the rotation of the object. How do I do it?

I have access to all the usual collision data (targetMesh) and can get the rotation, I don't know how to apply it.

This is where it needs to happen:

Triangle t = triangles[i];

t.calculateNormal();

Vector3f tNorm = t.getNormal();

// HERE I need to do some math on tNorm for rotation

normal.addLocal(t.getNormal());