User:Sharan.nyn/GSoC18/Log

From BRL-CAD
< User:Sharan.nyn
Revision as of 15:45, 21 May 2018 by Sharan.nyn (talk | contribs) (Week 2)

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.

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.