User:Tandoorichick/GSoC2016/Logs
Blog with week-wise work including all ideation and explanation at: http://tandoorichick.github.io/
Development Logs
23/5/16, 24/5/16 - Confusion regarding the indexed and unindexed format of BRL-CAD and OpenSCAD -> researched other ways to implement the portable module. Confusion regarding the use of DCEL as well.
25/5/16 - Outlined the PolygonalMesh abstract class. Listed out the functions that will be required for the conversion from PolygonalMesh to the DCEL.
26/5/16 - Outlined the doubly-connected edge list class. Declared virtual functions (that will obtain information from the intermediate mesh to convert to the DCEL) in the PolygonalMesh abstract class. Others will be added later on when the need arises.
27/5/16 - Set up the BrlcadMesh class and defined functions. Implemented few geometry utility functions - orientation checking. Went through source to find function function: rt_bot_same_orientation() to check if an edge and a triangle are oriented the same way.
28/5/16 - Vertex record functions definition
29/5/16 - Face record functions definition
30/5/15 - Edge record functions definition
31/5/16 - Setting up OpenSCAD and going through the code. Little bit confusion regarding the Vector3D variable.
1/6/16 - Implemented some geometry util functions - checking if two triangles are oriented the same way, calculating determinant. Face record functions
2/6/16 - Vertex record functions and some of edge record functions
3/6/16 - Edge record functions
4/6/16 - Classes' design changes. Functions common to both native structures were implemented in the PolygonalMesh class itself.
5/6/16 - UI commands support - added a dummy command "heal" and tested with a sample message
6/6/16 - Changes in the conversion module code according to Daniel's suggestions
7/6/16 - Defined the queue element for the zipper gaps algorithm, set up the files and started with outline.
8/6/16 - Wrote functions for initializing priority queue and listed out other utility functions that might be needed
9/6/16 - Function to zipper gaps
10/6/16 - Implemented utility functions - finding orthogonal projection, calculating feature pair, etc.
11/6/16 - Out of station
12/6/16 - Out of station
13/6/16 - Set up the module inside the libanalyze folder in the BRL-CAD source. Functions to update the DCEL structure - like splitting a face, inserting a vertex on an edge
14/6/16 - Created a separate header Geometry.h to keep all geometry related functions like finding if a point can be orthogonally projected to a line, find such a projection, distance between two points, distance between a point and a line, etc. Continued writing functions to update the DCEL structure and inserted calls to them.
15/6/16 - Wrote utility functions for accessing and updating the rt_bot_internal structure.
16/6/16 - Had set the unbounded face id to be the number of faces initially, changed that after facing problems while adding and deleting faces. Updated all relevant functions. Came up with an approach for finding the closest edge that does not cross any existing vertex/edge/face. Solved other errors. Built code successfully.
17/6/16 - Had to write TCL command binding again (because i had checked out revision without saving the work). Analysed the closest edge function logic.
18/6/16 - Personal commitments
19/6/16 - Moved header files around to include directory, but undid. Build errors due to missing headers when i included a header file in the existing code. Asked for help on the IRC.
20/6/16 - Wrote analyse_heal_bot to link to the TCL command. Function to find free edge chains that are not loops was also written. Including C++ headers in the MeshConversion.h file gives errors while including MeshConversion.h in src/libwdb/bot.c for analyse_heal_bot(). Yet to figure out. Went through earlier code to correct any apparent mistakes.
21/6/16 - Modified code for finding closest edge. And modified code to conform to BRL-CAD coding standards. Uploaded modified patch on SourceForge. Started work with stitching gaps since compilation was unsuccessful. Got solution, made changes. Yet to compile successfully.
22/6/16 - Error while linking C++ code to C. Started with stitching in the meanwhile. Compiled module later on. Started debugging.
23/6/16 - Tested code. Conversion module gets DCEL to shape. Testing of zippering gaps going on.
24/6/16 - Changed logic for closest edge function, to handle feature edge and feature vertex properly. Works for most cases. Rest yet to be fixed.
25/6/16 - Figured out way to separate the boundary of a mesh from the defects (using orientation). Till initization of the priority queue works fine (finding free edge chain, finding closest edge for those, calculating error and inserting into the priority queue. Memory corruption error with the zipperGaps() function. I'm trying to resolve it.
26/6/16 - Resolved one memory corruption error. Another popped up with the priority queue. Finding ways to resolve that.