mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0023552: Projection algorithm produces wrong results with default tolerance value.
Add TKShHealing to TKFillet/EXTERNLIB Adding test case
This commit is contained in:
parent
b8ddfc2f5d
commit
cfb6776ec0
@ -64,7 +64,9 @@
|
|||||||
|
|
||||||
#include <ChFi3d_Builder_0.hxx>
|
#include <ChFi3d_Builder_0.hxx>
|
||||||
#include <TopOpeBRepDS_ListOfInterference.hxx>
|
#include <TopOpeBRepDS_ListOfInterference.hxx>
|
||||||
|
#include <BRepLib.hxx>
|
||||||
|
#include <ShapeFix.hxx>
|
||||||
|
#include <Precision.hxx>
|
||||||
|
|
||||||
#ifdef DRAW
|
#ifdef DRAW
|
||||||
#include <TestTopOpeTools.hxx>
|
#include <TestTopOpeTools.hxx>
|
||||||
@ -73,6 +75,8 @@
|
|||||||
#ifdef DEB
|
#ifdef DEB
|
||||||
#include <OSD_Chronometer.hxx>
|
#include <OSD_Chronometer.hxx>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// variables for performances
|
// variables for performances
|
||||||
|
|
||||||
|
|
||||||
@ -557,6 +561,27 @@ void ChFi3d_Builder::Compute()
|
|||||||
cout<<"-temps ChFi3d_sameparameter "<<t_sameparam<<"s"<<endl<<endl;
|
cout<<"-temps ChFi3d_sameparameter "<<t_sameparam<<"s"<<endl<<endl;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
//
|
||||||
|
// Inspect the new faces to provide sameparameter
|
||||||
|
// if it is necessary
|
||||||
|
if (IsDone())
|
||||||
|
{
|
||||||
|
Standard_Real SameParTol = Precision::Confusion();
|
||||||
|
Standard_Integer aNbSurfaces, iF;
|
||||||
|
TopTools_ListIteratorOfListOfShape aIt;
|
||||||
|
//
|
||||||
|
aNbSurfaces=myDS->NbSurfaces();
|
||||||
|
|
||||||
|
for (iF=1; iF<=aNbSurfaces; ++iF) {
|
||||||
|
const TopTools_ListOfShape& aLF=myCoup->NewFaces(iF);
|
||||||
|
aIt.Initialize(aLF);
|
||||||
|
for (; aIt.More(); aIt.Next()) {
|
||||||
|
const TopoDS_Shape& aF=aIt.Value();
|
||||||
|
BRepLib::SameParameter(aF, SameParTol, Standard_True);
|
||||||
|
ShapeFix::SameParameter(aF, Standard_False, SameParTol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -558,7 +558,7 @@ static void Project(ProjLib_Projector& P, Handle(Adaptor3d_HCurve)& C)
|
|||||||
ProjLib_ProjectedCurve::ProjLib_ProjectedCurve()
|
ProjLib_ProjectedCurve::ProjLib_ProjectedCurve()
|
||||||
|
|
||||||
{
|
{
|
||||||
myTolerance = Precision::PApproximation();
|
myTolerance = Precision::Confusion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -570,7 +570,7 @@ ProjLib_ProjectedCurve::ProjLib_ProjectedCurve()
|
|||||||
ProjLib_ProjectedCurve::ProjLib_ProjectedCurve
|
ProjLib_ProjectedCurve::ProjLib_ProjectedCurve
|
||||||
(const Handle(Adaptor3d_HSurface)& S)
|
(const Handle(Adaptor3d_HSurface)& S)
|
||||||
{
|
{
|
||||||
myTolerance = Precision::PApproximation();
|
myTolerance = Precision::Confusion();
|
||||||
Load(S);
|
Load(S);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -584,7 +584,7 @@ ProjLib_ProjectedCurve::ProjLib_ProjectedCurve
|
|||||||
(const Handle(Adaptor3d_HSurface)& S,
|
(const Handle(Adaptor3d_HSurface)& S,
|
||||||
const Handle(Adaptor3d_HCurve)& C)
|
const Handle(Adaptor3d_HCurve)& C)
|
||||||
{
|
{
|
||||||
myTolerance = Precision::PApproximation();
|
myTolerance = Precision::Confusion();
|
||||||
Load(S);
|
Load(S);
|
||||||
Load(C);
|
Load(C);
|
||||||
}
|
}
|
||||||
@ -600,7 +600,7 @@ ProjLib_ProjectedCurve::ProjLib_ProjectedCurve
|
|||||||
const Handle(Adaptor3d_HCurve)& C,
|
const Handle(Adaptor3d_HCurve)& C,
|
||||||
const Standard_Real Tol)
|
const Standard_Real Tol)
|
||||||
{
|
{
|
||||||
myTolerance = Max(Tol, Precision::PApproximation());
|
myTolerance = Max(Tol, Precision::Confusion());
|
||||||
Load(S);
|
Load(S);
|
||||||
Load(C);
|
Load(C);
|
||||||
}
|
}
|
||||||
@ -624,7 +624,7 @@ void ProjLib_ProjectedCurve::Load(const Handle(Adaptor3d_HSurface)& S)
|
|||||||
|
|
||||||
void ProjLib_ProjectedCurve::Load(const Handle(Adaptor3d_HCurve)& C)
|
void ProjLib_ProjectedCurve::Load(const Handle(Adaptor3d_HCurve)& C)
|
||||||
{
|
{
|
||||||
myTolerance = Max(myTolerance,Precision::PApproximation());
|
myTolerance = Max(myTolerance, Precision::Confusion());
|
||||||
myCurve = C;
|
myCurve = C;
|
||||||
Standard_Real FirstPar = C->FirstParameter();
|
Standard_Real FirstPar = C->FirstParameter();
|
||||||
Standard_Real LastPar = C->LastParameter();
|
Standard_Real LastPar = C->LastParameter();
|
||||||
|
@ -7,3 +7,4 @@ TKG2d
|
|||||||
TKTopAlgo
|
TKTopAlgo
|
||||||
TKG3d
|
TKG3d
|
||||||
TKBool
|
TKBool
|
||||||
|
TKShHealing
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
## Test : K7
|
## Test : K7
|
||||||
## Comment : from cts21020
|
## Comment : from cts21020
|
||||||
## ====================================
|
## ====================================
|
||||||
puts "TODO OCC22817 All:Faulty shapes in variables faulty_1 to faulty_14"
|
puts "TODO OCC22817 All:Faulty shapes in variables faulty_1 to faulty_"
|
||||||
|
|
||||||
restore [locate_data_file CFI_cts21020.rle] a
|
restore [locate_data_file CFI_cts21020.rle] a
|
||||||
explode a e
|
explode a e
|
||||||
|
@ -13,6 +13,6 @@ if { [string compare $command chamf] == 0 } {
|
|||||||
set os $env(os_type)
|
set os $env(os_type)
|
||||||
}
|
}
|
||||||
if {[string compare $group dist_angle] == 0} {
|
if {[string compare $group dist_angle] == 0} {
|
||||||
puts "TODO OCC22909 All:Faulty shapes in variables faulty_1 to faulty_12"
|
puts "TODO OCC22909 All:Faulty shapes in variables faulty_1 to faulty_"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user