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());