protected override bool EquivalentWrapped(OnLineFact f1, OnLineFact f2) { if (f1.Pid == f2.Pid && f1.Rid == f2.Rid) { return(true); } PointFact pf1 = (PointFact)_Facts[f1.Pid]; RayFact rf1 = (RayFact)_Facts[f1.Rid]; PointFact pf2 = (PointFact)_Facts[f2.Pid]; RayFact rf2 = (RayFact)_Facts[f2.Rid]; return(pf1.Equivalent(pf2) && rf1.Equivalent(rf2)); }
protected override bool EquivalentWrapped(LineFact f1, LineFact f2) { if ((f1.Pid1 == f2.Pid1 && f1.Pid2 == f2.Pid2))// || //(f1.Pid1 == f2.Pid2 && f1.Pid2 == f2.Pid1)) { return(true); } PointFact p1f1 = (PointFact)_Facts[f1.Pid1]; PointFact p2f1 = (PointFact)_Facts[f1.Pid2]; PointFact p1f2 = (PointFact)_Facts[f2.Pid1]; PointFact p2f2 = (PointFact)_Facts[f2.Pid2]; return(p1f1.Equivalent(p1f2) && p2f1.Equivalent(p2f2)) ; //|| (p1f1.Equivalent(p2f2) && p2f1.Equivalent(p1f2)); }