diff --git a/src/BRepMesh/BRepMesh_ModelPostProcessor.cxx b/src/BRepMesh/BRepMesh_ModelPostProcessor.cxx index f8db005dba..417b413325 100644 --- a/src/BRepMesh/BRepMesh_ModelPostProcessor.cxx +++ b/src/BRepMesh/BRepMesh_ModelPostProcessor.cxx @@ -20,7 +20,6 @@ #include #include #include -#include 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; }; } @@ -238,6 +224,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; } diff --git a/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx b/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx index 60768143dd..baa9c15b50 100644 --- a/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx +++ b/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx @@ -23,7 +23,6 @@ #include #include #include -#include IMPLEMENT_STANDARD_RTTIEXT(BRepMesh_ModelPreProcessor, IMeshTools_ModelAlgo) @@ -56,15 +55,8 @@ namespace if (!aTriangulation.IsNull()) { - // If there is an info about initial parameters, use it due to deflection kept - // by Poly_Triangulation is generally an estimation upon generated mesh and can - // be either less or even greater than specified value. - const Handle(Poly_TriangulationParameters)& aSourceParams = aTriangulation->Parameters(); - const Standard_Real aDeflection = (!aSourceParams.IsNull() && aSourceParams->HasDeflection()) ? - aSourceParams->Deflection() : aTriangulation->Deflection(); - Standard_Boolean isTriangulationConsistent = - BRepMesh_Deflection::IsConsistent (aDeflection, + BRepMesh_Deflection::IsConsistent (aTriangulation->Deflection(), aDFace->GetDeflection(), myAllowQualityDecrease); diff --git a/src/Poly/FILES b/src/Poly/FILES index 0bb9271ee7..53661cd543 100755 --- a/src/Poly/FILES +++ b/src/Poly/FILES @@ -24,7 +24,5 @@ Poly_Polygon3D.hxx Poly_PolygonOnTriangulation.cxx Poly_PolygonOnTriangulation.hxx Poly_Triangle.hxx -Poly_TriangulationParameters.hxx -Poly_TriangulationParameters.cxx Poly_Triangulation.cxx Poly_Triangulation.hxx diff --git a/src/Poly/Poly_Triangulation.hxx b/src/Poly/Poly_Triangulation.hxx index 0c38327e3b..0465962bba 100644 --- a/src/Poly/Poly_Triangulation.hxx +++ b/src/Poly/Poly_Triangulation.hxx @@ -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(); } @@ -215,7 +207,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 index 55b7ec025c..0000000000 --- a/src/Poly/Poly_TriangulationParameters.cxx +++ /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 - -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 index 176d0abba7..0000000000 --- a/src/Poly/Poly_TriangulationParameters.hxx +++ /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 -#include - -//! 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 diff --git a/tests/bugs/iges/buc60823 b/tests/bugs/iges/buc60823 index b20f3bc60c..3f06658a10 100755 --- a/tests/bugs/iges/buc60823 +++ b/tests/bugs/iges/buc60823 @@ -14,6 +14,6 @@ vdisplay result vsetdispmode result 1 vfit -checktrinfo result -tri 2711 -nod 2611 +checktrinfo result -tri 2709 -nod 2610 checkview -display result -2d -path ${imagedir}/${test_image}.png diff --git a/tests/bugs/mesh/bug25503_1 b/tests/bugs/mesh/bug25503_1 index 744889d3d3..4e5d88af47 100644 --- a/tests/bugs/mesh/bug25503_1 +++ b/tests/bugs/mesh/bug25503_1 @@ -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"} diff --git a/tests/bugs/mesh/bug25503_2 b/tests/bugs/mesh/bug25503_2 index a33411a9b3..71a5de423c 100755 --- a/tests/bugs/mesh/bug25503_2 +++ b/tests/bugs/mesh/bug25503_2 @@ -8,11 +8,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 "" diff --git a/tests/bugs/moddata_2/bug428 b/tests/bugs/moddata_2/bug428 index 7140f02607..874bbd5809 100755 --- a/tests/bugs/moddata_2/bug428 +++ b/tests/bugs/moddata_2/bug428 @@ -19,5 +19,5 @@ isos result 0 triangles result fit -checktrinfo result -tri 10924 -nod 7869 +checktrinfo result -tri 10929 -nod 7874 checkview -screenshot -2d -path ${imagedir}/${test_image}_axo.png