public override void deserialize(byte[] buffer, ref int offset)
        {
            deserializeInt32(buffer, ref offset, ref depth);

            byte r=0, g=0, b=0;
            deserializeByte(buffer, ref offset, ref r);
            deserializeByte(buffer, ref offset, ref g);
            deserializeByte(buffer, ref offset, ref b);
            color = Color.FromRgb(r, g, b);

            deserializeInt32(buffer, ref offset, ref shape);
            deserializeInt32(buffer, ref offset, ref mode);
            deserializeInt32(buffer, ref offset, ref numPoints);

            size = numPoints * POIBeizerPathPoint.Size + fieldSize;

            //Deserialize all the points
            points = new List<POIBeizerPathPoint>();

            for (int i = 0; i < numPoints; i++)
            {
                POIBeizerPathPoint point = new POIBeizerPathPoint();
                point.deserialize(buffer, ref offset);
                points.Add(point);
                //Console.WriteLine("Point is" + point.X + " " + point.Y);
                //Console.WriteLine("time is" + point.Time);
            }
        }
        public void insert(POIBeizerPathPoint point)
        {
            Points.Add(point);
            numPoints++;

            size += POIBeizerPathPoint.Size;
        }