]> OCCT Git - occt.git/commitdiff
0032471: Mesh - Deflection of the triangulation is not recomputed for planar face
authoroan <oan@opencascade.com>
Mon, 16 Jan 2023 11:59:52 +0000 (14:59 +0300)
committeroan <oan@opencascade.com>
Mon, 16 Jan 2023 11:59:52 +0000 (14:59 +0300)
Remove Poly_TriangulationParameters and API related to Poly_Triangulation in order to keep binary compatibility of dynamic libraries.

src/BRepMesh/BRepMesh_ModelPostProcessor.cxx
src/Poly/FILES
src/Poly/Poly_Triangulation.hxx
src/Poly/Poly_TriangulationParameters.cxx [deleted file]
src/Poly/Poly_TriangulationParameters.hxx [deleted file]
tests/bugs/iges/buc60823
tests/bugs/mesh/bug25503_1
tests/bugs/mesh/bug25503_2
tests/bugs/moddata_2/bug428

index 150c24e3f43d851961881337aafd980350a8f7cd..3ae35110a6431dea49afb89886f0ee1a25b8d501 100644 (file)
@@ -20,7 +20,6 @@
 #include <IMeshData_PCurve.hxx>
 #include <OSD_Parallel.hxx>
 #include <BRepLib.hxx>
-#include <Poly_TriangulationParameters.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(BRepMesh_ModelPostProcessor, IMeshTools_ModelAlgo)
 
@@ -165,11 +164,8 @@ namespace
   {
   public:
     //! Constructor
-    DeflectionEstimator (const Handle(IMeshData_Model)& theModel,
-                         const IMeshTools_Parameters&   theParams)
-      : myModel  (theModel)
-      , myParams (new Poly_TriangulationParameters (
-          theParams.Deflection, theParams.Angle, theParams.MinSize))
+    DeflectionEstimator (const Handle(IMeshData_Model)& theModel)
+      : myModel(theModel)
     {
     }
 
@@ -184,21 +180,11 @@ namespace
       }
 
       BRepLib::UpdateDeflection (aDFace->GetFace());
-
-      TopLoc_Location aLoc;
-      const Handle(Poly_Triangulation)& aTriangulation =
-        BRep_Tool::Triangulation (aDFace->GetFace(), aLoc);
-      
-      if (!aTriangulation.IsNull())
-      {
-        aTriangulation->Deflection(myParams->Deflection());
-      }
     }
 
   private:
 
-    Handle(IMeshData_Model)              myModel;
-    Handle(Poly_TriangulationParameters) myParams;
+    Handle(IMeshData_Model) myModel;
   };
 }
 
@@ -236,6 +222,6 @@ Standard_Boolean BRepMesh_ModelPostProcessor::performInternal(
 
   // Estimate deflection here due to BRepLib::EstimateDeflection requires
   // existence of both Poly_Triangulation and Poly_PolygonOnTriangulation.
-  OSD_Parallel::For (0, theModel->FacesNb(), DeflectionEstimator (theModel, theParameters), !theParameters.InParallel);
+  OSD_Parallel::For (0, theModel->FacesNb(), DeflectionEstimator (theModel), !theParameters.InParallel);
   return Standard_True;
 }
index 3ee889bab1c92eafc0c7877be1dcebaf8b1fae62..3d22dcd6b98f50fc05f62c73263744756230ee99 100755 (executable)
@@ -29,7 +29,5 @@ Poly_PolygonOnTriangulation.lxx
 Poly_Triangle.cxx
 Poly_Triangle.hxx
 Poly_Triangle.lxx
-Poly_TriangulationParameters.hxx
-Poly_TriangulationParameters.cxx
 Poly_Triangulation.cxx
 Poly_Triangulation.hxx
index dc7ec6bea3218e026cd3ffe510ee02c62e4e11fa..80670786f66a2ddf40a322d5156ab9339a3bf2b7 100644 (file)
@@ -34,8 +34,6 @@ class Standard_NullObject;
 
 
 class Poly_Triangulation;
-class Poly_TriangulationParameters;
-
 DEFINE_STANDARD_HANDLE(Poly_Triangulation, Standard_Transient)
 
 //! Provides a triangulation for a surface, a set of surfaces, or
@@ -108,12 +106,6 @@ public:
   //! Deallocates the UV nodes.
   Standard_EXPORT void RemoveUVNodes();
 
-  //! Returns initial set of parameters used to generate this triangulation.
-  //const Handle(Poly_TriangulationParameters)& Parameters() const { return myParams; }
-
-  //! Updates initial set of parameters used to generate this triangulation.
-  //void Parameters (const Handle(Poly_TriangulationParameters)& theParams) { myParams = theParams; }
-
   //! Returns the number of nodes for this triangulation.
   Standard_Integer NbNodes() const { return myNodes.Length(); }
 
@@ -212,7 +204,6 @@ protected:
   Poly_Array1OfTriangle              myTriangles;
   Handle(TShort_HArray1OfShortReal)  myNormals;
 
-  //Handle(Poly_TriangulationParameters) myParams;
 };
 
 #endif // _Poly_Triangulation_HeaderFile
