public void GeneratePoints()
{
if (primitive == null)
return;
points.Clear();
if (primitive.isResizeble())
{
points.Add(new ShapeBoxControlPoint(shape.Left, shape.Top, 0));
points.Add(new ShapeBoxControlPoint(shape.Left + shape.Width/2, shape.Top, 1));
points.Add(new ShapeBoxControlPoint(shape.Right, shape.Top, 2));
points.Add(new ShapeBoxControlPoint(shape.Right, shape.Top + shape.Height/2, 3));
points.Add(new ShapeBoxControlPoint(shape.Right, shape.Bottom, 4));
points.Add(new ShapeBoxControlPoint(shape.Left + shape.Width/2, shape.Bottom, 5));
points.Add(new ShapeBoxControlPoint(shape.Left, shape.Bottom, 6));
points.Add(new ShapeBoxControlPoint(shape.Left, shape.Top + shape.Height/2, 7));
}
points.AddRange(primitive.SpecialPoints());
}