/// <summary> /// Initializes a new instance of the <see cref="SolidsoftReply.Esb.Libraries.Resolution.StepTrackPointsByType"/> class. /// </summary> /// <param name="type">The track point type.</param> /// <param name="bamActivityStep">The BAM activity step.</param> public StepTrackPointsByType(TrackPointType type, BamActivityStep bamActivityStep) { this.ActivityName = bamActivityStep.ActivityName; this.StepName = bamActivityStep.StepName; this.ExtendedStepName = bamActivityStep.ExtendedStepName; this.TrackPointType = type; this.TrackPoints = (from TrackPoint tp in bamActivityStep.TrackPoints where tp.Type == type select tp).ToList(); }
public TrackPoint(float meter, TrackPointType type, float x, float y, float z, float[] boundsL, float[] boundsR) { Meter = meter; Type = type; X = x; Y = y; Z = z; BoundsL = boundsL; BoundsR = boundsR; }
// Updating last times public void SetLastSector(TrackPointType type, double time) { if (type == TrackPointType.SECTOR1) { LastSector1 = time; } if (type == TrackPointType.SECTOR2) { LastSector2 = time; } if (type == TrackPointType.SECTOR3) { LastSector3 = time; } }
public DrawableTrack(int lifoSize, TrackPointType trackPointType, Pen trackMarkerPen, float trackMarkerPointSize, bool isLastPointEnlarged, Pen coursePen, float courseLineLength) { trkLIFO = new FixedSizeLIFO <PointF>(lifoSize); if (trackPointType != TrackPointType.Rectangle) { throw new NotImplementedException("TrackPointType.Rectangle supported only so far"); } trkPointType = trackPointType; trkPen = trackMarkerPen; trkMarkerPointSize = trackMarkerPointSize; IsLastPointEnlarged = isLastPointEnlarged; crsPen = coursePen; crsLineLength = courseLineLength; Reset(); }
public Track Get(string id) { System.Threading.Thread.Sleep(10); Debug.WriteLine("Track::Get(\"" + id + "\")"); // var scan = new IniScannerOld { IniFile = FilePath + id }; scan.Read(); // Read data: var name = scan.TryGetString("TrackName"); var location = scan.TryGetString("Location"); var laprecordRace = 0.0f; var laprecordQualify = 0.0f; float.TryParse(scan.TryGetString("Race Laptime").Trim(), out laprecordRace); float.TryParse(scan.TryGetString("Qualify Laptime").Trim(), out laprecordQualify); // Read track path: var path = new List <TrackPoint>(); TrackPoint trackPoint = null; // Temporary variables: float x = 0.0f, y = 0.0f, z = 0.0f, meter = 0.0f; TrackPointType type = TrackPointType.GRID; float[] boundsL = new float[0], boundsR = new float[0]; var perpVector = new float[3] { 0.0f, 0.0f, 0.0f }; var track_aiw = new IniScannerOld { IniFile = FilePath + id.Replace("gdb", "aiw") }; track_aiw.HandleCustomKeys += (d) => { var a = (object[])d; var key = (string)a[0]; var values = (string[])a[1]; switch (key) { // pos = coordinates) case "Main.wp_pos": x = Convert.ToSingle(values[0]); z = Convert.ToSingle(values[1]); y = Convert.ToSingle(values[2]); break; // score = sector, distance case "Main.wp_score": var sector = Convert.ToInt32(values[0]) + 1; if (sector == 1) { type = TrackPointType.SECTOR1; } if (sector == 2) { type = TrackPointType.SECTOR2; } if (sector == 3) { type = TrackPointType.SECTOR3; } meter = Convert.ToSingle(values[1]); break; // branchID = path ID, 0=main, 1=pitlane case "Main.wp_branchid": if (values.Length == 1) { switch (values[0]) { case "1": type = TrackPointType.PITS; break; default: // TODO: Double check this. type = TrackPointType.GRID; break; } } else { type = TrackPointType.GRID; } break; case "Main.wp_perp": perpVector = new float[3] { Convert.ToSingle(values[0]), Convert.ToSingle(values[1]), Convert.ToSingle(values[2]) }; break; case "Main.wp_width": boundsL = new float[2] { x - perpVector[0] * Convert.ToSingle(values[0]), y - perpVector[2] * Convert.ToSingle(values[0]) }; boundsR = new float[2] { x + perpVector[0] * Convert.ToSingle(values[1]), y + perpVector[2] * Convert.ToSingle(values[1]) }; break; // ptrs = next path, previous path, pitbox route (-1 for no pitbox), following branchID case "Main.wp_ptrs": path.Add(new TrackPoint(meter, type, x, y, z, boundsL, boundsR)); break; } }; track_aiw.FireEventsForKeys = new List <string>(); track_aiw.FireEventsForKeys.AddRange(new string[6] { "Main.wp_pos", "Main.wp_score", "Main.wp_branchid", "Main.wp_perp", "Main.wp_width", "Main.wp_ptrs" }); track_aiw.Read(); var t = new Track(id, name, location, laprecordRace, laprecordQualify); t.SetTrack(path); return(t); }