1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0023361: Bug in gp_Trsf::Multiply

Bug in gp_Trsf::Multiply fixed.
If we multiply 2 gp_Trsf objects (shape == gp_Rotation), for example, t1 * t2, and t2.loc = 0
(t2.loc.x == 0 and t2.loc.y == 0 and t2.loc.z == 0)
then t1.loc will not change (you can verify it from the matrix multiplication)
Adding test case
This commit is contained in:
ilv
2012-11-15 13:23:11 +04:00
parent 3d8539a3e5
commit f6f03db9d0
3 changed files with 40 additions and 1 deletions

View File

@@ -464,7 +464,7 @@ void gp_Trsf::Multiply(const gp_Trsf& T)
matrix = T.matrix;
}
else if (shape == gp_Rotation && T.shape == gp_Rotation) {
if (loc.X() != 0.0 || loc.Y() != 0.0 || loc.Z() != 0.0) {
if (T.loc.X() != 0.0 || T.loc.Y() != 0.0 || T.loc.Z() != 0.0) {
loc.Add (T.loc.Multiplied (matrix));
}
matrix.Multiply(T.matrix);