Example #1
0
    protected void UpdateQueue(Queue <UIPointTrail.KeyPoint> queue)
    {
        if (queue.Count <= 0)
        {
            return;
        }
        UIPointTrail.KeyPoint keyPoint = queue.Peek();
        float time = RealTime.time;

        while (keyPoint != null && time - keyPoint.enqueueTime > this.mPointTime)
        {
            queue.Dequeue();
            if (queue.Count > 0)
            {
                keyPoint = queue.Peek();
            }
            else
            {
                keyPoint = null;
            }
        }
        int num = 0;

        foreach (UIPointTrail.KeyPoint keyPoint2 in queue)
        {
            keyPoint2.size = (float)(num + 1) / (float)queue.Count;
            num++;
        }
    }
Example #2
0
 public void AddPoint(Vector3 pos, float time)
 {
     UIPointTrail.KeyPoint keyPoint = new UIPointTrail.KeyPoint();
     keyPoint.point       = pos;
     keyPoint.enqueueTime = time;
     keyPoint.size        = 1f;
     keyPoint.mainPoint   = true;
     if (this.mNewQueue)
     {
         this.GetEmptyQueue();
         this.mNewQueue = false;
     }
     if (this.mCurrentQueue != null)
     {
         if (this.mCurrentQueue.Count > 0 && this.mLastPoint != null)
         {
             UIPointTrail.KeyPoint keyPoint2 = this.mLastPoint;
             float num = Vector3.Distance(keyPoint2.point, keyPoint.point);
             if (keyPoint2 != null && num > 1f && num < 50f)
             {
                 UIPointTrail.KeyPoint keyPoint3 = new UIPointTrail.KeyPoint();
                 keyPoint3.point       = (keyPoint2.point + keyPoint.point) / 2f;
                 keyPoint3.enqueueTime = (keyPoint2.enqueueTime + keyPoint.enqueueTime) / 2f;
                 keyPoint3.size        = (keyPoint2.size + keyPoint.size) / 2f;
                 keyPoint3.mainPoint   = false;
                 this.mCurrentQueue.Enqueue(keyPoint3);
             }
         }
         this.mLastPoint = keyPoint;
         this.mCurrentQueue.Enqueue(keyPoint);
     }
 }