diff --git a/src/Poly/Poly_TriangulationParameters.cxx b/src/Poly/Poly_TriangulationParameters.cxx
deleted file mode 100644 (file)
index 55b7ec0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// Created on: 2021-07-20
-// Copyright (c) 2021 OPEN CASCADE SAS
-// Created by: Oleg AGASHIN
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#include <Poly_TriangulationParameters.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT (Poly_TriangulationParameters, Standard_Transient)
diff --git a/src/Poly/Poly_TriangulationParameters.hxx b/src/Poly/Poly_TriangulationParameters.hxx
deleted file mode 100644 (file)
index 176d0ab..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// Created on: 2021-07-20
-// Copyright (c) 2021 OPEN CASCADE SAS
-// Created by: Oleg AGASHIN
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _Poly_TriangulationParameters_HeaderFile
-#define _Poly_TriangulationParameters_HeaderFile
-
-#include <Standard_Transient.hxx>
-#include <Standard_DefineHandle.hxx>
-
-//! Represents initial set of parameters triangulation is built for.
-class Poly_TriangulationParameters : public Standard_Transient
-{
-public:
-
-  //! Constructor.
-  //! Initializes object with the given parameters.
-  //! @param theDeflection linear deflection
-  //! @param theAngle angular deflection
-  //! @param theMinSize minimum size
-  Poly_TriangulationParameters (const Standard_Real theDeflection = -1.,
-                                const Standard_Real theAngle      = -1.,
-                                const Standard_Real theMinSize    = -1.)
-    : myDeflection (theDeflection)
-    , myAngle      (theAngle)
-    , myMinSize    (theMinSize)
-  {
-  }
-
-  //! Destructor.
-  virtual ~Poly_TriangulationParameters()
-  {
-  }
-
-  //! Returns true if linear deflection is defined.
-  Standard_Boolean HasDeflection() const
-  {
-    return !(myDeflection < 0.);
-  }
-
-  //! Returns true if angular deflection is defined.
-  Standard_Boolean HasAngle() const
-  {
-    return !(myAngle < 0.);
-  }
-
-  //! Returns true if minimum size is defined.
-  Standard_Boolean HasMinSize() const
-  {
-    return !(myMinSize < 0.);
-  }
-
-  //! Returns linear deflection or -1 if undefined.
-  Standard_Real Deflection() const
-  {
-    return myDeflection;
-  }
-
-  //! Returns angular deflection or -1 if undefined.
-  Standard_Real Angle() const
-  {
-    return myAngle;
-  }
-
-  //! Returns minimum size or -1 if undefined.
-  Standard_Real MinSize() const
-  {
-    return myMinSize;
-  }
-
-  DEFINE_STANDARD_RTTIEXT (Poly_TriangulationParameters, Standard_Transient)
-
-private:
-
-  Standard_Real myDeflection;
-  Standard_Real myAngle;
-  Standard_Real myMinSize;
-};
-
-DEFINE_STANDARD_HANDLE (Poly_TriangulationParameters, Standard_Transient)
-
-#endif
index 3a77f16a72e49641e02a276eb42510619e9ad847..b20f3bc60c9140fb4d20bc8a5d94364cc00b0aff 100755 (executable)
@@ -14,6 +14,6 @@ vdisplay result
 vsetdispmode result 1
 vfit
 
-checktrinfo result -tri 5656 -nod 4088
+checktrinfo result -tri 2711 -nod 2611
 
 checkview -display result -2d -path ${imagedir}/${test_image}.png
index 744889d3d3f94c3ece6831f24c617c12bef173d7..4e5d88af4720e70bf566f512670d347bec94ccb1 100644 (file)
@@ -10,10 +10,10 @@ puts "===> meshing segment of sphere"
 psphere a 100 -45 45 180
 puts ""
 puts "incmesh first time"
-set t1 [expr [lindex [time {incmesh a 0.003}] 0]/1000000]
+set t1 [expr [lindex [time {incmesh a 0.003 -a 1}] 0]/1000000]
 puts "spent $t1 sec"
 puts ""
 puts "incmesh second time"
-set t2 [expr [lindex [time {incmesh a 0.003}] 0]/1000000]
+set t2 [expr [lindex [time {incmesh a 0.003 -a 1}] 0]/1000000]
 puts "spent $t2 sec"
 if {$t2 != 0} {puts "Error: second time must be quicker"}
index b04b5217e3450abbff85f2e3ac1de77ee807feb5..73060c01c8f34f608a2a31287efc09e55fe2ea03 100755 (executable)
@@ -13,11 +13,11 @@ puts "===> meshing full sphere"
 psphere a 100
 puts ""
 puts "incmesh first time"
-set t3 [expr [lindex [time {incmesh a 0.015}] 0]/1000000]
+set t3 [expr [lindex [time {incmesh a 0.015 -a 1}] 0]/1000000]
 puts "spent $t3 sec"
 puts ""
 puts "incmesh second time"
-set t4 [expr [lindex [time {incmesh a 0.015}] 0]/1000000]
+set t4 [expr [lindex [time {incmesh a 0.015 -a 1}] 0]/1000000]
 puts "spent $t4 sec"
 if {$t4 != 0} {puts "Error: second time must be quicker"}
 puts ""
index b3c77b8c595658bc1389f4e2fa255f50d8036257..9f0cc66ca9c2732716ec9a700b0cc63a9bcf607c 100755 (executable)
@@ -20,5 +20,5 @@ isos result 0
 triangles result
 vfit
 
-checktrinfo result -tri !5496 -nod !5406
-checkview -screenshot -3d -path ${imagedir}/${test_image}.png
+checktrinfo result -tri 10924 -nod 7869
+checkview -screenshot -2d -path ${imagedir}/${test_image}_axo.png