> Sounds good - I'd go with the ON_PX_EVENT, if that matches the polymorphism of the ON_X_EVENT and ON_SSX_EVENT types. (Should ON_X_EVENT be ON_CX_EVENT for consistency?)

Maybe. We will also discuss the naming later.

> I expect we'll need to move the whole thing over - if you look at the files in http://brlcad.org/~starseeker/opennurbs/ you'll see that after the opennurbs_20110202 release they pretty much totally removed the ON_X_EVENT code - opennurbs_20111122 has an empty opennurbs_x.h file, and it's gone completely by opennurbs_20120914. If we want to keep tracking openNURBS releases as they come out, that means either making sure the intersection system is fully in libbrep or retrofitting it to each new openNURBS release.

I have updated my proposal to reflect this. But I still have several questions:

The current version of openNURBS in BRL-CAD still has the ON_X_EVENT (and ON_SSX_EVENT) code. So should I move this existed code to libbrep and remove the opennurbs_x.h and opennurbs_x.cpp files (since the newest openNURBS doesn't have them)?

For the naming - should I remove the ON_ prefix in the new code in libbrep and use something else (e.g. BREP_*)? They are no longer openNURBS members and live in libbrep.

And the test_ssi program - I currently use pipe primitives to represent the intersection curves so that they can be written to a file and displayed in MGED, since they are originally polyline curves and pipes can show us their shapes. But using pipes seems a little awkward - are their any better options for this?