示例#1
0
        private List <CEdge> GetCareCEdgeLtCptCoincident(CPoint LSNodeCpt, CEdge SgCEdge, bool blnAllowOverlap = false)
        {
            var SmallerAxisAngleCEdge = CDCEL.FindSmallerAxisAngleCEdgebyCEdge(LSNodeCpt, SgCEdge, blnAllowOverlap);
            var CareCEdgeLt           = new List <CEdge>(1);

            if (SgCEdge.dblAxisAngle != SmallerAxisAngleCEdge.dblAxisAngle)
            {
                CareCEdgeLt.Add(SmallerAxisAngleCEdge.cedgeNext);
            }
            else
            {
                if (blnAllowOverlap == true)
                {
                    //this should be a special case where a single polyline has only one edge (SgCEdge),
                    //at the same time, this edge is used by the combined triangulation
                    CareCEdgeLt.Add(SmallerAxisAngleCEdge);
                }
                else
                {
                    throw new ArgumentException("we did not consider overlap!");
                }
            }

            return(CareCEdgeLt);
        }