Editing User:NyahCh3ck20/GSoc2013/Coding Report


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:
==== Coding Log Report for GSoc 2013 ====
==== Coding Log Report for GSoc 2013 ====
Daily log:
Daily log:
This year's GSoC was my first and most exciting projects given the fact that I'm working on my first opensource project and contributing for my first time to a great software and organization like BRL-CAD.
For the past three months I worked on implementing a pull routine which reversed the effects of a push on a CSG tree. This project focused on reversing the effects of the push command available in BRL-CAD and also pulling up and unpushed node. While following my implementation outline as described in my [http://brlcad.org/wiki/User:NyahCh3ck20/GSOC13/Design_Document Design Document], I kept modifying the plan as needed and tried updating my [http://brlcad.org/wiki/User:NyahCh3ck20/GSoc2013/Coding_Report logs] daily especially when I initially had no stable Internet access.
Before the Mid-term Evaluations, I studied the push and xpush routines seeing how the matrices were pushed down the tree in respective commands and started implementing and finished implementing the pull_comb() routine which pulls the matrix transformations in a combination node. Submitted patches on sourceforge for review. I tested various parts of the routine and made sure routine works perfectly will continue testing and fixing bugs if any post GSoC to make sure command is complete. Also, I wrote tests for the poly.c routines and submitted patches on sourceforge; tested the bn_mat_inverse() routine implemented for BRL-CAD and proposed new routine  which are still awaiting review by mentors.
Post Mid-term evaluations, I studied the various primitives trying to figure out how to implement the pull_leaf() routine for each primitive which was later disproved by Sean as a bad design choice which led to my implementing of the pull_leaf() using the AABB's of primitives which enabled me to pull translation components successfully. I also developed the pull interface, wrote regression tests, created the man pages and other documentation which will integrate command fully into BRL-CAD.
During Final Days and Post-GSoC I plan to finish implementing the pull_leaf routine which pulls both the scale and rotation components of primitives for BRL-CAD completing the pull routine and any other new projects as needed.
This was one of the most exciting summers of my life.
=== Test Results ===
=== Test Results ===
Line 487: Line 469:
Tuesday 27 August 2013
Tuesday 27 August 2013
*Finished debugging pull_leaf() but routine is incomplete since I don't currently support all primitives. Will follow Sean's instructions and start developing pull interface from tomorrow by adding synopsis, docs, full integration and test cases.
*Added support for truncated cones in pull_leaf() but a bug hangs in there. Will take a peek tomorrow or finish this night before going to sleep.
Wednesday August 28, 2013
*Started developing the interface by adding the stubbing the pull to archer  interface.
*Added the pull routine to the tclscripts, libtclcad, and wrote the pull documentation in brlcad/doc/ directories.
Still to finish writing the regresssion tests before moving on to adding  support for pulling primitives on BRL-CAD.
Thursday August 29, 2013
*Started and finished writing the regression tests for the pull command.
*Tested and compiled code but pull does not appear on the command line when regression tests are ran. Will ask on IRC for assistance here.
Todo: When done with developing the pull interface, I'll dive into writing the pull_leaf routine for all primitives.
Friday August 30, 2013
*Tested regression tests for pull and added manual pages and documentation for pull successfully such as in man pages, appropos library for pull
*To create patch and submit on sourceforge, also tried adding pull to archer but found a little problem. To discuss with mentor on how to proceed.
TodO: After approval of man pages, to continue adding support for all primitives into pull command. and fix bn_poly_sub() test patch.
Saturday August 31, 2013
*Finished testing regression tests and uploaded code to sourceforge
* Continued looking at the primitives such as arb8, arbn so as to continue working on primitives for pull.
== Sept 02 - Sept 08  ==
== Sept 02 - Sept 08  ==
Monday Sept 02
*Started looking at the other primitives; left to complete the pull_leaf() routine. Saw many complications with many primitives. Will need the Assistance of Sean in extracting the matrix transformations from them.
Tuesday Sept 03
*Fixed bug in bn_poly_sub() unit test; uploaded code to [https://sourceforge.net/p/brlcad/patches/224/ sourceforge].
*Succeeded in pulling the following primitives(TGC, REC, PARTICLE, EPA, EHY, HYP, ETO, EXTRUDE). Still left with about 26 primitives to be pulled in order to complete the pull_leaf() routine.
Will need some directions on how to implement pull_leaf() since using switch case statements is not a good design choice.
Thursday05 - Sunday 08
*Took a break so as to recover from malaria.
== Sept 09 - Sept 15  ==
== Sept 09 - Sept 15  ==
Monday 09 October
*Started looking at AABB bbox routines in BRL-CAD. Still to develop simple algorithm that automatically processes the translation from bbox return vectors to determine original translation.
*Read some online wiki pages on AABB bounding box of objects.
ToDO: To start writing routine and unit test tomorrow
Tuesday 10 October
*Started and finished writing tranlate routine which extracts and sets the translation component from the bounding box minimum and maximum points from the bounding box routine.
*To integrate general bounding box calculating function for every primitive.
Wednesday 11 October
* Started testing pull_leaf routine using the rt_functab bbox routine and successfully pulled some translations assuming object's centrepoint was translated from the origin(0,0,0). But still waiting on Sean for some clarifications on the math.
*To look at confirmation from sean and perfect the pull_leaf routine, completing the pull routine and running through valgrind.
Thursday 12 October
*Perfected math on moving bounding box and primitive to origin before extracting translation. But will start testing tomorrow.
Friday 13 October
*Successfully wrote the pull_leaf routine which pulled the translation components of the primitive.
*Tested routine together with the pull_combination routines and successfully moved the matrices right up to the root of the tree. but still unclear with cases where the matrix transformations for the combinations is NAN.
* Submitted [https://sourceforge.net/p/brlcad/patches/215/ patch] on sf and awaiting review before moving on to porting command to archer since i've not been granted commit access.
== Sept 16 - Sept 22  ==
== Sept 16 - Sept 22  ==
Monday Sept 16,
*Started re-testing the pull routine starting from the pull_leaf which pulled correctly.
*Discovered a bug with the pull_comb() routine which pulls matrices which are not symmetric;so will fix bug tomorrow.
*Started stubbing pull to archer but had an error will try to fix problem tomorrow or post question on mailing list and see what comes up.
Tuesday Sept 17
*Continued testing the pull_leaf and realised NAN values were being pulled from the primitives which are to be set to zero in such cases.
*Started fixing bug.
Wednesday Sept 18
* Continued fixing pull_leaf routine but realised pull_comb() routine pulled matrix transformations having NAN as values. to ask mentors about this problem if it persists.
* Was in a meeting with the Vice Chancellor as Google Student Ambassador and explained my Vision for the University during my tenure.
Thursday Sept 19
* Started preparing for my upcoming exams next week; and had a meeting with the Public relations Officer of the University concerning my recent appointment as Google Student Ambassador and plans for the University community.
Friday Sept 20
* Attended the Interview at the University Media House( Chariot FM) where I explained my GSoC experience and current work as Google Student Ambassador.
Saturday Sept 21
*Wrote the Project summary and continued preparing for my exams next week.
== Sept 23 - Sept 28  ==
== Sept 23 - Sept 28  ==
#Monday Sept 23
Started looking at the BRL-CAD documentation spreadsheet posted by Harmanpreet and summarising all documents on the list. Requested for the script from Harmanpreet that automates the summary of the documents.
@Will finish summarising documents tomorrow; since I have to prepare for some of my exams coming up from tomorrow.

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)