User:Clouddrift/GSoC2014

From BRL-CAD
< User:Clouddrift
Revision as of 08:49, 14 March 2014 by Clouddrift (talk | contribs) (Detailed Description)

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

Remove some redundant models and NMG regional structs and assure such changes be without side-effects.
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

Extract NMG part from LIBRT to a stand-alone library called ‘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.

Links

[1] http://www.scorec.rpi.edu/REPORTS/1986-1.pdf