PlanarFigures basically consist of a set of controlpoints and one or more polylines that describe how to visualize these controlpoints.
Unfortunately, itk::VectorContainer are used to store these points. Even more unfortunate is that this datastructure does not support removing elements from the container.
Thus it is not possible to remove a single control point from a polygon.
In order to fix this, itk::VectorContainer shall be replaced.
From now on, the controlpoints shall be stored in a std::deque (basically a std::list with an 'at()' method ). Thus it is possible to easily iterate over all control points, get one with a certain index and insert and remove elements easily.
For the polylines, a struct will be introduced that contains the Point2D and the index of the control point that starts the line-segment this Point2D belongs to.
All structs that belong to a polyline will be stored in a std::list as we do not need the access to defined indecies.
itk::VectorContainer also offers a ModifiedTime that is used to determine if the polyline has to be rebuild. This can be replaced by a bool flag. However,this means that the editing of the controlpoints may be done in the PlanarFigureClass only. Thus a thin interface is needed to grant limited access to subclasses, mappers and interactors.