public void Transform(Matrix3 m)
        {
            Vector3 p0 = new Vector3(cb.P0.X, cb.P0.Y, 1);
            Vector3 p1 = new Vector3(cb.P1.X, cb.P1.Y, 1);
            Vector3 p2 = new Vector3(cb.P2.X, cb.P2.Y, 1);
            Vector3 p3 = new Vector3(cb.P3.X, cb.P3.Y, 1);

            p0 = m * p0;
            p1 = m * p1;
            p2 = m * p2;
            p3 = m * p3;

            cb = new CubicBezier(new Coordinates(p0.X, p0.Y), new Coordinates(p1.X, p1.Y),
                new Coordinates(p2.X, p2.Y), new Coordinates(p3.X, p3.Y));
        }
 public void Transform(Matrix3 m)
 {
     foreach (IPathSegment seg in segments) {
         seg.Transform(m);
     }
 }
 public AbsoluteTransformer(Coordinates loc, double heading, CarTimestamp timestamp)
 {
     transform = Matrix3.Rotation(-heading)*Matrix3.Translation(-loc.X, -loc.Y);
     this.timestamp = timestamp;
 }
 public AbsoluteTransformer(Matrix3 transform, CarTimestamp timestamp)
 {
     this.transform = transform;
     this.timestamp = timestamp;
 }
        public void Transform(Matrix3 m)
        {
            Vector3 s = new Vector3(start.X, start.Y, 1);
            Vector3 e = new Vector3(end.X, end.Y, 1);

            s = m * s;
            e = m * e;

            start = new Coordinates(s.X, s.Y);
            end = new Coordinates(e.X, e.Y);
        }