> It's been a while since I've had to succinctly describe the problem and solution, so hopefully that is all understandable to everyone. There are several independent tasks that will need to be completed is anyone wants to help us get there more quickly. ;)
Sean, are those tasks grouped somewhere in the TODO list, or?
Not in such a succinct form because there is a lot of interrelation with other tasks/projects. E.g., one can frame reliable STEP NURBS import is just as important for shaded displays because users usually want to view their own existing data. Or once we have robust boolean evaluation of NURBS, most of our converters will need to be updated to use the new method ... that's a lot of work. :)
Some tasks that come to mind related to shaded displays are:
* library routine for boolean evaluation of NURBS
* library routine for non-solid NURBS tessellation (capability exists, but not as formal API)
* library routine for solid NURBS tessellation (capability exists, but not as formal API)
* libgcv routine to perform NURBS boolean evaluation and tessellation
* connecting "facetize" command to use libgcv (solid tessellation)
* migrate current converter polygonal mesh boolean evaluation method of NMG-based converters to libgcv
* updating all NMG-based exporters to use new libgcv routine, retain old method as legacy option
* updating mged/archer to utilize boolean evaluated NURBS as a visualization mode
Other useful but maybe not strictly necessary tasks:
* optimize NURBS prep
* connecting "E" and "ev" commands to use libgcv (non-solid or solid)
* implement support for plate-mode NURBS
* update STEP and 3DM converters to support non-solid NURBS import via plate-mode
* libgcv routine to perform NURBS healing (close near-solid NURBS geometries)
* update NURBS importers to with option to perform healing on import
* update NURBS ray tracing to perform reparameterization/healing during prep
* update IGES importer to import NURBS directly
* implement OBJ NURBS import support
* parallelize single-object NURBS prep (particularly the surface tree building)
* parallelize boolean evaluation of NURBS
* parallelize NURBS tessellation
* refactor libdm API to better support (polygonal,curve,point) display lists
* refactor libdm implementation to re-encapsulate platform-specific logic (no #ifdefs in public headers)
* review old bspline NURBS logic, integrate useful portions, then remove the rest
* formally document our BREP/NURBS primitive, capabilities and limitations
That's just off the top of my head. There are undoubtedly other tasks involved but that's a partial list. Some/many of them are already in the TODO file, but many are not yet. Feel free to expand/incorporate/ignore. ;)
Cheers!
Sean
------------------------------------------------------------------------------ This SF.net email is sponsored by Windows:
Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev
_______________________________________________ BRL-CAD Developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/brlcad-devel
