Exemplo n.º 1
0
 public TrackReader(string path, string?mimeType = null)
 {
     this.Path     = path;
     this.MimeType = mimeType ?? TrackUtil.GetMimeTypeFromPath(path) ?? throw new NotSupportedException();
     this._stream  = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize, StreamOptions);
     this.Track    = new Track(this._stream, this.MimeType);
 }
Exemplo n.º 2
0
    public static void Open(ActionAsset action)
    {
        var window = GetWindow <ActionEditorWinow>();

        if (window.asset != action || window.view == null)
        {
            action.OnAfterDeserialize();
            TrackUtil.UpdateAllTrack(action);
            window.asset          = action;
            window.view           = CreateInstance <FrameLineView>();
            window.view.hideFlags = HideFlags.HideAndDontSave;//防止重启虚拟机的时候丢失
            window.view.Window    = window;
            window.view.Asset     = action;
        }
    }
Exemplo n.º 3
0
 void BtnExport_Click(object sender, System.EventArgs e)
 {
     if (MessageDialog.Show(string.Format(Properties.Resources.UI_Activity_EditTrail_Export, CommonResources.Text.ActionOk, CommonResources.Text.ActionCancel),
                            "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
     {
         DateTime  startTime = DateTime.UtcNow;
         IActivity activity;
         bool      hasGps = this.m_trailResult != null && this.m_trailResult.GPSRoute != null;
         if (hasGps)
         {
             activity = this.m_trailResult.CopyToActivity();
             activity.Laps.Clear();
         }
         else
         {
             activity          = Plugin.GetApplication().Logbook.Activities.Add(startTime);
             activity.GPSRoute = new TrackUtil.GPSRoute();
             TrackUtil.setCapacity(activity.GPSRoute, ((IList <EditTrailRow>) this.EList.RowData).Count);
         }
         activity.Name   = TrailName.Text;
         activity.Notes += "Radius: " + UnitUtil.Elevation.ToString(m_TrailToEdit.Radius, "u");
         const int            lapLength = 60; //A constant time between points
         IList <EditTrailRow> list      = (IList <EditTrailRow>) this.EList.RowData;
         for (int i = 0; i < list.Count - 1; i++)
         {
             if (hasGps)
             {
                 activity.Laps.Add(m_trailResult.TrailPointDateTime[i],
                                   TimeSpan.FromSeconds(m_trailResult.TrailPointTime0(m_trailResult)[i + 1] -
                                                        this.m_trailResult.TrailPointTime0(m_trailResult)[i]));
             }
             else
             {
                 activity.GPSRoute.Add(startTime.AddSeconds(i * lapLength),
                                       new GPSPoint(list[i].TrailGPS.LatitudeDegrees, list[i].TrailGPS.LongitudeDegrees, 0));
                 activity.Laps.Add(startTime.AddSeconds(i * lapLength), TimeSpan.FromSeconds(lapLength));
             }
             activity.Laps[i].Rest  = !list[i].TrailGPS.Required;
             activity.Laps[i].Notes = list[i].TrailGPS.Name;
         }
         if (!hasGps)
         {
             int i = list.Count - 1;
             activity.GPSRoute.Add(startTime.AddSeconds(i * lapLength), new GPSPoint(list[i].TrailGPS.LatitudeDegrees, list[i].TrailGPS.LongitudeDegrees, 0));
         }
     }
 }