Implement the prerequisites for NURBS editing in BRL-CAD's GUIs
Details
BRL-CAD has support for raytracing of NURBS surfaces implemented, but they are handed over as BLOBs to the openNURBS library. Beyond basic operations such as rotation and translation, the BRL-CAD core has no ability to edit them. This project would implement support for editing NURBS curves and surfaces in the BRL-CAD core, thus creating the prerequisites to handle them with higher level (i.e. GUI) tools.
The key-feature would be to have ged command(s) that lets you build NURBS objects from scratch. This could be done by having a declarative ASCII description of these entities and/or wrapping the openNURBS library by a scripting language.
Describe in your proposal which approach you want to use and why. You may let inspire you by solutions in other programs:
Outline
Implement the prerequisites for NURBS editing in BRL-CAD's GUIs
Details
BRL-CAD has support for raytracing of NURBS surfaces implemented, but they are handed over as BLOBs to the openNURBS library. Beyond basic operations such as rotation and translation, the BRL-CAD core has no ability to edit them. This project would implement support for editing NURBS curves and surfaces in the BRL-CAD core, thus creating the prerequisites to handle them with higher level (i.e. GUI) tools.
See this task's description in former GSoCs for some more information: https://brlcad.org/wiki/NURBS_Editing_Support
The key-feature would be to have ged command(s) that lets you build NURBS objects from scratch. This could be done by having a declarative ASCII description of these entities and/or wrapping the openNURBS library by a scripting language.
Describe in your proposal which approach you want to use and why. You may let inspire you by solutions in other programs:
Expected Outcome
Implementing the necessary logic for NURBS handling in librt, libbrep, and libged
Future Possibilities
Implementing a visual NURBS editor in a BRL-CAD GUI (mged, Archer, Arbalest)
Project Properties
Skills
Difficulty
medium
Size
long (350h)
Additional Information