Ejemplo n.º 1
0
        //public static CCmpDbl_CoordVerySmall sComparer = new CCmpDbl_CoordVerySmall();

        public override bool Equals(CValPairIncr <CPolygon> x, CValPairIncr <CPolygon> y)
        {
            if (x.val1.GID == y.val1.GID && x.val2.GID == y.val2.GID)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        private Dictionary <CValPairIncr <CPolygon>, CptEdgeDis> GetCloseCpgPairPtEdgeDisDt_EdgeRelation(
            List <CPolygon> cpglt, double dblCloseDis)
        {
            var cedgelt = new List <CEdge>();

            cpglt.ForEach(cpg => cedgelt.AddRange(cpg.CEdgeLt));

            var CloseCpipeDt = new Dictionary <CValPairIncr <CPolygon>, CptEdgeDis>(cpglt.Count * 2, new CCmpEqCpgPairIncr());

            foreach (var pEdgeRelation in CGeoFunc.DetectCEdgeRelations(cedgelt, dblCloseDis, true))
            {
                var cpg1 = pEdgeRelation.CEdge1.BelongedCpg;
                var cpg2 = pEdgeRelation.CEdge2.BelongedCpg;
                if (cpg1.GID != cpg2.GID)
                {
                    CptEdgeDis cptEdgeDis;
                    var        cpgpair = new CValPairIncr <CPolygon>(cpg1, cpg2);
                    pEdgeRelation.cptEdgeDis.CpgPairIncr = cpgpair;
                    if (CloseCpipeDt.TryGetValue(cpgpair, out cptEdgeDis))
                    {
                        if (pEdgeRelation.cptEdgeDis.dblDis < cptEdgeDis.dblDis)
                        {
                            CloseCpipeDt[cpgpair] = pEdgeRelation.cptEdgeDis;
                        }
                    }
                    else
                    {
                        CloseCpipeDt.Add(cpgpair, pEdgeRelation.cptEdgeDis);
                    }
                }
            }

            foreach (var cptEdgeDis in CloseCpipeDt.Values)
            {
                cptEdgeDis.SetConnectEdge(); //set ConnectEdge for all the bridges
            }

            return(CloseCpipeDt);
        }
Ejemplo n.º 3
0
 public override int GetHashCode(CValPairIncr <CPolygon> x)
 {
     return(Tuple.Create(x.val1.GID, x.val2.GID).GetHashCode());
 }