Archived issue #0022720
Wrong intersection point for the case of intersection between sphere and plane
Description
The algorithm of intersection between sphere and plane produces an intersection point that does not belong to the plane
Steps to reproduce
Use the following Draw commands to reproduce the bug.
restore f1 b1
restore f2 b2
mksurface s1 b1
mksurface s2 b2
trim s1t s1 0 2 0 2
intersect i s1t s2
restore f1 b1
restore f2 b2
mksurface s1 b1
mksurface s2 b2
trim s1t s1 0 2 0 2
intersect i s1t s2
Additional information
1. Initial shapes (see the file Attachment 2 (ZIP) attached)
2. To obtain the results of "Steps To Reproduce" it is necesary to take int account the modifications in the file(s):
GeometryTest_CurveCommands.cxx
that will be done later.
-----------------------
Version 1
1. New features:
no New features
2. Changes:
2.1. class IntPatch_ImpImpIntersection
2.1.1. method: void IntPatch_ImpImpIntersection::Perform(
const Handle(Adaptor3d_HSurface)& S1,
const Handle(Adaptor3d_TopolTool)& D1,
const Handle(Adaptor3d_HSurface)& S2,
const Handle(Adaptor3d_TopolTool)& D2,
const Standard_Real TolArc,
const Standard_Real TolTang)
The check-up of intersection points has been added.
The contents of the check-up is to analyse
whether the intersection point ia within the 2D-domain
of the surface or not.
Only intersection points that are not out of the 2D-domains
of both surfaces are added to the resulting sequence.
2.2. static functions
2.2.1 static Standard_Integer intersection (
Draw_Interpretor& di,
Standard_Integer n,
const char** a)
The graphical display of the intersection points for
the case of intersection of two surfaces has been added.
III. Modified entities:
-packages:
IntPatch
GeometryTest
-classes:
IntPatch_ImpImpIntersection
-functions
intersection
-methods:
void IntPatch_ImpImpIntersection::Perform(
const Handle(Adaptor3d_HSurface)& S1,
const Handle(Adaptor3d_TopolTool)& D1,
const Handle(Adaptor3d_HSurface)& S2,
const Handle(Adaptor3d_TopolTool)& D2,
const Standard_Real TolArc,
const Standard_Real TolTang)
2. To obtain the results of "Steps To Reproduce" it is necesary to take int account the modifications in the file(s):
GeometryTest_CurveCommands.cxx
that will be done later.
-----------------------
Version 1
1. New features:
no New features
2. Changes:
2.1. class IntPatch_ImpImpIntersection
2.1.1. method: void IntPatch_ImpImpIntersection::Perform(
const Handle(Adaptor3d_HSurface)& S1,
const Handle(Adaptor3d_TopolTool)& D1,
const Handle(Adaptor3d_HSurface)& S2,
const Handle(Adaptor3d_TopolTool)& D2,
const Standard_Real TolArc,
const Standard_Real TolTang)
The check-up of intersection points has been added.
The contents of the check-up is to analyse
whether the intersection point ia within the 2D-domain
of the surface or not.
Only intersection points that are not out of the 2D-domains
of both surfaces are added to the resulting sequence.
2.2. static functions
2.2.1 static Standard_Integer intersection (
Draw_Interpretor& di,
Standard_Integer n,
const char** a)
The graphical display of the intersection points for
the case of intersection of two surfaces has been added.
III. Modified entities:
-packages:
IntPatch
GeometryTest
-classes:
IntPatch_ImpImpIntersection
-functions
intersection
-methods:
void IntPatch_ImpImpIntersection::Perform(
const Handle(Adaptor3d_HSurface)& S1,
const Handle(Adaptor3d_TopolTool)& D1,
const Handle(Adaptor3d_HSurface)& S2,
const Handle(Adaptor3d_TopolTool)& D2,
const Standard_Real TolArc,
const Standard_Real TolTang)
Public activity
4 archived notes
Participants are labeled by their role within this record.
SVN branch http://svn/svn/occt/branches/0022720 is ready to be reviewed
Small correction done in file IntPatch_ImpImpIntersection_2.gxx:
line 490: "D2" instead of "D1"
line 490: "D2" instead of "D1"
Dear Commenter 1,
Workbench KAS:dev:mkv-OCC22720-occt has been created from SVN branch http://svn/svn/occt/branches/0022720
(and mkv-OCC22720-products from trank) and compiled on Linux platform.
There are not regressions in mkv-OCC22720-products regarding to KAS:dev:products-20110902-opt
See results in /dn45/occttests/results/KAS/dev/mkv-OCC22720-products_06092011/lin
See reference results in /dn45/occttests/results/KAS/dev/products-20110902-opt_05092011/lin
See test cases in /dn45/occttests/tests/ED
N.B. In order to launch testing case you can make use the following instructions
http://doc/doku.php?id=occt:certification
Workbench KAS:dev:mkv-OCC22720-occt has been created from SVN branch http://svn/svn/occt/branches/0022720
(and mkv-OCC22720-products from trank) and compiled on Linux platform.
There are not regressions in mkv-OCC22720-products regarding to KAS:dev:products-20110902-opt
See results in /dn45/occttests/results/KAS/dev/mkv-OCC22720-products_06092011/lin
See reference results in /dn45/occttests/results/KAS/dev/products-20110902-opt_05092011/lin
See test cases in /dn45/occttests/tests/ED
N.B. In order to launch testing case you can make use the following instructions
http://doc/doku.php?id=occt:certification
Integration into occt repository
Date: 2011-09-07 19:40:56 +0400 (Wed, 07 Sep 2011)
New Revision: 8983
Modified:
trunk/src/GeometryTest/GeometryTest_CurveCommands.cxx
trunk/src/IntPatch/IntPatch_ImpImpIntersection_2.gxx
Date: 2011-09-07 19:40:56 +0400 (Wed, 07 Sep 2011)
New Revision: 8983
Modified:
trunk/src/GeometryTest/GeometryTest_CurveCommands.cxx
trunk/src/IntPatch/IntPatch_ImpImpIntersection_2.gxx