This chapter documents the most important changes we plan in the future releases. Some of them are partially implemented, some of them are only designed. For the complete list of bugs, errors and planned features look at VRR Bugzilla (see Bug tracking system).

The VRRLIB is quite complete for our needs.

There are many possible ways, how to improve functionality of GEOMLIB. The main plans for later versions of VRR are:

- Improve the effectiveness and geometrical stability of some computations for Bézier curves. Some current algorithms may in some situations to fail find the correct solution. When we try for example to find the intersection of a self-crossing cubic curve (directly or indirectly with a split to a pair of curves), the implemented algorithm does not find anything because of a zero resulting polynomial.
- Implement specialized geometrical methods for segments and other supported curves to increase their performance. Now, almost every routine invokes an expansion to Bézier curves.
- Implement NURBS as a new class. Rational Bézier curves are an equivalent to NURBS, but it would be nice to allow creation of this popular curve type with its many editing features.
- Add a direct support for parabolic and hyperbolic arcs. There are already some unfinished functions, like creation of general conics from 5 points. The solver of liner equation systems could be used for many useful features.
- Finish the implementation of connected and unconnected sets in the plane with compound paths as a border (path sets). Algorithm to compute planar arrangement of paths is already under construction.
- Implement expansion of a path with a given line style (width, ...) to outline with path set as the result. At first, the algorithms should be computed the arrangement and then for each face create set of cyclic paths in a given offset.
- Implement a support for dashed curves (or general repeated patters).
- Improve the interface for VCL and write optimized functions for expanding curves to visible segments.
- And many more features ....

- First, we would like to implement the support of paths in the kernel. There are some beginnings of the path support now, but almost everything needs to be done yet. For example, we would like to do the following: path operations, such as: join, split, subdivide, merge, union, .... Heuristic functions which create a path from a given set of objects.
- The save/load mechanism is written in Scheme currently. That showed up to be exteremely impractical, so we need to rewrite the code to C.
- We plan to extend the set of supported objects by various geometric projections (translation, rotation, homothety, ...) and angular objects to improve the geometric contruction capabilities of VRR .

The GUI feature plans depend on the needs of other VRR modules. Namely, we plan to do the following:

- The path editing support. Now, the path manipulation is quite awkward.
- Redesign the GO Factory to be more powerful and elastic; its GO creating capabilities are somewhat limited. We also plan to change the property value entering mechanism to be more user friendly.
- Enable a better and intuitive manipulation with the geometric dependency structure so that the user can keep track about the dependencies he has created.

- Speed up rendering of some curve types (circles, etc.).
- Better support for line styles.
- Draw edges with anti-aliasing support.
- Alpha blending.

- Implement our own font cache instead of the one provided by FreeType.
- Get rid of FreeType dynamic loading, as documented in FreeType library usage.
- Finish the font decomposition into GEOMLIB curves.

- Implement the failure mechanism during plugin loading.
- Write more plugins.

In future versions, we would like to:

- SVG Import – support more SVG features like patterns, groups and cascading styles.
- SVG Import – SVG elliptic arc is defined by start point, end point, two radii and x-axis rotation. GEOMLIB in recent state is not able to work with this type of arc and we expect to extend GEOMLIB functions to be able to import this graphic objects.
- SVG Import and Export – improve the way we work with texts, correct the text positions.
- follow the future GEOMLIB functions and graphic object attributes, like extended line styles (dashing, ...)
- SVG Export – improve the TeX text importing which is limited in the recent version (we export only printable 7-bit characters).

- Simplify the snarfing process.
- Test input parameters for invalid values (for example infinite floating-point numbers).

We would like to satisfy all incentive suggestions reported by users and remain in developing VRR .