diff --git a/src/BRepTools/BRepTools_GTrsfModification.cxx b/src/BRepTools/BRepTools_GTrsfModification.cxx index 7f2d9731d6..89001ee10c 100644 --- a/src/BRepTools/BRepTools_GTrsfModification.cxx +++ b/src/BRepTools/BRepTools_GTrsfModification.cxx @@ -308,10 +308,15 @@ Standard_Boolean BRepTools_GTrsfModification::NewTriangulation(const TopoDS_Face // modify normals if (theTriangulation->HasNormals()) { - for (Standard_Integer anInd = 1; anInd <= theTriangulation->NbTriangles(); ++anInd) + for (Standard_Integer anInd = 1; anInd <= theTriangulation->NbNodes(); ++anInd) { gp_Dir aNormal = theTriangulation->Normal(anInd); - aNormal.Transform(aGTrsf.Trsf()); + gp_Mat aMat = aGTrsf.VectorialPart(); + aMat.SetDiagonal(1., 1., 1.); + gp_Trsf aTrsf; + aTrsf.SetForm(gp_Rotation); + (gp_Mat&)aTrsf.HVectorialPart() = aMat; + aNormal.Transform(aTrsf); theTriangulation->SetNormal(anInd, aNormal); } }