Having spent the last two days working on it, it's becoming apparent that resampling is taking more time than expected. Part of this can be attributed to my unwillingness to sit down and figure out the algorithm once and for all. Rather, my modus operandi has been to hack something out, try it out with a few things, fix what's broken, see what the fix broke, and so on until (hopefully) everything worked. Though it is in a working state right now, I feel like another bug discovered would make the whole thing fall apart.
Szymon has suggested a better way of doing the resampling, which in retrospect seems rather obvious. We still do a first pass to determine that all the critical points are. Then we walk through the critical point list, taking them two at a time. Between the pair we insert desired sample points/number of critical points number of points, along with the critical points themselves. Since that's all that there seems to be to it, I should implement this sooner rather than later for the sake of maintainability.
I've also been writing more code to save/load objects from the SQL backend. When I expressed my interest in graphics, I didn't expect to have to spend time serializing and de-serializing objects. The MySQL API is very easy to use, but it's all strings-based. This is acceptable in languages like Perl, but gets to be a pain in C++.