From: kgv Date: Wed, 15 Jun 2016 16:48:20 +0000 (+0300) Subject: fix index of degenerated vertex within multiple faces X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=db453edb9834f1fd17e90d3eae94bba3a9371ae9;p=occt-copy.git fix index of degenerated vertex within multiple faces --- diff --git a/src/StdPrs/StdPrs_ShadedShape.cxx b/src/StdPrs/StdPrs_ShadedShape.cxx index 7923d182f9..bea9e8d37b 100644 --- a/src/StdPrs/StdPrs_ShadedShape.cxx +++ b/src/StdPrs/StdPrs_ShadedShape.cxx @@ -360,15 +360,25 @@ namespace : -1; if (aDegenInTri != -1) { + aPoint = aNodes (anIndex[aDegenInTri]); + if (!aLoc.IsIdentity()) + { + aPoint.Transform (aTrsf); + aV1.Transform (aTrsf); + if (aV1.SquareMagnitude() > aPreci) + { + aV1.Normalize(); + } + } if (theHasTexels && aUVNodes.Upper() == aNodes.Upper()) { const gp_Pnt2d aTexel = gp_Pnt2d ((-theUVOrigin.X() + (theUVRepeat.X() * (aUVNodes (anIndex[aDegenInTri]).X() - aUmin)) / dUmax) / theUVScale.X(), (-theUVOrigin.Y() + (theUVRepeat.Y() * (aUVNodes (anIndex[aDegenInTri]).Y() - aVmin)) / dVmax) / theUVScale.Y()); - anIndex[aDegenInTri] = anArray->AddVertex (aNodes (anIndex[aDegenInTri]), aV1, aTexel); + anIndex[aDegenInTri] = anArray->AddVertex (aPoint, aV1, aTexel) - aDecal; } else { - anIndex[aDegenInTri] = anArray->AddVertex (aNodes (anIndex[aDegenInTri]), aV1); + anIndex[aDegenInTri] = anArray->AddVertex (aPoint, aV1) - aDecal; } }