- for (j=1; j<=aNbPoints; ++j) {
- gp_Pnt2d aP2D=aGInter.Point(j).Value();
- //
- aX=(bXDir) ? aP2D.X(): aP2D.Y();
- //
- if (fabs (aX-aTD1) < aDT || fabs (aX-aTD2) < aDT) {
- continue;
- }
- if (aX < aTD1 || aX > aTD2) {
- continue;
- }
- //
- bRejectFlag=Standard_False;
- const BOPTools_ListOfPave& aListOfPave=aPaveSet.Set();
- BOPTools_ListIteratorOfListOfPave aPaveIt(aListOfPave);
- for (; aPaveIt.More(); aPaveIt.Next()) {
- const BOPTools_Pave& aPavex=aPaveIt.Value();
- Standard_Real aXx=aPavex.Param();
- if (fabs (aX-aXx) < aDT) {
- bRejectFlag=Standard_True;
- break;
- }
- }
- if (bRejectFlag) {
- continue;
- }
- //
- BOPTools_Pave aPave(nVD, aX, BooleanOperations_UnknownInterference);
- aPaveSet.Append(aPave);
- }
+ for (j=1; j<=aNbPoints; ++j) {
+ aP2D=aGInter.Point(j).Value();
+ Handle(Geom2d_Line) aCLDE;
+ //
+ //modified by NIZNHY-PKV Thu Mar 20 17:37:32 2008f
+ Handle(Geom2d_TrimmedCurve) aCLDET1=
+ Handle(Geom2d_TrimmedCurve)::DownCast(aC2DDE1);
+ if (aCLDET1.IsNull()) {
+ aCLDE=Handle(Geom2d_Line)::DownCast(aC2DDE1);
+ }
+ else {
+ Handle(Geom2d_Curve) aBasisCurve=aCLDET1->BasisCurve();
+ aCLDE=Handle(Geom2d_Line)::DownCast(aBasisCurve);
+ }
+ //aCLDE=Handle(Geom2d_Line)::DownCast(aC2DDE1);
+ //modified by NIZNHY-PKV Thu Mar 20 17:37:37 2008t
+
+ if (aCLDE.IsNull()) {
+ continue;
+ }
+
+ aLDE=aCLDE->Lin2d();
+ aX=ElCLib::Parameter(aLDE, aP2D);
+ //
+ if (fabs (aX-aTD1) < aDT || fabs (aX-aTD2) < aDT) {
+ continue;
+ }
+ if (aX < aTD1 || aX > aTD2) {
+ continue;
+ }
+ //
+ bRejectFlag=Standard_False;
+ const BOPTools_ListOfPave& aListOfPave=aPaveSet.Set();
+ BOPTools_ListIteratorOfListOfPave aPaveIt(aListOfPave);
+ for (; aPaveIt.More(); aPaveIt.Next()) {
+ const BOPTools_Pave& aPavex=aPaveIt.Value();
+ aXx=aPavex.Param();
+ if (fabs (aX-aXx) < aDT) {
+ bRejectFlag=Standard_True;
+ break;
+ }
+ }
+ if (bRejectFlag) {
+ continue;
+ }
+ //
+ BOPTools_Pave aPave(nVD, aX, BooleanOperations_UnknownInterference);
+ aPaveSet.Append(aPave);
+ }