예제 #1
0
 public static XYObstacleLineList ReadFromBinary(BinaryReader reader, out short xMapSize, out short zMapSize)
 {
     reader.ReadInt16();         // version;
     xMapSize = reader.ReadInt16();
     zMapSize = reader.ReadInt16();
     return(XYObstacleLineList.Read(reader));
 }
예제 #2
0
 public static void WriteToBinary(BinaryWriter writer, XYObstacleLineList lines, short xMapSize, short zMapSize)
 {
     writer.Write(VERSION);
     writer.Write(xMapSize);
     writer.Write(zMapSize);
     lines.Write(writer);
 }
예제 #3
0
 public XYObstacleLineList(XYObstacleLineList other)
     : this(other.Count)
 {
     foreach (XYObstacleLine line in other)
     {
         Add(line);
     }
 }
예제 #4
0
    public static XYObstacleLineList Read(BinaryReader reader)
    {
        int count = (int)reader.ReadInt16();
        XYObstacleLineList result = new XYObstacleLineList(count);

        while (count-- > 0)
        {
            XYObstacleLine line = XYObstacleLine.Read(reader);
            result.Add(line);
        }
        return(result);
    }
예제 #5
0
    public static void WriteToText(TextWriter writer, XYObstacleLineList lines)
    {
        List <XYGridPos>      pointList = new List <XYGridPos>(lines.Count * 2);
        List <LinePointIndex> indexList = new List <LinePointIndex>(lines.Count);

        for (int i = 0; i < lines.Count; ++i)
        {
            XYObstacleLine line = lines[i];
            LinePointIndex lpi;
            lpi.p1 = GetPointIndex(pointList, line.Begin);
            lpi.p2 = GetPointIndex(pointList, line.End);
            indexList.Add(lpi);
        }
        //
        writer.WriteLine("{0} {1} 0", pointList.Count.ToString(), indexList.Count.ToString());
        foreach (XYGridPos pos in pointList)
        {
            writer.WriteLine("{0} {1} 0", pos.x.ToString(), pos.y.ToString());
        }
        foreach (LinePointIndex lpi in indexList)
        {
            writer.WriteLine("{0} {1}", (lpi.p1 + 1).ToString(), (lpi.p2 + 1).ToString());
        }
    }