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); }
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(); }