return Standard_True;
}
+//=======================================================================
+//function : CheckLLCoincidence
+//purpose : Returns true if input are trimmed curves and they coincide
+// within tolerance
+//=======================================================================
+static Standard_Boolean CheckLLCoincidence(const gp_Lin2d& L1,
+ const gp_Lin2d& L2,
+ const IntRes2d_Domain& Domain1,
+ const IntRes2d_Domain& Domain2,
+ const Standard_Real theTol)
+{
+ Standard_Boolean isFirst1 = (Domain1.HasFirstPoint() &&
+ L2.Distance(Domain1.FirstPoint()) < theTol);
+ Standard_Boolean isLast1 = (Domain1.HasLastPoint() &&
+ L2.Distance(Domain1.LastPoint()) < theTol);
+ if (isFirst1 && isLast1)
+ return Standard_True;
+ Standard_Boolean isFirst2 = (Domain2.HasFirstPoint() &&
+ L1.Distance(Domain2.FirstPoint()) < theTol);
+ Standard_Boolean isLast2 = (Domain2.HasLastPoint() &&
+ L1.Distance(Domain2.LastPoint()) < theTol);
+ return isFirst2 && isLast2;
+}
+
//----------------------------------------------------------------------
void IntCurve_IntConicConic::Perform(const gp_Lin2d& L1
,const IntRes2d_Domain& Domain1
done=Standard_True;
+ if(nbsol==1 && CheckLLCoincidence(L1, L2, Domain1, Domain2, Tol))
+ nbsol = 2;
+
if(nbsol==1) {
//---------------------------------------------------
//-- d: distance du point I a partir de laquelle les