void Mesh::SetRotation(Vector r) { Triangle *tri = tris, *ot = originalTris; Vector c = ComputeCentroid(); Vector o; for(int i = 0; i < numTris; i++, tri++, ot++) { *tri = *ot; tri->RotateAboutPoint(rotation + r, o); tri->Translate(c); tri->RecalcNormal(); } }
void Mesh::MoveTo(float x, float y, float z) { Triangle *tri = tris, *ot = originalTris; Vector c; for(int i = 0; i < numTris; i++, tri++, ot++) { *tri = *ot; tri->RotateAboutPoint(rotation, c); tri->Translate(x, y, z); tri->RecalcNormal(); } centroidChanged = true; }