0029229: Crash at Poly_Triangulation::Normal
authordbv <dbv@opencascade.com>
Sat, 14 Oct 2017 15:14:06 +0000 (18:14 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 19 Oct 2017 09:26:41 +0000 (12:26 +0300)
Fixed creation of returning gp_Dir

src/Poly/Poly_Triangulation.cxx
src/Poly/Poly_Triangulation.hxx

index eba4b21..3a361d0 100644 (file)
@@ -296,17 +296,16 @@ void Poly_Triangulation::SetNormal (const Standard_Integer theIndex, const gp_Di
 //purpose  : 
 //=======================================================================
 
-const gp_Dir Poly_Triangulation::Normal (const Standard_Integer theIndex) const
+gp_Dir Poly_Triangulation::Normal (const Standard_Integer theIndex) const
 {
   if (myNormals.IsNull() || theIndex < 1 || theIndex > myNodes.Size())
   {
     throw Standard_NullObject ("Poly_Triangulation::Normal : empty array or index out of range");
   }
 
-  gp_Dir N;
-  N.SetX(myNormals->Value(theIndex * 3 - 2));
-  N.SetY(myNormals->Value(theIndex * 3 - 1));
-  N.SetZ(myNormals->Value(theIndex * 3));
+  gp_Dir N(myNormals->Value(theIndex * 3 - 2),
+           myNormals->Value(theIndex * 3 - 1),
+           myNormals->Value(theIndex * 3));
 
   return N;
 }
index 8067078..a92e85d 100644 (file)
@@ -189,7 +189,7 @@ public:
 
   //! @return normal at the given index.
   //! Raises Standard_OutOfRange exception.
-  Standard_EXPORT const gp_Dir Normal (const Standard_Integer theIndex) const;
+  Standard_EXPORT gp_Dir Normal (const Standard_Integer theIndex) const;
 
   //! Changes normal at the given index.
   //! Raises Standard_OutOfRange exception.