View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0029059 | Open CASCADE | OCCT:Modeling Algorithms | public | 2017-08-28 09:33 | 2021-06-26 12:01 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.1.0 | ||||
Target Version | 7.6.0 | Fixed in Version | 7.6.0 | ||
Summary | 0029059: Modeling Algorithms - It is necessary to have a unique way of checking of the validity of the edge and its 2D curves | ||||
Description | Currently, at least three such checks are implemented in OCCT: 1. In BRepCheck_Edge; 2. In Boolean Operations - BOPTools_AlgoTools (the check is a copy of the check implemented in BRepCheck_Edge); 3. In ShapeAnalysis_Edge. It is necessary to unify all these checks in one place (BRepLib package looks ideal for this) and replace the current checks with the usage of the unified one. It will allow avoiding errors due to inconsistency between similar checks and will help to maintain it easily. | ||||
Steps To Reproduce | not exist | ||||
Tags | No tags attached. | ||||
Test case number | Not required | ||||
related to | 0026365 | closed | bugmaster | Open CASCADE | Optimization of work of OSD_Parallel class members for GeomLib_CheckCurveOnSurface |
related to | 0032398 | closed | bugmaster | Open CASCADE | Draw - cpulimit does not always work on hanging test cases |
related to | 0032448 | closed | Open CASCADE | Modeling Algorithms - Provide exact validating (as option) using GeomLib_CheckCurveOnSurface | |
related to | 0032450 | closed | bugmaster | Open CASCADE | Modeling Algorithms - change BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface interfaces to adaptors |
|
Analyze and estimate the issue, please. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Branch CR29059 has been created by asuraven. SHA-1: bef364518656a1afededd8ddbaa0fe155391f647 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059 has been updated by asuraven. SHA-1: 5dee243e6f2e6e73bc2bc53d2e789f8df8c57a53 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 20:23:37 2021 +0300 debug changes |
|
|
|
Branch CR29059 has been deleted by asuraven. SHA-1: 5dee243e6f2e6e73bc2bc53d2e789f8df8c57a53 |
|
Branch CR29059 has been created by asuraven. SHA-1: 9ca1b26415806cb8a46f4eac42387ea32a6bcb5a Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059 has been updated by asuraven. SHA-1: a5f32c4386e57dc4da8f1827176eed7177011508 Detailed log of new commits: Author: asuraven Date: Fri Apr 30 17:57:45 2021 +0300 debug |
|
Branch CR29059 has been updated by asuraven. SHA-1: 54418a5cfedd5b57daa7241745311b9052e609da Detailed log of new commits: Author: asuraven Date: Fri Apr 30 19:24:51 2021 +0300 debug |
|
|
|
Branch CR29059_1 has been created by asuraven. SHA-1: 5b21e1ec1b8cf3535deccf42e0b4a38eb86ba6ee Detailed log of new commits: Author: asuraven Date: Tue May 4 18:22:19 2021 +0300 debug |
|
Branch CR29059_1 has been deleted by asuraven. SHA-1: 5b21e1ec1b8cf3535deccf42e0b4a38eb86ba6ee |
|
Branch CR29059_1 has been created by asuraven. SHA-1: 514180b263892097b66d148269cf0e5024a3aa90 Detailed log of new commits: Author: asuraven Date: Tue May 4 18:22:19 2021 +0300 debug Author: asuraven Date: Fri Apr 30 17:57:45 2021 +0300 debug Author: asuraven Date: Fri Apr 30 19:24:51 2021 +0300 debug Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059 has been deleted by asuraven. SHA-1: 54418a5cfedd5b57daa7241745311b9052e609da |
|
Branch CR29059 has been created by asuraven. SHA-1: ef04985b840d7588b44c12a1c508af5c08e89587 Detailed log of new commits: Author: asuraven Date: Tue May 4 19:58:16 2021 +0300 debug Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Author: asuraven Date: Fri Apr 30 17:57:45 2021 +0300 debug Author: asuraven Date: Fri Apr 30 19:24:51 2021 +0300 debug |
|
|
|
Branch CR29059 has been deleted by asuraven. SHA-1: ef04985b840d7588b44c12a1c508af5c08e89587 |
|
Branch CR29059 has been created by asuraven. SHA-1: 6a43679b3668a6d96ea897457ea8dbe9c6162a3a Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059 has been updated by asuraven. SHA-1: c87200280608bfb7b0f49140995513b68ffd0a14 Detailed log of new commits: Author: asuraven Date: Wed May 5 12:12:49 2021 +0300 0029059: Exclude old code |
|
|
|
Branch CR29059 has been deleted by asuraven. SHA-1: c87200280608bfb7b0f49140995513b68ffd0a14 |
|
Branch CR29059 has been created by asuraven. SHA-1: 3d6494e42c04656e99e6dfd3af6a9b3a0fc2ff64 Detailed log of new commits: Author: asuraven Date: Wed May 5 12:12:49 2021 +0300 0029059: Exclude old code Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059_2 has been created by asuraven. SHA-1: 779adf61db82bee4898595a610046fdb8a7f92c4 Detailed log of new commits: Author: asuraven Date: Wed May 5 21:35:39 2021 +0300 debug |
|
|
|
Branch CR29059_2 has been updated by asuraven. SHA-1: 28bb8c732fc6a6c338a708448397a861c4bec679 Detailed log of new commits: Author: asuraven Date: Fri May 7 10:44:28 2021 +0300 debug |
|
Branch CR29059_3 has been created by asuraven. SHA-1: 5aa8f2af014ab895eecbb9e4b7804567cf950f08 Detailed log of new commits: Author: asuraven Date: Fri May 7 16:17:11 2021 +0300 BRepLib_ValidateEdge class |
|
Branch CR29059_3 has been updated by asuraven. SHA-1: 14591cad585dd854c5d9462b269dbd69eb63ebf4 Detailed log of new commits: Author: asuraven Date: Fri May 7 19:04:35 2021 +0300 fix for unix |
|
|
|
Branch CR29059_3 has been updated by asuraven. SHA-1: b7233c678d15226dfee6e8fb169ad34a0b370df6 Detailed log of new commits: Author: asuraven Date: Fri May 7 21:08:55 2021 +0300 fix for unix + 1 exact method |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: b7233c678d15226dfee6e8fb169ad34a0b370df6 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: b340f72e4ace7979f5d9f469b81cf5e9d2229daf Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059_3 has been updated by asuraven. SHA-1: cfdbed86ac03a19b38a7ab0d49c4d0851914dcde Detailed log of new commits: Author: asuraven Date: Sat May 8 11:25:33 2021 +0300 Exclude old code |
|
Branch CR29059_4 has been created by asuraven. SHA-1: 40aef9da442a65e5a994d9e42d81a8c366e35d3f Detailed log of new commits: Author: asuraven Date: Sun May 9 13:33:24 2021 +0300 using of exact method |
|
Branch CR29059_4 has been updated by asuraven. SHA-1: 46822041b21a90281af774b09f5a58eb16b50b59 Detailed log of new commits: Author: asuraven Date: Mon May 10 17:00:17 2021 +0300 fix |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: cfdbed86ac03a19b38a7ab0d49c4d0851914dcde |
|
Branch CR29059_3 has been created by asuraven. SHA-1: c2dc72b45e62fded0ec78f772263bdbbd772da8e Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
Branch CR29059_4 has been deleted by asuraven. SHA-1: 46822041b21a90281af774b09f5a58eb16b50b59 |
|
Branch CR29059_4 has been created by asuraven. SHA-1: 67ef0a940c60d647dc0fa54ec2cfdb885ea0c83e Detailed log of new commits: Author: asuraven Date: Sun May 9 13:33:24 2021 +0300 using of exact method Author: asuraven Date: Sat May 8 11:25:33 2021 +0300 Exclude old code Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059_4 has been deleted by asuraven. SHA-1: 67ef0a940c60d647dc0fa54ec2cfdb885ea0c83e |
|
Branch CR29059_4 has been created by asuraven. SHA-1: cd0aac1a0a492ff5ff81d4207f3b070a9357ced2 Detailed log of new commits: Author: asuraven Date: Tue May 11 13:30:59 2021 +0300 fix Author: asuraven Date: Sun May 9 13:33:24 2021 +0300 using of exact method Author: asuraven Date: Sat May 8 11:25:33 2021 +0300 Exclude old code Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Branch CR29059_4 has been deleted by asuraven. SHA-1: cd0aac1a0a492ff5ff81d4207f3b070a9357ced2 |
|
Branch CR29059_4 has been created by asuraven. SHA-1: 1b38e44c2cdfc11ce1486e5e6070cb08d62733fe Detailed log of new commits: Author: asuraven Date: Sun May 9 13:33:24 2021 +0300 using of exact method Author: asuraven Date: Sat May 8 11:25:33 2021 +0300 Exclude old code Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
|
Dear Michael! Please consider the variants of the issue solution. The Branch CR29059_3 contains solution with fixed points count checking implemented in new BRepLib_ValidateEdge class. This solution passed all tests: http://jenkins-test-occt.nnov.opencascade.com/view/CR29059_3-master-ASURAVEN/view/COMPARE/ The Branch CR29059_4 containts exact checking solution using GeomLib_CheckCurveOnSurface/BrepmLib_CheckCurveOnSurface classes. This solution contains a lot of failed tests and full report not generated for this reason. See set of reports in \\ownCloud\OCCT\Issues\0029059 29059_tests_results.7z file. Please carefully check my using of _CheckCurveOnSurface classes in last CR29059_4 commit because so many failed tests in this branch. |
|
|
|
Branch CR29059_3 has been updated by asuraven. SHA-1: d40e3b72c1a7b28b7583bce4a293b0e1907edc8e Detailed log of new commits: Author: asuraven Date: Thu May 20 14:35:10 2021 +0300 remarks |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: d40e3b72c1a7b28b7583bce4a293b0e1907edc8e |
|
Branch CR29059_3 has been created by asuraven. SHA-1: 246e2e587e1e3cb53660799eff01d61cd79cf1f5 Detailed log of new commits: Author: asuraven Date: Thu May 20 14:35:10 2021 +0300 remarks Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: 246e2e587e1e3cb53660799eff01d61cd79cf1f5 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: aa298f1809a7d4b441f73e833e99605af573e7b3 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
|
|
Branch CR29059_5 has been created by asuraven. SHA-1: ecec33f93b4ee8815db83603500ffd04f451c1a0 Detailed log of new commits: Author: asuraven Date: Fri May 21 19:29:36 2021 +0300 Modify _CheckCurveOnSurface, add exact method to BRepLib_ValidateEdge |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: aa298f1809a7d4b441f73e833e99605af573e7b3 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: 401509a09cb2fe392228178504b5e6057ae29da6 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
Branch CR29059_5 has been deleted by asuraven. SHA-1: ecec33f93b4ee8815db83603500ffd04f451c1a0 |
|
Branch CR29059_5 has been created by asuraven. SHA-1: b5e95e151c796ca24c35e809af077bfad8f5b8ee Detailed log of new commits: Author: asuraven Date: Fri May 21 19:29:36 2021 +0300 Modify _CheckCurveOnSurface, add exact method to BRepLib_ValidateEdge |
|
Branch CR29059_5 has been deleted by asuraven. SHA-1: b5e95e151c796ca24c35e809af077bfad8f5b8ee |
|
Branch CR29059_5 has been created by asuraven. SHA-1: ba92e49d1e2152b60ebf8745223a71034f939c51 Detailed log of new commits: Author: asuraven Date: Fri May 21 19:29:36 2021 +0300 Modify _CheckCurveOnSurface, add exact method to BRepLib_ValidateEdge |
|
|
|
Branch CR29059_5 has been updated by asuraven. SHA-1: ba37e6c2986e53148b51c2f22f2457a46b058cf4 Detailed log of new commits: Author: asuraven Date: Tue May 25 11:16:56 2021 +0300 fix by remarks |
|
src/BRepCheck/BRepCheck_Edge.cxx:405BRepLib_ValidateEdge aBRepLib_ValidateEdgeOnClosedSurface(myHCurve, ACS, SameParameter); aBRepLib_ValidateEdge.SetExactMathod(Standard_False); aBRepLib_ValidateEdge.SetExitIfToleranceExceeded(Tol); aBRepLib_ValidateEdgeOnClosedSurface.Process(); if (!aBRepLib_ValidateEdge.IsDone() || !aBRepLib_ValidateEdgeOnClosedSurface.CheckTolerance(Tol)) SetExactMathod, SetExitIfToleranceExceeded and IsDone are called for another instance. Please make variable names shorter. The new variable aBRepLib_ValidateEdge in the line 465 hides the same name in upper scope. It can cause the compiler warning. src/BRepLib/BRepLib_CheckCurveOnSurface.hxx isTheMultyTheradDisabled Invert the meaning of this parameter as you made in GeomLib_CheckCurveOnSurface. And correct the mistake "Therad" -> "Thread". src/BRepLib/BRepLib_CheckCurveOnSurface.cxx const Handle(Adaptor3d_Curve) anAdaptor3dCurve = new BRepAdaptor_Curve(theEdge, theFace); It is incorrect. This method will use pcurve of edge on face. You need the method without face. const Handle(Geom_Curve)& aC3dTmp = BRep_Tool::Curve(theEdge, aLocation, aFirstCurveOnSurfaceParam, aLastCurveOnSurfaceParam); This variable is not used. Handle(Geom_Surface) aTransformedGeomSurface = Handle(Geom_Surface):: DownCast(aGeomSurface->Transformed(aLocation.Transformation())); aGeomSurface is not initialized with BRep_Tool::Surface. Use BRep_Tool::Surface with the only parameter face in order to get already transformed surface. BRep_Tool::CurveOnSurface(TopoDS::Edge(theEdge.Reversed()), aGeom2dReversedCurve, aGeomSurface2, aLocation2, aFirstReverseParam, aLastReverseParam); Handle(Geom_Surface) aTransformedGeomSurface2 = Handle(Geom_Surface):: DownCast(aGeomSurface2->Transformed(aLocation2.Transformation())); Do not use this method CurveOnSurface(). Use the similar method as for the first curve but with reversed edge. Do not get another surface, as you have already got the surface, and it is the same. Handle(GeomAdaptor_Surface) aGeomAdaptorReversedSurface = new GeomAdaptor_Surface(aGeomSurface2); You do not need another surface. |
|
In the description of the class BRepLib_CheckCurveOnSurface it is needed to state that it is not intended to process non-sameparameter edges. src/BRepLib/BRepLib_ValidateEdge.hxx //! Computes the max distance between 3D-curve and curve on //! surface in fixed points number Update class description. Now it computes using one of two methods. //! using exact method alwais computes real max distance. Correct "alwais" -> "always" Standard_Integer myContrloPointsNumber; Correct myContrloPointsNumber -> myControlPointsNumber src/BRepLib/BRepLib_ValidateEdge.cxx //============================================================================= //function : CorrectTolerance //purpose : //============================================================================= void BRepLib_ValidateEdge::UpdateTolerance(Standard_Real& theToleranceToUpdate) Correct the name in the header. if (myExitIfToleranceExceeded && aMaxSquareDistance > aSquareToleranceForChecking) { return; } Must update myCalculatedDistance before return. |
|
src/IntTools/IntTools_Tools.cxx const Handle(Adaptor3d_Curve) aGeomAdaptorCurve = new GeomAdaptor_Curve(theCurve3D); Use theFirst, theLast to restrict the curve. src/BOPTools/BOPTools_AlgoTools_1.cxx BRepLib_ValidateEdge aBRepLib_ValidateEdgeOnClosedSurface(myHCurve, ACS, SameParameter); aBRepLib_ValidateEdgeOnClosedSurface.Process(); aBRepLib_ValidateEdgeOnClosedSurface.UpdateTolerance(aNewTolerance); if (aBRepLib_ValidateEdge.IsDone() && !aBRepLib_ValidateEdgeOnClosedSurface.CheckTolerance(Tol)) IsDone is called for another instance. The new variable aBRepLib_ValidateEdge in the line 918 hides the same name in upper scope. It can cause the compiler warning. src/BRepLib/BRepLib.hxx The changes here look not needed. |
|
Branch CR29059_5 has been updated by asuraven. SHA-1: 5ca3c5935f8e0ee9fc0da3f2704aac072110ad6d Detailed log of new commits: Author: asuraven Date: Wed May 26 12:48:34 2021 +0300 fix by remarks 2 |
|
remarks fixed |
|
src/BRepLib/BRepLib_CheckCurveOnSurface.cxxHandle(Geom_Surface) aGeomSurface2; TopLoc_Location aLocation2; They are not used. src/BRepLib/BRepLib_ValidateEdge.hxx Standard_EXPORT void SetContrloPointsNumber(Standard_Integer theContrloPointsNumber) { myContrlPointsNumber = theContrloPointsNumber; } ... Standard_Integer myContrlPointsNumber; Correct 'Contrlo', 'Contrl' -> 'Control' Correct the name 'isTheMultyTheadDisabled' in comments of the headers GeomLib_CheckCurveOnSurface.hxx and BRepLib_CheckCurveOnSurface.hxx to the actual name. And update the sense of the corresponding comments. |
|
Branch CR29059_5 has been deleted by asuraven. SHA-1: 5ca3c5935f8e0ee9fc0da3f2704aac072110ad6d |
|
Branch CR29059_5 has been created by asuraven. SHA-1: 4ae1a6422626601f978f4e2fa5c3a129bb4d0159 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() Also BRepLib_ValidateEdge provides exact validating (by default) using GeomLib_CheckCurveOnSurface class Perform(const Standard_Boolean isTheMultyTheradDisabled = Standard_False) parameter changed for better understanding to (const Standard_Boolean isMultyThread = Standard_True) in BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes Interfaces of BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes changed from geometry to adaptors |
|
remarks fixed. Branch CR29059_5 has been combined to one commit. Tests are running |
|
Branch CR29059_6 has been created by asuraven. SHA-1: 94f1a38662dd1aa56cc5ed98c01796af1c3f10fa Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() Also BRepLib_ValidateEdge provides exact validating (as option) using GeomLib_CheckCurveOnSurface class Perform(const Standard_Boolean isTheMultyTheradDisabled = Standard_False) parameter changed for better understanding to (const Standard_Boolean isMultyThread = Standard_True) in BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes Interfaces of BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes changed from geometry to adaptors |
|
Branch CR29059_6 has been updated by asuraven. SHA-1: 6f0a893e0b66bf16dec3dc8c61f8e91e5226551e Detailed log of new commits: Author: asuraven Date: Fri May 28 13:55:17 2021 +0300 fix |
|
Branch CR29059_6 has been deleted by asuraven. SHA-1: 6f0a893e0b66bf16dec3dc8c61f8e91e5226551e |
|
Branch CR29059_6 has been created by asuraven. SHA-1: 5fea67098f532c34189708c77b6e48f91b5cad16 Detailed log of new commits: Author: asuraven Date: Fri May 28 13:55:17 2021 +0300 fix Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() Also BRepLib_ValidateEdge provides exact validating (as option) using GeomLib_CheckCurveOnSurface class Perform(const Standard_Boolean isTheMultyTheradDisabled = Standard_False) parameter changed for better understanding to (const Standard_Boolean isMultyThread = Standard_True) in BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes Interfaces of BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes changed from geometry to adaptors |
|
It needs to do the following: - Complete this issue using branch CR29059_3 taking into account the MSV remarks for other branches - Create separate issue to provides exact validating (as option) using GeomLib_CheckCurveOnSurface class using branch CR29059_6 - Create separate issue to change of BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes from geometry to adaptors using branch CR29059_6. - Because adaptors classes aren’t thread safe, solve this problem in relation to previous issue. As possible solution provide thread safety for them using separate cash for every thread |
|
|
|
|
|
Branch CR29059_6 has been deleted by asuraven. SHA-1: 5fea67098f532c34189708c77b6e48f91b5cad16 |
|
Branch CR29059_6 has been created by asuraven. SHA-1: bae1df0463cc8367ae837fd44ee20b5db6bc4f7d Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() Also BRepLib_ValidateEdge provides exact validating (as option) using GeomLib_CheckCurveOnSurface class Perform(const Standard_Boolean isTheMultyTheradDisabled = Standard_False) parameter changed for better understanding to (const Standard_Boolean isMultyThread = Standard_True) in BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes Interfaces of BRepLib_CheckCurveOnSurface & GeomLib_CheckCurveOnSurface classes changed from geometry to adaptors |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: 401509a09cb2fe392228178504b5e6057ae29da6 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: cb28ec4bf492283cf77bb4ca3d354391489ec933 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to edge checking to use instead function: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
|
|
The issue completed in brach CR29059_3 using only finite number of point’s method. Tests results are here: http://jenkins-test-occt.nnov.opencascade.com/view/CR29059_3-master-ASURAVEN/view/COMPARE/ Dear Michael, please review the branch CR29059_3 |
|
src/BOPTools/BOPTools_AlgoTools_1.cxx src/BRepCheck/BRepCheck_Edge.cxx #include <BRepLib.hxx> This include seems to be not used. src/BRepOffset/BRepOffset_SimpleOffset.cxx BRepLib_ValidateEdge aBRepLib_ValidateEdge(aCurve3d, aCurveOnSurf, Standard_True); Rename aBRepLib_ValidateEdge -> aValidateEdge. Standard_Real aMaxTol1 = aBRepLib_ValidateEdge.GetMaxDistance(); Move this definition under the condition aBRepLib_ValidateEdge.IsDone(). src/ShapeAnalysis/ShapeAnalysis_Edge.cxx BRepLib_ValidateEdge aBRepLib_ValidateEdge(aGAC, ACS, SameParameter); Rename aBRepLib_ValidateEdge -> aValidateEdge. BRepLib_ValidateEdge aBRepLib_ValidateEdge(aGAC, ACS, Standard_True); Why Standard_True is used instead of SameParameter? src/BRepLib/BRepLib_ValidateEdge.hxx //! Sets limit to compute a distance in the Process() function. If the distance greater than //! theToleranceForChecking the Process() function stopped. Use this in case checking of //! tolerance for best performcnce Better text: //! Sets the maximal allowed distance in the Process() function. If the distance greater than //! theToleranceForChecking the Process() function stops. Use this for best performance //! in case of checking of tolerance. //! function was called before <myCalculatedDistance> containts first Misprint "containts" //! Returns true if compute distance less than <theToleranceToCheck> "compute distance less" -> "computed distance is less" //! Increace <theToleranceToUpdate> if max distance is greater than <theToleranceToUpdate> Misprint "Increace" src/BRepLib/BRepLib_ValidateEdge.cxx Remove first empty line. Standard_Real aCurvePrecition = BRepCheck::PrecCurve(*myReferenceCurve); Standard_Real aSurfacePrecition = BRepCheck::PrecSurface(aSurface); Correct "Precition" -> "Precision" myCalculatedDistance = sqrt(aMaxSquareDistance); Use OCCT function Sqrt(). In commit message: Add new class BRepLib_ValidateEdge to edge checking to use instead function: Change to Add new class BRepLib_ValidateEdge to use for edge checking instead of functions: |
|
New warning: BRepLib_ValidateEdge.hxx:80:8: warning: extra tokens at end of #endif directive |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: cb28ec4bf492283cf77bb4ca3d354391489ec933 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: 1d1f762f20fdf2e09d61586c8155227883b8345a Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to use for edge checking instead of functions: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: 1d1f762f20fdf2e09d61586c8155227883b8345a |
|
Branch CR29059_3 has been created by asuraven. SHA-1: 6559c4b3c900954b41a16a30ce94c37793490326 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to use for edge checking instead of functions: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
|
|
fixed, rebased, tested Test results: http://jenkins-test-occt.nnov.opencascade.com/view/CR29059_3-master-ASURAVEN/view/COMPARE/ |
|
--- /dev/null +++ b/src/BRepLib/BRepLib_ValidateEdge.cxx ... + + +#include <Adaptor3d_Curve.hxx> +#include <Adaptor3d_CurveOnSurface.hxx> +#include <BRepCheck.hxx> +#include <BRepLib_ValidateEdge.hxx> It is recommended including class header first in .cxx file (to detect mistakes with incomplete declarations). + Standard_EXPORT void SetControlPointsNumber(Standard_Integer theControlPointsNumber) + { + myControlPointsNumber = theControlPointsNumber; + } ... + Standard_EXPORT Standard_Boolean IsDone() + { + return myIsDone; + } ... ? Inlined methods should not have Standard_EXPORT attribute. +private: + //! Adds some margin for distance checking + Standard_Real CorrectTolerance(Standard_Real theTolerance); + + Handle(Adaptor3d_Curve) myReferenceCurve; Class fields should be separated into a dedicated private:/public: section. It is recommended starting private methods with a lower-case. - const Standard_Boolean isTheMultyTheradDisabled = Standard_False); + const Standard_Boolean isMultyThread = Standard_True); Multy -> Multi. Make sure that reversing logic of the argument is justified and doesn't lead to logical mistakes in existing code. |
|
Andrey, check logic of the parameter theToRunParallel in IntTools_Tools.cxx:aCS.Perform (theCurve2D, !theToRunParallel); |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: 6559c4b3c900954b41a16a30ce94c37793490326 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: 06a830188ce1892262b51881c48c170266ec7993 Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to use for edge checking instead of functions: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
fixed, tested http://jenkins-test-occt/view/CR29059_3-master-ASURAVEN/view/COMPARE/ |
|
Multy -> Multi was corrected not everywhere. |
|
Branch CR29059_3 has been deleted by asuraven. SHA-1: 06a830188ce1892262b51881c48c170266ec7993 |
|
Branch CR29059_3 has been created by asuraven. SHA-1: bbd032aac9343259e832b75487cb1bc57feaf6dd Detailed log of new commits: Author: asuraven Date: Wed Apr 28 12:06:39 2021 +0300 0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to use for edge checking instead of functions: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
|
fixed |
|
Please raise CR29059_3 into occt. |
|
Combination - OCCT branch : IR-2021-06-25 master SHA - 73dee811331a959f807c8264d295f05f441c8218 a87b7ddc8cb44606b91e3f37113847c3f5f50fdc Products branch : IR-2021-06-25 SHA - eca8d7ed97b918b2f5ea5d9d6e54f6ca4db4e9df was compiled on Linux, MacOS and Windows platforms and tested in optimize mode. Number of compiler warnings: No new/fixed warnings Regressions/Differences/Improvements: No regressions/differences CPU differences: Debian80-64: OCCT Total CPU difference: 17457.040000000452 / 17401.81000000044 [+0.32%] Products Total CPU difference: 11511.540000000101 / 11508.180000000091 [+0.03%] Windows-64-VC14: OCCT Total CPU difference: 19236.53125 / 19191.4375 [+0.23%] Products Total CPU difference: 12832.328125 / 12883.6875 [-0.40%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR29059 has been deleted by mnt. SHA-1: 3d6494e42c04656e99e6dfd3af6a9b3a0fc2ff64 |
|
Branch CR29059_1 has been deleted by mnt. SHA-1: 514180b263892097b66d148269cf0e5024a3aa90 |
|
Branch CR29059_2 has been deleted by mnt. SHA-1: 28bb8c732fc6a6c338a708448397a861c4bec679 |
|
Branch CR29059_3 has been deleted by mnt. SHA-1: bbd032aac9343259e832b75487cb1bc57feaf6dd |
|
Branch CR29059_4 has been deleted by mnt. SHA-1: 1b38e44c2cdfc11ce1486e5e6070cb08d62733fe |
|
Branch CR29059_5 has been deleted by mnt. SHA-1: 4ae1a6422626601f978f4e2fa5c3a129bb4d0159 |
|
Branch CR29059_6 has been deleted by mnt. SHA-1: bae1df0463cc8367ae837fd44ee20b5db6bc4f7d |
occt: master c9337e33 2021-04-28 09:06:39
Committer: bugmaster Details Diff |
0029059: It is necessary to have a unique way of checking of the validity of the edge and its 2D curves Add new class BRepLib_ValidateEdge to use for edge checking instead of functions: - Validate() from BOPTools_AlgoTools.cxx - Validate() from BRepCheck_Edge.cxx - ShapeAnalysis_Edge::ComputeDeviation() |
Affected Issues 0029059 |
|
mod - src/BOPTools/BOPTools_AlgoTools_1.cxx | Diff File | ||
mod - src/BRepCheck/BRepCheck_Edge.cxx | Diff File | ||
mod - src/BRepFill/BRepFill_AdvancedEvolved.cxx | Diff File | ||
mod - src/BRepLib/BRepLib_CheckCurveOnSurface.cxx | Diff File | ||
mod - src/BRepLib/BRepLib_CheckCurveOnSurface.hxx | Diff File | ||
add - src/BRepLib/BRepLib_ValidateEdge.cxx | Diff File | ||
add - src/BRepLib/BRepLib_ValidateEdge.hxx | Diff File | ||
mod - src/BRepLib/FILES | Diff File | ||
mod - src/BRepOffset/BRepOffset_SimpleOffset.cxx | Diff File | ||
mod - src/GeomLib/GeomLib_CheckCurveOnSurface.cxx | Diff File | ||
mod - src/GeomLib/GeomLib_CheckCurveOnSurface.hxx | Diff File | ||
mod - src/IntTools/IntTools_Tools.cxx | Diff File | ||
mod - src/ShapeAnalysis/ShapeAnalysis_Edge.cxx | Diff File | ||
mod - src/ShapeAnalysis/ShapeAnalysis_Edge.hxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-08-28 09:33 |
|
New Issue | |
2017-08-28 09:33 |
|
Assigned To | => msv |
2019-08-12 16:43 |
|
Target Version | 7.4.0 => 7.5.0 |
2020-09-14 22:55 |
|
Target Version | 7.5.0 => 7.6.0 |
2021-04-16 10:02 |
|
Note Added: 0100330 | |
2021-04-16 10:02 |
|
Assigned To | msv => asuraven |
2021-04-16 10:02 |
|
Status | new => assigned |
2021-04-16 15:03 |
|
Note Added: 0100340 | |
2021-04-16 16:34 |
|
Note Edited: 0100340 | |
2021-04-19 15:08 |
|
Note Added: 0100451 | |
2021-04-21 17:17 |
|
Relationship added | related to 0026365 |
2021-04-23 12:22 |
|
Note Added: 0100523 | |
2021-04-23 12:32 |
|
Note Added: 0100526 | |
2021-04-26 10:20 |
|
Note Edited: 0100526 | |
2021-04-26 10:20 |
|
Note Edited: 0100523 | |
2021-04-26 10:21 |
|
Note Added: 0100585 | |
2021-04-27 18:48 |
|
Note Added: 0100622 | |
2021-04-28 12:38 | git | Note Added: 0100636 | |
2021-04-28 20:23 | git | Note Added: 0100645 | |
2021-04-29 11:52 |
|
Note Added: 0100658 | |
2021-04-29 19:11 | git | Note Added: 0100672 | |
2021-04-29 19:11 | git | Note Added: 0100673 | |
2021-04-30 17:57 | git | Note Added: 0100704 | |
2021-04-30 20:39 | git | Note Added: 0100711 | |
2021-04-30 20:56 |
|
Note Added: 0100712 | |
2021-05-04 18:22 | git | Note Added: 0100768 | |
2021-05-04 18:50 | git | Note Added: 0100769 | |
2021-05-04 18:51 | git | Note Added: 0100770 | |
2021-05-04 19:57 | git | Note Added: 0100771 | |
2021-05-04 19:59 | git | Note Added: 0100772 | |
2021-05-04 19:59 |
|
Note Added: 0100773 | |
2021-05-05 11:04 | git | Note Added: 0100775 | |
2021-05-05 11:04 | git | Note Added: 0100776 | |
2021-05-05 12:12 | git | Note Added: 0100778 | |
2021-05-05 13:08 |
|
Note Added: 0100779 | |
2021-05-05 16:32 | git | Note Added: 0100785 | |
2021-05-05 16:32 | git | Note Added: 0100786 | |
2021-05-05 21:35 | git | Note Added: 0100792 | |
2021-05-06 12:28 |
|
Note Added: 0100794 | |
2021-05-07 10:44 | git | Note Added: 0100809 | |
2021-05-07 16:16 | git | Note Added: 0100818 | |
2021-05-07 19:04 | git | Note Added: 0100820 | |
2021-05-07 20:32 |
|
Note Added: 0100822 | |
2021-05-07 21:08 | git | Note Added: 0100823 | |
2021-05-08 10:38 | git | Note Added: 0100824 | |
2021-05-08 10:38 | git | Note Added: 0100825 | |
2021-05-08 11:25 | git | Note Added: 0100826 | |
2021-05-09 13:32 | git | Note Added: 0100834 | |
2021-05-10 16:59 | git | Note Added: 0100856 | |
2021-05-10 18:26 | git | Note Added: 0100858 | |
2021-05-10 18:59 | git | Note Added: 0100859 | |
2021-05-10 20:40 | git | Note Added: 0100860 | |
2021-05-10 20:40 | git | Note Added: 0100861 | |
2021-05-11 13:30 | git | Note Added: 0100875 | |
2021-05-11 13:30 | git | Note Added: 0100876 | |
2021-05-11 13:31 | git | Note Added: 0100877 | |
2021-05-11 15:11 | git | Note Added: 0100880 | |
2021-05-11 21:12 |
|
Note Added: 0100894 | |
2021-05-11 21:15 |
|
Note Edited: 0100894 | |
2021-05-11 21:47 |
|
Assigned To | asuraven => msv |
2021-05-20 14:02 |
|
Note Added: 0101205 | |
2021-05-20 14:34 | git | Note Added: 0101208 | |
2021-05-20 19:42 | git | Note Added: 0101218 | |
2021-05-20 19:42 | git | Note Added: 0101219 | |
2021-05-21 11:05 | git | Note Added: 0101225 | |
2021-05-21 11:06 | git | Note Added: 0101226 | |
2021-05-21 16:12 |
|
Note Added: 0101240 | |
2021-05-21 19:29 | git | Note Added: 0101245 | |
2021-05-24 09:44 | git | Note Added: 0101300 | |
2021-05-24 09:44 | git | Note Added: 0101301 | |
2021-05-24 11:05 | git | Note Added: 0101312 | |
2021-05-24 11:05 | git | Note Added: 0101313 | |
2021-05-24 11:21 | git | Note Added: 0101314 | |
2021-05-24 11:22 | git | Note Added: 0101315 | |
2021-05-25 10:34 |
|
Note Added: 0101346 | |
2021-05-25 11:16 | git | Note Added: 0101352 | |
2021-05-25 20:05 |
|
Note Added: 0101365 | |
2021-05-25 20:07 |
|
Note Edited: 0101365 | |
2021-05-25 20:22 |
|
Note Added: 0101366 | |
2021-05-25 20:53 |
|
Note Added: 0101368 | |
2021-05-25 20:54 |
|
Assigned To | msv => asuraven |
2021-05-26 12:48 | git | Note Added: 0101386 | |
2021-05-26 18:47 |
|
Note Added: 0101408 | |
2021-05-26 18:48 |
|
Assigned To | asuraven => msv |
2021-05-26 18:48 |
|
Status | assigned => resolved |
2021-05-26 18:48 |
|
Steps to Reproduce Updated | |
2021-05-26 19:33 |
|
Note Added: 0101414 | |
2021-05-26 19:34 |
|
Assigned To | msv => asuraven |
2021-05-26 19:34 |
|
Status | resolved => assigned |
2021-05-26 20:01 | git | Note Added: 0101416 | |
2021-05-26 20:18 | git | Note Added: 0101417 | |
2021-05-26 20:22 |
|
Note Added: 0101418 | |
2021-05-27 17:52 | kgv | Relationship added | related to 0032398 |
2021-05-28 10:53 | git | Note Added: 0101442 | |
2021-05-28 13:54 | git | Note Added: 0101445 | |
2021-05-28 15:01 | git | Note Added: 0101450 | |
2021-05-28 15:01 | git | Note Added: 0101451 | |
2021-05-28 16:35 |
|
Note Added: 0101454 | |
2021-05-28 16:38 |
|
Note Added: 0101455 | |
2021-06-16 16:32 |
|
Note Added: 0101869 | |
2021-06-16 18:38 |
|
Relationship added | related to 0032448 |
2021-06-16 19:04 |
|
Relationship added | related to 0032450 |
2021-06-16 19:08 |
|
Note Edited: 0101869 | |
2021-06-17 10:06 | git | Note Added: 0101883 | |
2021-06-17 10:07 | git | Note Added: 0101884 | |
2021-06-17 10:54 | git | Note Added: 0101885 | |
2021-06-17 13:18 | git | Note Added: 0101893 | |
2021-06-17 13:23 |
|
Note Added: 0101894 | |
2021-06-17 15:33 | kgv | Summary | It is necessary to have a unique way of checking of the validity of the edge and its 2D curves => Modeling Algorithms - It is necessary to have a unique way of checking of the validity of the edge and its 2D curves |
2021-06-17 16:05 |
|
Note Added: 0101896 | |
2021-06-17 16:05 |
|
Assigned To | asuraven => msv |
2021-06-17 16:05 |
|
Status | assigned => resolved |
2021-06-18 16:50 |
|
Note Added: 0101915 | |
2021-06-18 16:54 |
|
Assigned To | msv => asuraven |
2021-06-18 16:54 |
|
Status | resolved => assigned |
2021-06-18 17:06 |
|
Note Added: 0101917 | |
2021-06-21 16:46 | git | Note Added: 0101965 | |
2021-06-21 16:46 | git | Note Added: 0101966 | |
2021-06-21 16:49 | git | Note Added: 0101967 | |
2021-06-21 17:24 | git | Note Added: 0101968 | |
2021-06-21 17:50 |
|
Note Added: 0101970 | |
2021-06-21 19:08 |
|
Note Added: 0101975 | |
2021-06-21 19:08 |
|
Status | assigned => resolved |
2021-06-21 19:10 |
|
Assigned To | asuraven => msv |
2021-06-22 10:26 | kgv | Note Added: 0101985 | |
2021-06-22 10:47 |
|
Note Added: 0101989 | |
2021-06-22 10:48 |
|
Assigned To | msv => asuraven |
2021-06-22 10:48 |
|
Status | resolved => assigned |
2021-06-22 11:58 | git | Note Added: 0101991 | |
2021-06-22 11:58 | git | Note Added: 0101992 | |
2021-06-22 14:06 |
|
Note Added: 0101993 | |
2021-06-22 14:06 |
|
Assigned To | asuraven => msv |
2021-06-22 14:06 |
|
Status | assigned => resolved |
2021-06-22 15:46 |
|
Note Added: 0101996 | |
2021-06-22 15:47 |
|
Assigned To | msv => asuraven |
2021-06-22 15:47 |
|
Status | resolved => assigned |
2021-06-22 15:55 | git | Note Added: 0101997 | |
2021-06-22 15:56 | git | Note Added: 0101998 | |
2021-06-22 15:56 |
|
Note Added: 0101999 | |
2021-06-22 15:56 |
|
Assigned To | asuraven => msv |
2021-06-22 15:56 |
|
Status | assigned => resolved |
2021-06-22 16:07 |
|
Note Added: 0102000 | |
2021-06-22 16:07 |
|
Assigned To | msv => bugmaster |
2021-06-22 16:07 |
|
Status | resolved => reviewed |
2021-06-26 11:36 | bugmaster | Note Added: 0102065 | |
2021-06-26 11:36 | bugmaster | Status | reviewed => tested |
2021-06-26 11:38 | bugmaster | Test case number | => Not required |
2021-06-26 11:58 | bugmaster | Changeset attached | => occt master c9337e33 |
2021-06-26 11:58 | bugmaster | Status | tested => verified |
2021-06-26 11:58 | bugmaster | Resolution | open => fixed |
2021-06-26 12:00 | git | Note Added: 0102070 | |
2021-06-26 12:01 | git | Note Added: 0102071 | |
2021-06-26 12:01 | git | Note Added: 0102072 | |
2021-06-26 12:01 | git | Note Added: 0102073 | |
2021-06-26 12:01 | git | Note Added: 0102074 | |
2021-06-26 12:01 | git | Note Added: 0102075 | |
2021-06-26 12:01 | git | Note Added: 0102076 |