User:Clouddrift/GSoC2014/Logs

From BRL-CAD
< User:Clouddrift‎ | GSoC2014
Revision as of 21:06, 3 June 2014 by Clouddrift (talk | contribs) (Week 1)

Community Bounding Period

Get the commit access

Submit two patches for nmg part of BRL-CAD. URLs as following.

Read the relavant Codes

Read and be familiar with nmg-related codes in BRL-CAD.

Acquired knowledge

  • Keep code style consistent is important for Open Source Community.
  • Comments greatly helps others to understand the function of routines and structs. Codes should be changed before fully tracking the call order of routines and totally understanding the comments of them.
  • That's a really good ideas to submit one or two patch to know the coding convention of the community. As a chinese saying goes, sharpening your axe will not delay your job of cutting wood.

Work Perod

Week 1

Monday, May 19

Read TODO, HACKING, COPYING and other files again. Be ready for formal coding job.

Tuesday, May 20

Find and read some pages about the details in using SVN and CMake.

Wednesday, May 21

Get the commit access for BRL-CAD successfully. What a day to celebrate! Now, I begin my work on a branch for NMG reorganization. Remove model and nmgregion struct, Then ready to fix all compilation errors.

Thursday, May 22

Rewrite nmg struct to fit BRL-CAD better. Remove model and nmgregion struct, Then change shell struct as following.

  • remove member: l (bu_list);
  • remove member: r_p (nmgregion pointer);
  • add member: magic (uint32_t);
  • add member: manifolds (char pointer);
  • add member: maxindex (long);

Friday, May 23

Fix the rest compilation errors due to fit the new nmg structure.

Acquired knowledge

  • Committing without breaking the build is always the best choice. Try to use comment to achieve this point and record such codes in TODO file for fixing later.

Week 1

Monday, May 26

Continue to cleanup the codes.

Tuesday, May 27

Until this afternoon, I finished most of the removing job. But I find some places cannot simply replaced the model/nmgregion with shell. e.g. the routine nmg_merge_shells used in nmg_booltree_evaluate(...) and nmg_boolean(...).

Wednesday, May 28

I discuss my concern with Daniel. He suggest me to use nmg_comb_internal to deal with such situation. And the whole job will be done if NMG part runs good after I do all replacement.

Thursday, May 29

I study carefully about the the function about nmg_comb_internal and related codes. e.g mk_lfcomb(), mk_addmember(), and so on.

Friday, May 30

Many places should be changed again because I missed the nmg_comb_internal. I review the codes in NMG parts one by one.