Difference between revisions of "User:Clouddrift/GSoC2014"
From BRL-CAD
Clouddrift (talk | contribs) |
Clouddrift (talk | contribs) (→Extract NMG to be a stand-alone library) |
||
Line 23: | Line 23: | ||
=== Extract NMG to be a stand-alone library === | === Extract NMG to be a stand-alone library === | ||
− | : | + | : As a function-independent module, NMG should be moved from LIBRT to a new stand-alone library named LIBNMG. |
=== Add comments === | === Add comments === |
Revision as of 10:22, 14 March 2014
Contents
Project Title
- Mesh Library Cleanup
Synopsis
- BRL-CAD has an extensive n-manifold (NMG) polygonal mesh library presently embedded within LIBRT. N-manifold can provide an arbitrary boundary representation structure. This part sometime is not instable and contains lots of inefficient parts.
- The goal of this project is to cleanup, validate and verify source code about NMG.
Detailed description
The current status of NMG
- Now, this part is mainly located in raytrace.h and nmg.h, and is mixed with other irrelevant structs, macros and functions.
Remove redundant code
- Originally, the NMG primitive is designed and implemented for a stand-alone NMG CAD. But some level of concept can be substituted for by some part in database structure. So they become redundant now.
- 1) The model represents the whole geometry, which is similar to the content of BRL-CAD *.g file.
- 2) The nmgregion is similar to the BRL-CAD region struct.struct.
- 3) Maybe others.
- These structures are invisible for BRL-CAD and so do ray-trace. So it is necessary to assure only one shell in an NMG primitive rather than several.
Extract NMG to be a stand-alone library
- As a function-independent module, NMG should be moved from LIBRT to a new stand-alone library named LIBNMG.
Add comments
- Add some proper comments into nmg.h for helping others being familiar with the API rapidly.
Unit test
- Write some unit test for new ‘LIBNMG’.
Brief Background
- I am a master graduate student in State Key Lab of CAD & CG, School of CS, Zhejiang University, China. I have 3-year work experience in programming a CAD module for an Optical Critical Dimension system in a conductor measurement company using Open Cascade. Now, my main research direction is something about hexahedral mesh.
Why BRL-CAD
- I like this open source CAD system and community. I believe I can learn rich experience and knowledge in connection with CAD from this project and other developers.
Why me
- This project is mainly about NMG mesh that is more or less related to my study and work experience. I am sure I can finish it with high quality in time.