
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.