User:Phoenix/GSoc2012/Reports
From BRL-CAD
Contents
Log
Community Bonding
- May 2
- Downloaded the source code of the latest revision from svn checkout and got more familiar with subversion.
- Compiled and built the source both in Ubuntu and Windows (Visual Studio 2010) successfully.
- May 13
- Found and fixed a small bug in eto_brep (the rotation axis of eto is wrong), and submitted a patch on sourceforge.net.
- May 15
- Modified the eto_brep patch with the test case provided by Cliff.
- May 16
- Continued working on the conversion of eto.
- Tested the brep conversion of hyp, but found the raytrace result of implicit CSG hyp quite strange.
- May 17
- The raytrace of implicit hyp is wrong when H is not perpendicular to A.
- Fixed the conversion to brep of hyp (havn't commited yet).
- May 18
- My first SVN Commit: fixed the shearing direction of hyp.
Week 1
- May 21
- Fixed the bug of wrong id & od for pipe b-rep, by changing some prevp to curp.
- Dealt with duplicated points by deleting them from the linklist.
- May 22
- Added some control to deal with special cases in pipe_brep.cpp and add a few comments.
- May 23
- Read and tried to understood the code in revolve_brep.cpp, but got confused by the implicit definition.
- Changed the revolution axis and origin of the sketch plane of revolve_brep.
- May 24
- Changed the position of the sketch in extrude_brep according to the parameters.
- Fixed the plane direction of circle arcs in sketch_brep as well as in revolve_brep.
- May 25
- Dealt with non-full revolution of revolve_brep. It took a long time to get the expected result, but I got more familiar to NURBS/BREP during that procedure.
Week 2
- May 27
- Tested and examined the implemented brep conversions. Checked the current status of my work.
- May 28
- Added the implicit -> brep conversion to conversion.sh, so that massive testing will be more convenient.
- May 29
- Tested the functionality of conversion.sh and brep conversions. Made a small change.
- Modified brep.c in libged to check whether the conversion is successful.
- May 30
- Read the code in clone.c, and began to implement the temporary unevaluated conversion of comb in the brep command in MGED.
- May 31
- Extended the functionality of the brep command in MGED to deal with comb. Unevaluated breps are generated. More tests are needed.
- June 1
- The unevaluated conversion for comb has been implemented. Changed conversion.sh accordingly. And the whole elasped time for each object is evaluated.
- Handled some exceptions in brep_debug.cpp.
- Freed memories and corrected the "name existed" output in brep.c in libged.
- June 2
- Tested the brep conversion on ktank.g, m35.g, etc. with conversion.sh.
- Modified brep_debug.cpp to deal with empty combs.
Week 3
- June 3
- Fixed the wrong malloc size and freed tmpname before returning in brep_debug.cpp.
- June 4
- Modified openNUBRS_ext.cpp to quell set-but-unused warnings.
- Tested brep conversion of all /db/*.g files. Looked into the log to find out what to do next.
- Found a bug in pipe_brep.cpp dealing with colinear points.
- June 5
- Modified pipe_brep.cpp. It's much better now, but problems still remain.
- June 6
- Fixed a concealed bug in pipe_brep.cpp. Now it works properly.
- June 7
- Fixed the destruction failure in pipe_brep.cpp by duplicating the curves.
- June 8
- Modified brep_debug.cpp to skip the conversion of half when converting a comb. The implicit primitive of half remains in the hierarchy.
- Explored the usage of ON_BrepRegion to represent an infinite halfspace, but had no good luck.
Week 4
- June 11 - June 17
- Final examination week in our school.
- Added pnts to the ignore list when converting a comb.
Week 5
- June 18
- Final exams finished. Started to work!
Original development timeline
- - May 21 (~4 weeks)
- Study materials on NURBS/BREP etc
- Read the codes in librt/primitives
- Get familiar to OpenNURBS
- Fix some bugs and make patches
- Implement a method for convenient testing (finished)
- May 21 - June 10 (~3 weeks)
- Modify implemented conversions if not finished
- pipe
- sph, ell, tor, hyp
- eto, extrude, revolve, etc.
- Modify implemented conversions if not finished
- June 11 - June 18 (~1 week)
- Final examination week in our school
- June 19 - July 1 (~2 weeks)
- Still work on existing conversions
- Work on non-origin primitives
- Deduce transformation matrices
- Apply the transformation
- Test the results and write documents
- July 1 - July 29 (~4 weeks)
- Add new conversions to missing primitives
- Test whether it works well
- Write clear documents
- From easy ones to hard ones
- July 1 - July 8 (1 week)
- rec
- ars
- half
- ell1
- July 8 - July 15 (1 week)
- metaball
- pnts
- part
- grip
- July 15 - July 22 (1 week)
- superell
- cline
- July 22 - July 29 (1 week)
- hf
- other missing primitives
- Add new conversions to missing primitives
- July 29 - August 13 (~2 week)
- Write a convert for whole
- Write a function to walk the tree
- Add a command to MGED
- Discussions and documents
- Test the work and fix bugs
- Write a convert for whole
- August 13 - August 20 (~1 week)
- Pencil down data
- Improve documentation
- Evaluations
- Pencil down data
- Post-GSoc
- Further involvement with BRL-CAD :)