Editing STEP Libraries
From BRL-CAD
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
STEP is the current standard for exchange of CAD data between different software packages. BRL-CAD makes use of the NIST STEP Class Libraries code to support its step-g converter, but this source code was written before many current C++ standard practices and libraries were finalized. As a consequence, it needs both cleanup and performance enhancements. | STEP is the current standard for exchange of CAD data between different software packages. BRL-CAD makes use of the NIST STEP Class Libraries code to support its step-g converter, but this source code was written before many current C++ standard practices and libraries were finalized. As a consequence, it needs both cleanup and performance enhancements. | ||
− | For this project, a student should examine the existing | + | For this project, a student should examine the existing STEP code in BRL-CAD (src/other/step) and create a list of tasks that need to be done in order to modernize the C++, improve library performance, improve code maintainability, and better document the STEP libraries. BRL-CAD's step-g converter will serve as a test for the functionality of the library. |
Specific items to remember: | Specific items to remember: | ||
* The libraries should compile with strict compiler flags, as used in recent BRL-CAD compilations. | * The libraries should compile with strict compiler flags, as used in recent BRL-CAD compilations. | ||
+ | * The generated source code files should be usable "out of the box" for step-g (we currently use a hand-tweaked version of the generated files in the step-g converter build) | ||
* Large files need to be handled quickly, so performance is important - this could be as simple as modernizing string handling, but if there are more fundamental issues they will need to be addressed as well. | * Large files need to be handled quickly, so performance is important - this could be as simple as modernizing string handling, but if there are more fundamental issues they will need to be addressed as well. | ||
* BRL-CAD makes use of the doxygen system for source code documentation, so organizing source code documentation in the step libraries to work well with doxygen should be part of the review and updating process. | * BRL-CAD makes use of the doxygen system for source code documentation, so organizing source code documentation in the step libraries to work well with doxygen should be part of the review and updating process. |