mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
0027325: [Regression to 6.9.1] geom/revolution_00/A1: BOPTools_AlgoTools2D::AttachExistingPCurve doesn't work
1. Check, if edge is same-range, is now made with some tolerance (not strictly) in GeomLib_CheckCurveOnSurface class. Default value of this tolerance is Precision::PConfusion(). However, this value can be changed with corresponding interface. 2. DRAW-command "attachpcurve" has been added to BOPTest_UtilityCommands.cxx file. This command creates p-curve of given edge on given face. It can assign 2D-curve of one of the edge already included in the face or (if it is not possible) rebuilds new 2D-curve. Creation of test case for this issue. Adjusting test case boolean volumemaker A8 according to its new behavior on Windows.
This commit is contained in:
@@ -787,11 +787,12 @@ Standard_Boolean IntTools_Tools::ComputeTolerance
|
||||
const Standard_Real theFirst,
|
||||
const Standard_Real theLast,
|
||||
Standard_Real& theMaxDist,
|
||||
Standard_Real& theMaxPar)
|
||||
Standard_Real& theMaxPar,
|
||||
const Standard_Real theTolRange)
|
||||
{
|
||||
GeomLib_CheckCurveOnSurface aCS;
|
||||
//
|
||||
aCS.Init(theCurve3D, theSurf, theFirst, theLast);
|
||||
aCS.Init(theCurve3D, theSurf, theFirst, theLast, theTolRange);
|
||||
aCS.Perform(theCurve2D);
|
||||
if (!aCS.IsDone()) {
|
||||
return Standard_False;
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#include <TopAbs_State.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <IntTools_SequenceOfCurves.hxx>
|
||||
#include <Precision.hxx>
|
||||
class TopoDS_Vertex;
|
||||
class TopoDS_Wire;
|
||||
class TopoDS_Face;
|
||||
@@ -160,7 +161,16 @@ public:
|
||||
|
||||
//! Computes the max distance between points
|
||||
//! taken from 3D and 2D curves by the same parameter
|
||||
Standard_EXPORT static Standard_Boolean ComputeTolerance (const Handle(Geom_Curve)& theCurve3D, const Handle(Geom2d_Curve)& theCurve2D, const Handle(Geom_Surface)& theSurf, const Standard_Real theFirst, const Standard_Real theLast, Standard_Real& theMaxDist, Standard_Real& theMaxPar);
|
||||
Standard_EXPORT static
|
||||
Standard_Boolean ComputeTolerance(const Handle(Geom_Curve)& theCurve3D,
|
||||
const Handle(Geom2d_Curve)& theCurve2D,
|
||||
const Handle(Geom_Surface)& theSurf,
|
||||
const Standard_Real theFirst,
|
||||
const Standard_Real theLast,
|
||||
Standard_Real& theMaxDist,
|
||||
Standard_Real& theMaxPar,
|
||||
const Standard_Real theTolRange =
|
||||
Precision::PConfusion());
|
||||
|
||||
|
||||
//! Computes the correct Intersection range for
|
||||
|
Reference in New Issue
Block a user