splineed_logo

One of our class assignments was to write a simple 2d spline editor. The project requirements were as such:

-Use wxWindows
-Select between at least 2 spline types on the fly, and render them correctly
-Add, delete & move controlpoints
-Move handles, if spline type requires it
-Save to disk and load back in in ANY format, ascii, binary, XML (bonus for using XML)

In the end I managed to accomplish more than what was originally asked for. This was my first time using the wxWindows UI toolkit, as well as my first time using XML. I feel that given the 3 weeks of development time, I was able to build a solid tool which was easy to use (from a UI standpoint), to support all 4 types of splines we covered in class, to learn a new UI toolkit, and to learn how to use/integrate a new XML parser. One of the features which I was most proud of for this short project was my use of the Strategy Pattern, which I used to encapsulate each of the interpolation algorithms.

  • Engine
    • Home grown
  • Development Time
    • 3 Weeks
  • Language
    • C++
  • UI Toolkit
    • wxWindows
  • XML Parser
    • nanoXML
  • Supported Splines
    • Catmull Rom
    • Cubic Bezier patches
    • Bezier
    • Hermite
  • Features/Limitations:
    • 14 point maximum Bezier splines.
    • Saving and Loading splines from a custom XML file format.
    • Left click to add/modify point mode.
    • Right click a point and select Delete to remove a point.
    • C1 Continuity mode for Cubic Bezier splines
    • Tangent Line Edit Mode for Hermite splines
    • Global default scale value of 0.5 for all Catmull Rom spline points.
    • Insertion Point mode for Catmull Rom splines and Hermite splines.
    • Clear points button to clear the points in the current spline.
    • Simple dropdown list for selecting interpolation type.