1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

0026884: Cylinder/Cylinder intersection algorithm throws an exception

Check, if cylinder axes are parallel is made more carefully.
This check is brought to conformity with check if axes are parallel (see constructor AxeOperator::AxeOperator(...) in IntAna_QuadQuadGeo.cxx file)

Test case for issue CR26884
This commit is contained in:
nbv
2015-11-18 11:01:12 +03:00
committed by bugmaster
parent c16915c713
commit ce48b00930
3 changed files with 49 additions and 9 deletions

View File

@@ -125,8 +125,8 @@ class AxeOperator {
//=======================================================================
AxeOperator::AxeOperator(const gp_Ax1& A1,const gp_Ax1& A2)
{
myEPSILON_DISTANCE=0.00000000000001;
myEPSILON_AXES_PARA=0.000000000001;
myEPSILON_DISTANCE=1.0e-14;
myEPSILON_AXES_PARA=Precision::Angular();
Axe1=A1;
Axe2=A2;
//---------------------------------------------------------------------
@@ -275,12 +275,12 @@ IntAna_QuadQuadGeo::IntAna_QuadQuadGeo(void)
//=======================================================================
void IntAna_QuadQuadGeo::InitTolerances()
{
myEPSILON_DISTANCE = 0.00000000000001;
myEPSILON_ANGLE_CONE = 0.000000000001;
myEPSILON_MINI_CIRCLE_RADIUS = 0.000000001;
myEPSILON_CYLINDER_DELTA_RADIUS = 0.0000000000001;
myEPSILON_CYLINDER_DELTA_DISTANCE= 0.0000001;
myEPSILON_AXES_PARA = 0.000000000001;
myEPSILON_DISTANCE = 1.0e-14;
myEPSILON_ANGLE_CONE = Precision::Angular();
myEPSILON_MINI_CIRCLE_RADIUS = 0.01*Precision::Confusion();
myEPSILON_CYLINDER_DELTA_RADIUS = 1.0e-13;
myEPSILON_CYLINDER_DELTA_DISTANCE= Precision::Confusion();
myEPSILON_AXES_PARA = Precision::Angular();
}
//=======================================================================
//function : IntAna_QuadQuadGeo