/// <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();
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 // 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;
     }
 }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }