Exemple #1
0
        static void Draw(Graphics g, BehaviorSnapshot snapshotA, BehaviorSnapshot snapshotB, BehaviorVisualizationRendererSettings settings)
        {
            Point pA    = GetPoint(snapshotA, settings);
            Point pB    = GetPoint(snapshotB, settings);
            float width = GetWidth(snapshotA, snapshotB, settings);

            switch (settings.PathStyle)
            {
            case BehaviorVisualizationRendererSettings.PathStyleEnum.Dots:
                float halfWidth = width / 2.0f;
                using (SolidBrush b = new SolidBrush(settings.PathColor))
                {
                    g.FillEllipse(b, pA.X - halfWidth, pA.Y - halfWidth, width, width);
                }
                break;

            case BehaviorVisualizationRendererSettings.PathStyleEnum.Lines:
                using (Pen p = new Pen(settings.PathColor, width))
                {
                    p.EndCap = System.Drawing.Drawing2D.LineCap.Round;
                    g.DrawLine(p, pA, pB);
                }
                break;

            default:
                break;
            }
        }
Exemple #2
0
        static Point GetPoint(BehaviorSnapshot snapshot, BehaviorVisualizationRendererSettings settings)
        {
            Vector offset        = snapshot.Position - settings.ImageOriginPosition;
            Vector pixelPosition = offset * settings.PixelsPerWorldUnit * SCALE;

            return(new Point((int)pixelPosition.X, (int)pixelPosition.Y));
        }
        public static List <BehaviorSnapshot> Parse(string data)
        {
            var snapshots = new List <BehaviorSnapshot>();

            string[] separators = { "\r\n", "\n" };

            string[] lines = data.Split(separators, StringSplitOptions.RemoveEmptyEntries);
            foreach (var line in lines)
            {
                if (line[0] != '#')
                {
                    string[] values    = line.Split('\t');
                    float    timestamp = float.Parse(values[0]);
                    int      region    = int.Parse(values[1]);
                    float    px        = float.Parse(values[2]);
                    float    py        = float.Parse(values[3]);
                    float    pz        = float.Parse(values[4]);
                    float    fx        = float.Parse(values[5]);
                    float    fy        = float.Parse(values[6]);
                    float    fz        = float.Parse(values[7]);

                    Vector position = new Vector(px, py, pz);
                    Vector forward  = new Vector(fx, fy, fz);
                    var    snapshot = new BehaviorSnapshot(timestamp, region, position, forward);
                    snapshots.Add(snapshot);
                }
            }

            return(snapshots);
        }
Exemple #4
0
 static float GetWidth(BehaviorSnapshot snapshotA, BehaviorSnapshot snapshotB, BehaviorVisualizationRendererSettings settings)
 {
     return(settings.PathWidth * SCALE);
 }