]> OCCT Git - occt-copy.git/commitdiff
0030630: Visualization - wrong visualization of shape with mirrored transformation
authorika <ika@opencascade.com>
Thu, 4 Apr 2019 13:07:05 +0000 (16:07 +0300)
committermgn <mgn@opencascade.com>
Tue, 4 Jun 2019 08:23:37 +0000 (11:23 +0300)
Solids with mirror location are displayed, according to their normals.

src/StdPrs/StdPrs_ShadedShape.cxx

index 60c41a1286434a50d54e830f1a8650a0d653d8b1..996c3840c836fd8ed5c76fa3e332586f0dc19916 100644 (file)
@@ -208,7 +208,7 @@ namespace
         aPoint = aNodes (aNodeIter);
         const Standard_Integer anId = 3 * (aNodeIter - aNodes.Lower());
         gp_Dir aNorm (aNormArr[anId + 0], aNormArr[anId + 1], aNormArr[anId + 2]);
-        if (aFace.Orientation() == TopAbs_REVERSED)
+        if ((aFace.Orientation() == TopAbs_REVERSED) ^ isMirrored)
         {
           aNorm.Reverse();
         }
@@ -237,7 +237,7 @@ namespace
       Standard_Integer anIndex[3];
       for (Standard_Integer aTriIter = 1; aTriIter <= aT->NbTriangles(); ++aTriIter)
       {
-        if ((aFace.Orientation() == TopAbs_REVERSED) ^ isMirrored)
+        if ((aFace.Orientation() == TopAbs_REVERSED))
         {
           aTriangles (aTriIter).Get (anIndex[0], anIndex[2], anIndex[1]);
         }