private void ParseSegment()
    {
        string line = GetNextLine();

        string[] lineSplit = SplitLine(line);

        if (lineSplit.Length == 1)
        {
            ThrowInvalidLine("ParseSegment()");
        }

        SimSegmentType segmentType = new SimSegmentType();

        segmentType.id = lineSplit[1];

        int splitOffset = 2;

        while (splitOffset < lineSplit.Length)
        {
            switch (lineSplit[splitOffset++])
            {
            case "color":
                segmentType.color = ParseUint(lineSplit[splitOffset++]);
                break;

            default:
                ThrowInvalidLine("ParseSegment()");
                break;
            }
        }

        definition.segmentTypes.Add(segmentType.id, segmentType);
    }
Exemplo n.º 2
0
    public SimSegment AddSegment(SimSegmentType segmentType, SimPoint p1, SimPoint p2)
    {
        SimSegment segment = new SimSegment();

        segment.Init(this, segmentType, nextSegmentId++, p1, p2);

        segments.Add(segment);

        pathListener.OnSegmentAdded(this, segment);

        return(segment);
    }
    public void Init(SimPath path, SimSegmentType segmentType, int id, SimPoint point1, SimPoint point2)
    {
        this.path = path;

        this.segmentType = segmentType;

        this.id = id;

        this.point1 = point1;
        this.point2 = point2;

        point1.segments.Add(this);
        point2.segments.Add(this);

        UpdateLength();
    }