private short GetTmpRP(GxRoadPointAstar.TMPRPINDEX tempRPIndex, short p_MapIdx, short x, short y)
    {
        List <short> list = new List <short>();

        this.m_pkRPSys.GetValidRangeRPIndexes(p_MapIdx, x, y, ref list);
        GxRP gxRP = (tempRPIndex != GxRoadPointAstar.TMPRPINDEX.RAS_TMPSP_INDEX) ? this.m_dTmpRP : this.m_sTmpRP;

        this.m_sRPIdx = ((tempRPIndex != GxRoadPointAstar.TMPRPINDEX.RAS_TMPSP_INDEX) ? this.m_sRPIdx : -100);
        this.m_dRPIdx = ((tempRPIndex != GxRoadPointAstar.TMPRPINDEX.RAS_TMPDP_INDEX) ? this.m_dRPIdx : -200);
        gxRP.ClearData();
        gxRP.SetData((short)tempRPIndex, p_MapIdx, x, y);
        if (list.Count != 0)
        {
            foreach (short current in list)
            {
                if (!gxRP.AddLinkedRP(current))
                {
                    break;
                }
            }
        }
        else
        {
            short nerestRP = this.m_pkRPSys.GetNerestRP(p_MapIdx, x, y, false, false);
            gxRP.AddLinkedRP(nerestRP);
        }
        return((short)tempRPIndex);
    }
    public bool _EraseRP(short MapIndex, short nRoadPointIndex)
    {
        GxRP rP = this.GetRP(MapIndex, (int)nRoadPointIndex);

        if (rP == null)
        {
            return(false);
        }
        for (int i = 0; i < rP.GetLinkedCount(); i++)
        {
            GxRP rP2 = this.GetRP(MapIndex, (int)rP.GetLinkedRP(i));
            if (rP2 != null)
            {
                rP2.DelLinkedRP(nRoadPointIndex);
            }
        }
        rP.ClearData();
        rP.SetData(nRoadPointIndex, MapIndex, Vector3.zero);
        return(true);
    }