Difference between revisions of "User:Sharan.nyn/GSoC18/Log"

From BRL-CAD
(Week 2)
(Week 6)
(32 intermediate revisions by 2 users not shown)
Line 20: Line 20:
 
** Tried out callback functions, implementing a basic callback function that alters an int.
 
** Tried out callback functions, implementing a basic callback function that alters an int.
  
==== Week 1 ====
+
==== Coding Period ====
 +
===== Week 1 =====
  
 
* 14/05/18
 
* 14/05/18
Line 46: Line 47:
 
** Fixed printing of the overlap list.
 
** Fixed printing of the overlap list.
  
==== Week 2 ====
+
===== Week 2 =====
 
* 21/05/18
 
* 21/05/18
 
** Clean-up of the libanalyze function :
 
** Clean-up of the libanalyze function :
Line 65: Line 66:
 
* 26/05/18
 
* 26/05/18
 
** Added plot file output option.
 
** Added plot file output option.
** submitted patch [https://sourceforge.net/p/brlcad/patches/491/ #491] fixing some minor issues with the accepted patch #488.
+
** Fixed check_overlaps command not showing up in Archer.
 +
** Submitted patch [https://sourceforge.net/p/brlcad/patches/491/ #491] fixing some minor issues with the accepted patch #488.
 
* 27/05/18
 
* 27/05/18
 
** Added old_way of processing stdin.
 
** Added old_way of processing stdin.
 
** Added command driven way of processing stdin.
 
** Added command driven way of processing stdin.
 
** Have to test the changes, it compiles fine.
 
** Have to test the changes, it compiles fine.
 +
 +
===== Week 3 =====
 +
* 28/05/18
 +
** Couldn't code in the morning hours. My cousin brother came and played games on my PC all day!
 +
** Added getting objects from view feature to ged_check_overlaps
 +
** Tested rtcheck executable for matflag inputs.
 +
* 29/05/18
 +
** Trying my best to get the display of overlaps working for ged_check_overlaps.
 +
** Okay it worked but I used temp file so that I could use two inbuilt functions pdv_3line and rt_process_uplot_value. But using them is not needed. So as suggested by Daniel, I will try to merge them together and remove the file dependency and buildup the list in my overlapsHandler.
 +
** With it I found one more bug with yesterday's work, that if do draw g4 and do checkover_laps g4 then it would consider g4 twice! :/. To solve this Daniel suggested to not consider visible objects if objects are mentioned with command.
 +
** Success! all worked out with so much minimal code, just 5 lines instead of my initial work that involved 25 lines.
 +
* 30/05/18
 +
** Fixed bug with overlays considered as visible object on second run.
 +
** while testing matflag for rtcheck:
 +
*** fixed a bug in tree command.
 +
*** added parsing of az/el in degree/radians values for cm_ae.
 +
*** fixed issue with Multiview giving segfault.
 +
** Added -r, -R flag to rtcheck.
 +
** Added -d flag to rtcheck and check_overlaps to print some debug information.
 +
* 31/05/18
 +
** Fixed a major flaw in the overlapsHandler giving the same data for both reg1 and reg2.
 +
** Fixed issue of getting first row of plot file as W 0 0 0 0 0 0
 +
** Added feature to check_overlaps for getting view information from gedp.
 +
* 1/06/18
 +
** Fixed scrambled overlays from check_overlaps.
 +
** Experimenting with bu_list for overlaps list.
 +
* 2/06/18
 +
** Using bu_list for overlaps_list in rtcheck
 +
** Didn't do much other than that, spent some time with family :)
 +
* 3/06/18
 +
** Submitted v2 patch for check_overlaps changes [https://sourceforge.net/p/brlcad/patches/491 #491]
 +
** Fixed bug with multiview caused by handling overlapList in main, moving to do_frame solved it.
 +
** Submitted patch [https://sourceforge.net/p/brlcad/patches/494/ #494] fixing again some issues with #491 :D
 +
===== Week 4 =====
 +
* 4/06/18
 +
** Adapting archer to use check_overlaps instead of rtcheck to libged/rtcheck.c
 +
** Applied fix for fix-me comment as suggested by Daniel.
 +
** Figured out why wireframes weren't displayed in Archer, turned out to be not compiling with openGL.
 +
* 5/06/18
 +
** Submitted patch [https://sourceforge.net/p/brlcad/patches/495/ #495] for rtcheck program.
 +
** Continuing work on adaptation of archer.
 +
** Finally figured out how to deal with pane data in archer, spent hours to figure it out and it was a really simple thing xD. Just needed to use to_view_func instead of to_pass_through_func in tclcadobj.c
 +
** with that I think I am done with adapting check_overlaps and ready to remove libged/rtcheck.c
 +
* 6/06/18
 +
** Started documentation works, it is not much fun :/ so didn't do much.
 +
* 7/06/18
 +
** Changed check_overlaps behavior to get objects only from view, updated the related documentation too. *REVERTED*
 +
** Added handling for when the user mentions duplicate objects for rtcheck
 +
** Submitted patch adapting check_overlaps to archer and mged [https://sourceforge.net/p/brlcad/patches/496/ #496]
 +
* 8/06/18
 +
** Completed documentation.
 +
** Submitted patch for documentation [https://sourceforge.net/p/brlcad/patches/497/ #497].
 +
* 9/06/18
 +
** Had to revert adaption patch because we can't remove rtcheck without deprecation.
 +
* 10/06/18
 +
** Fixed a bug with check_overlaps and rtcheck allocation of memory for region names. committed - r71063
 +
** compared the outputs of old rtcheck program and new rtcheck program.
 +
*** got it to match finally after small tweaks
 +
===== Week 5 =====
 +
* 11/06/18
 +
** reapply reverted changes for adaption of check_overlaps to archer.
 +
*** committed the changes - r71065, r71066 and r71067
 +
** Had a hard time fighting with sourceforge to push the commits :/
 +
** reworked the documentation because of removal of rtcheck without deprecation.
 +
* 12/06/18
 +
** fixed MGED's overlap tool - r71068
 +
** Just read through the checker.tcl file.
 +
* 13/06/18
 +
** Continued reading.
 +
** Fixed rtcheck and matched output with new rtcheck
 +
* 14/06/18
 +
** Nothing much done today, made a plan to proceed further.
 +
* 15/06/18
 +
** Started work on porting check.sh to a Tcl file.
 +
** Now able to print the list, need something to store the values efficiently.
 +
* 16/06/18
 +
** Storing the overlaps as objects of a class, which is stored in a list.
 +
* 17/06/18
 +
** Took some rest and spent time with family ^_^.
 +
===== Week 6 =====
 +
* 18/06/18
 +
** Continued work on overlap tool.
 +
** Added check for if the objects actually exists.
 +
** Showing status on what the tool is doing.
 +
** Better sorting done.
 +
* 19/06/18
 +
** Using simple lists now in overlap tool instead of using classes and objects which made everything complicated.
 +
** Fixed a bug with check.sh [https://sourceforge.net/p/brlcad/code/71093/ r71093]
 +
* 20/06/18
 +
** Using Itcl and Itk for overlap tool.
 +
** Added progress bar.
 +
* 21/06/18
 +
** Read documentation of Itcl and Itk to get idea on how to use it.
 +
* 22/06/18
 +
** Added overlap menu with options to browse, create new overlaps file and run check
 +
** Integrated everything together
 +
* 23/06/18
 +
** Read gqa related code, since I was waiting for the feedback on the above works.

Revision as of 09:23, 23 June 2018

Development Logs

Community Bonding Period

Due to my semester end exams (Apr 26 - May 17), my time spent during community bonding period was less but I still managed to do the following:

  • Week 1
    • Prepared a flowchart to understand how the execution of the rtcheck program works : rtcheck_flow
    • Was introduced to 'gdb' which helped me a lot to analyze the flow.
    • Understood how the front-end portions of rt and back-end portions are connected by linking the view*.c files
  • Week 2
    • Read the documentation to understand the RTUIF API : https://brlcad.org/wiki/Developing_applications
    • Understood the origins of libanalyze functions.
    • Discussed some ideas on how to implement the libanalyze function, all were bad ideas because they all involved calling the rtcheck program using execvp() as they usually end with exit().
    • Was suggested a basic plan on how to proceed.
    • Understood how libanalyze functions were used by an example : libged/voxelize.c and libanalyze/voxels.c
  • Week 3
    • Complied a version of the rtcheck program by just copying the relevant files to libanalyze/overlaps/.
    • Discussed the plan related to rtcheck in detail.
    • Understood the concept of using contexts and callback functions.
    • Tried out callback functions, implementing a basic callback function that alters an int.

Coding Period

Week 1
  • 14/05/18
    • trying to build a new rtcheck command by stripping down the non-necessary parts of the front-end, so that the code is easier to understand.
    • discussed a lot of issues with mentor.
  • 15/05/18
    • started working on the design of the libanalyze function
    • all parts of rt/main.c and do_ae() done
  • 16/05/18
    • added do_frame(), do_run() and grid_setup() to libanalyze.
  • 17/05/18
    • added worker() and do_pixel()
    • used a worker_context to pass data to worker using the void pointer for bu_parallel
    • when I ran the command I was getting segfault at rt_gettrees, thought I'd fix it next day
  • 18/05/18
    • figured out the problem but it meant moving a lot of content to libanalyze
    • I did it anyway out of curiosity and it fixed the problem with rt_gettrees still it crashed at rt_shootray!
    • At the end of the day after a lot of debugging and trials, found out that rt_shootray was calling the hit sequence of gqa :O, not sure why.
    • A quick rename of the hit sequence of libanalyze to check_hit solved the problem.
    • Still need to figure out how to call rt_gettrees without moving all function calls to libanalyze.
  • 19/05/18
    • Added code to fill the overlap list passed through callback data.
    • Using `gedp->ged_wdbp->dbip` to get the db name instead of asking it before objects.
  • 20/05/18
    • Fixed printing of the overlap list.
Week 2
  • 21/05/18
    • Clean-up of the libanalyze function :
      • Fixed a derp with setting default values of width and height in libanalyze instead of libged.
      • Removed redundant header files.
    • Read code for libged/gqa.c
    • Prepare patch for the work done in first week.
  • 22/05/18
    • Submitted the patch:#488
    • Did follow up and submitted v2.
  • 23/05/18
    • Didn't do much today : Read the checker.tcl file for understanding.
  • 24/05/18
    • Updated the patch and submitted v3.
  • 25/05/18
    • Discussed the plans for refactoring rtcheck.
    • Started work on rtcheck.
  • 26/05/18
    • Added plot file output option.
    • Fixed check_overlaps command not showing up in Archer.
    • Submitted patch #491 fixing some minor issues with the accepted patch #488.
  • 27/05/18
    • Added old_way of processing stdin.
    • Added command driven way of processing stdin.
    • Have to test the changes, it compiles fine.
Week 3
  • 28/05/18
    • Couldn't code in the morning hours. My cousin brother came and played games on my PC all day!
    • Added getting objects from view feature to ged_check_overlaps
    • Tested rtcheck executable for matflag inputs.
  • 29/05/18
    • Trying my best to get the display of overlaps working for ged_check_overlaps.
    • Okay it worked but I used temp file so that I could use two inbuilt functions pdv_3line and rt_process_uplot_value. But using them is not needed. So as suggested by Daniel, I will try to merge them together and remove the file dependency and buildup the list in my overlapsHandler.
    • With it I found one more bug with yesterday's work, that if do draw g4 and do checkover_laps g4 then it would consider g4 twice! :/. To solve this Daniel suggested to not consider visible objects if objects are mentioned with command.
    • Success! all worked out with so much minimal code, just 5 lines instead of my initial work that involved 25 lines.
  • 30/05/18
    • Fixed bug with overlays considered as visible object on second run.
    • while testing matflag for rtcheck:
      • fixed a bug in tree command.
      • added parsing of az/el in degree/radians values for cm_ae.
      • fixed issue with Multiview giving segfault.
    • Added -r, -R flag to rtcheck.
    • Added -d flag to rtcheck and check_overlaps to print some debug information.
  • 31/05/18
    • Fixed a major flaw in the overlapsHandler giving the same data for both reg1 and reg2.
    • Fixed issue of getting first row of plot file as W 0 0 0 0 0 0
    • Added feature to check_overlaps for getting view information from gedp.
  • 1/06/18
    • Fixed scrambled overlays from check_overlaps.
    • Experimenting with bu_list for overlaps list.
  • 2/06/18
    • Using bu_list for overlaps_list in rtcheck
    • Didn't do much other than that, spent some time with family :)
  • 3/06/18
    • Submitted v2 patch for check_overlaps changes #491
    • Fixed bug with multiview caused by handling overlapList in main, moving to do_frame solved it.
    • Submitted patch #494 fixing again some issues with #491 :D
Week 4
  • 4/06/18
    • Adapting archer to use check_overlaps instead of rtcheck to libged/rtcheck.c
    • Applied fix for fix-me comment as suggested by Daniel.
    • Figured out why wireframes weren't displayed in Archer, turned out to be not compiling with openGL.
  • 5/06/18
    • Submitted patch #495 for rtcheck program.
    • Continuing work on adaptation of archer.
    • Finally figured out how to deal with pane data in archer, spent hours to figure it out and it was a really simple thing xD. Just needed to use to_view_func instead of to_pass_through_func in tclcadobj.c
    • with that I think I am done with adapting check_overlaps and ready to remove libged/rtcheck.c
  • 6/06/18
    • Started documentation works, it is not much fun :/ so didn't do much.
  • 7/06/18
    • Changed check_overlaps behavior to get objects only from view, updated the related documentation too. *REVERTED*
    • Added handling for when the user mentions duplicate objects for rtcheck
    • Submitted patch adapting check_overlaps to archer and mged #496
  • 8/06/18
    • Completed documentation.
    • Submitted patch for documentation #497.
  • 9/06/18
    • Had to revert adaption patch because we can't remove rtcheck without deprecation.
  • 10/06/18
    • Fixed a bug with check_overlaps and rtcheck allocation of memory for region names. committed - r71063
    • compared the outputs of old rtcheck program and new rtcheck program.
      • got it to match finally after small tweaks
Week 5
  • 11/06/18
    • reapply reverted changes for adaption of check_overlaps to archer.
      • committed the changes - r71065, r71066 and r71067
    • Had a hard time fighting with sourceforge to push the commits :/
    • reworked the documentation because of removal of rtcheck without deprecation.
  • 12/06/18
    • fixed MGED's overlap tool - r71068
    • Just read through the checker.tcl file.
  • 13/06/18
    • Continued reading.
    • Fixed rtcheck and matched output with new rtcheck
  • 14/06/18
    • Nothing much done today, made a plan to proceed further.
  • 15/06/18
    • Started work on porting check.sh to a Tcl file.
    • Now able to print the list, need something to store the values efficiently.
  • 16/06/18
    • Storing the overlaps as objects of a class, which is stored in a list.
  • 17/06/18
    • Took some rest and spent time with family ^_^.
Week 6
  • 18/06/18
    • Continued work on overlap tool.
    • Added check for if the objects actually exists.
    • Showing status on what the tool is doing.
    • Better sorting done.
  • 19/06/18
    • Using simple lists now in overlap tool instead of using classes and objects which made everything complicated.
    • Fixed a bug with check.sh r71093
  • 20/06/18
    • Using Itcl and Itk for overlap tool.
    • Added progress bar.
  • 21/06/18
    • Read documentation of Itcl and Itk to get idea on how to use it.
  • 22/06/18
    • Added overlap menu with options to browse, create new overlaps file and run check
    • Integrated everything together
  • 23/06/18
    • Read gqa related code, since I was waiting for the feedback on the above works.