コード例 #1
0
    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));
    }
コード例 #2
0
    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));
    }