User:Izak/GSOC 2013 logs
Project Title : Implementation of a heart primitive.
Name: Isaac Kamga.
IRC Name (Handle): Izak
Phone : +237 74 10 62 97
This page will contain logs of the work I will be doing during and after the summer of code period.
From June 3rd to June 7th
- Compiled and ran BRL-CAD from source (in 26 minutes) as well as used mged command interface.
- Studying /src/librt/primitives/*/*.
- Revising red-black trees in "Introduction to algorithms",third edition book by Cormen.
From June 10th to June 14th
- Fixing rb_delete.c to effectively delete nodes.
From June 17th to June 21
- Finished working on rb_delete.c .
- Edited raytrace.h by defining ID_HRT 43 ,incrementing ID_MAXIMUM and ID_MAX_SOLID to 44 as shown in this patch .
- Added the DB5_MINORTYPE_BRLCAD_HRT 42 define to db5.h as shown here .
- Hoped to do this today
Need to look at the "Metaball" paper on using the blobby method . Read volume rendering by Drebin et al . Edit magic.h and rtgeom.h to include the heart primitive .
- However, took ill ( of malaria ) so undergoing treatment .
- Ill of malaria so undergoing treatment .
- Ill of malaria so undergoing treatment .
- Uploaded some patches here.
- Recovering from brief illness....
- Updated GSoC 2013 Accepted projects page on the wiki .
From June 24th to June 29th
- Re-read the Patch submission guidelines in the HACKING file .
- Read the research paper, Volumetric shape description using the blobby model, which was used to implement the meta ball primitive (by the second method). Since the above method is used with two sphere primitives to create a metaball , I am considering using this same method alongside two spheres (for the heart lobes ) and an elliptical parabola (for the lower portion of the heart ).
- Studying the ray tracing geometry header ( rtgeom.h ) to write the heart primitive's internal representation (struct rt_hrt_internal) .
- Searching for more information on the key properties of the heart .
- Editing the magic numbers header ( magic.h ) which I have patched here .
- Currently writing the struct rt_hrt_internal structure which I have kept here .Also wrote the RT_HRT_CK_MAGIC(_p) macro in rtgeom.h for the heart .
- Finished Modifying the magic header file here which I earlier on submitted .
- Looking into the internal representations of the tor and the superell .
- Reading the rt_???_shot() functions in src/librt/primitives/tor/tor.c and src/librt/primitives/superell/superell.c to understand how they build up and evaluate formulae.
- Included the internal representation of the heart in the include/rtgeom.h file used by the ray trace geometry library .That is, added the ID_HRT section ( struct rt_hrt_internal ). Please, take a look :)
- Editing the table.c file in src/librt/primitives .Declared a raytrace interface for the heart by RT_DECLARE_INTERFACE(hrt) . Edited the rt_functab array by providing an entry ID_HRT for the heart primitive. That is, add RT_FUNCTAB_MAGIC, "ID_HRT", "hrt",rt_hrt_*, just to name a few. You are welcome to look at my progress.
- Early in the morning I Left Buea, my home town to collect Google's welcome package in Douala. Collected some cash from the available ATM . Negotiating for Internet access and cool coding environment.Really tired.
- Corrected and submitted the db5 header ( See db5.patch ) based on guidelines given by mentors.
- Corrected and submitted the raytrace header ( See raytrace.patch ) based on guidelines given by mentors.
- Corrected and submitted the magic header ( See newest_magic.patch ) based on guidelines given by mentors. Still to correct the magic.c file to make these changes complete.
- Editing the magic.c file to accommodate the heart primitive. Uploaded the patch here.
- Reworking the ray trace geometry header file (rtgeom.h) so that the internal representation of the heart will be accurate.
From July 1st to July 6th
- Working on struct rt_hrt_internal inorder to include the heart primitive into the include/rtgeom.h header. Reading wikipedia and Wolfram pages on heart symbol,Level set,cusps and epicycloids.
- Combined magic_h.patch and magic_c.patch into single magic.tar.gz compressed file .
- Combined db5_h.patch and db5_types_c.patch into single db5.tar.gz compressed file.