User:GregoryLi/GSoC2022/DevLog
From BRL-CAD
Contents
- 1 Development Logs
- 2 Community Bonding Period
- 3 Work Period
- 3.1 Wednesday, June 15, 2022
- 3.2 Thursday, June 16, 2022
- 3.3 Friday, June 17, 2022
- 3.4 Saturday, June 18, 2022
- 3.5 Monday, June 20, 2022
- 3.6 Tuesday, June 21, 2022
- 3.7 Wednesday, June 22, 2022
- 3.8 Thursday, June 23, 2022
- 3.9 Friday, June 24, 2022
- 3.10 Monday, June 27, 2022
- 3.11 Tuesday, June 28, 2022
- 3.12 Wednesday, June 29, 2022
- 3.13 Thursday, June 30, 2022
- 3.14 Friday, July 1, 2022
- 3.15 Monday, July 4, 2022
- 3.16 Tuesday, July 5, 2022
- 3.17 Wednesday, July 6, 2022
- 3.18 Thursday, July 7, 2022
- 3.19 Monday, July 11, 2022
- 3.20 Tuesday, July 12, 2022
- 3.21 Wednesday, July 13, 2022
- 3.22 Thursday, July 14, 2022
- 3.23 Friday, July 15, 2022
- 3.24 Saturday, July 16, 2022
- 3.25 Monday, July 18, 2022
- 3.26 Tuesday, July 19, 2022
- 3.27 Wednesday, July 20, 2022
- 3.28 Thursday, July 21, 2022
- 3.29 Friday, July 22, 2022
- 3.30 Monday, July 25, 2022
- 3.31 Tuesday, July 26, 2022
- 3.32 Wednesday, July 27, 2022
- 3.33 Thursday, July 28, 2022
- 3.34 Friday, July 29, 2022
- 3.35 Monday, August 1, 2022
- 3.36 Tuesday, August 2, 2022
- 3.37 Wednesday, August 3, 2022
- 3.38 Thursday, August 4, 2022
- 3.39 Friday, August 5, 2022
- 3.40 Monday, August 8, 2022
- 3.41 Tuesday, August 9, 2022
- 3.42 Wednesday, August 10, 2022
- 3.43 Thursday, August 11, 2022
- 3.44 Friday, August 12, 2022
- 3.45 Monday, August 15, 2022
- 3.46 Tuesday, August 16, 2022
- 3.47 Wednesday, August 17, 2022
- 3.48 Thursday, August 18, 2022
- 3.49 Friday, August 19, 2022
- 3.50 Saturday, August 20, 2022
- 3.51 Sunday, August 21, 2022
- 3.52 Tuesday, August 23, 2022
- 3.53 Wednesday, August 24, 2022
- 3.54 Thursday, August 25, 2022
- 3.55 Monday, August 29, 2022
- 3.56 Tuesday, August 30, 2022
- 3.57 Wednesday, August 31, 2022
- 3.58 Thursday, September 1, 2022
- 3.59 Friday, September 2, 2022
- 3.60 Monday, September 5, 2022
- 3.61 Tuesday, September 13, 2022
- 3.62 Wednesday, September 14, 2022
- 3.63 Thursday, September 15, 2022
- 3.64 Friday, September 16, 2022
- 3.65 September 19 to September 23
- 3.66 Monday, September 26, 2022
- 3.67 Tuesday, September 27, 2022
- 3.68 Wednesday, September 28, 2022
- 3.69 Thursday, September 29, 2022
- 3.70 Friday, September 30, 2022
- 3.71 Monday, October 3, 2022
Development Logs
Community Bonding Period
- familiar with arb8 convert to brep code
- Read BRL-CAD NURBS Boolean Evaluation Development Guide.
- Look into arb8_brep and brep_simple.
- Test converting arb8 to brep.
Work Period
Wednesday, June 15, 2022
- Test converting arb8 into brep format with non-planar faces. -- get the differences of the output of them, but the result of brep_simple.cpp seems confusing.
- Compare codes of brep_simple.cpp and arb8_brep.cpp. -- mastered brep_simple
- Replace the input data in brep_simple with arb8. -- a beginning
Thursday, June 16, 2022
- Run and analyze the result of examples about brep, record errors found.
- Write one example about converting arb8 into brep. -- about 75% completion
Friday, June 17, 2022
- Write one example about converting arb8 into brep. -- accomplish
- Read code of current examples about creating and processing object.
Saturday, June 18, 2022
- Read code of OpenNURBS.
- Read code and docs about brep.
Monday, June 20, 2022
- Test simple cases of boolean then brep(arb intersection).
- Read code of OpenNURBS.
- Reorganize code about example.
Tuesday, June 21, 2022
- Test simple cases of boolean then brep(face intersection).
- Read docs about previous Brep work.
Wednesday, June 22, 2022
- Learn about nurb surface usage.(face_g_snurb)
- Write one project about testing brep simple cases. -- about 65% completion
Thursday, June 23, 2022
- Write one project about testing brep simple cases. -- complete
- Reading docs and codes about brep.
Friday, June 24, 2022
- Test surface interesct cases.
- Reading docs and codes about brep.
Monday, June 27, 2022
- Read surfaceinteresct project and try to debug
- Read codes related to brep(rt_comb_brep ON_Boolean etc)
Tuesday, June 28, 2022
- Read codes related to brep and try debugging
Wednesday, June 29, 2022
- Reorganize and test brep_arbintersection project
Thursday, June 30, 2022
- Compare the code stack difference between archer and my test case about _brep_cmd_brep
Friday, July 1, 2022
- Compare the code stack difference between archer and my test case about _brep_cmd_brep
- Rewrite brep test case
Monday, July 4, 2022
- Solve build errors after git pull.
- ebug brep using file output system.
Tuesday, July 5, 2022
- Debug brep using file output system.
Wednesday, July 6, 2022
- Ditto
Thursday, July 7, 2022
- Solve the inconsistent problem about converting brep in test case and Archer
- Debug brep using file output system.
Monday, July 11, 2022
- Reread NURBS Development Guide
Tuesday, July 12, 2022
- Debug: tracking and call stack from test_UNION into ON_Boolean
- Find multiple outputs with the same operation among three BRL-CAD versions:
- current main branch -- missing faces - BRL-CAD 7.32.6 release package -- correct - project build with BRL-CAD 7.32.6 source code -- crashed
Wednesday, July 13, 2022
- Compare differences between different branch and commits
- project build with BRL-CAD 7.32.6 source code in RELEASE mode - correct for arb_4.r test case, error for arb_3.r - project build with BRL-CAD 7.32.6 source code in DEBUG mode - crash - current main branch -- error for arb_3.r/arb_4.r - initial commit of RELEASE branch -- correct for arb_4.r test case, error for arb_3.r
Thursday, July 14, 2022
- Find where introduced the error in main branch.
- Test and compare different brep cases cross different code versions.
Friday, July 15, 2022
- Find where introduced the error in main branch using bisect. --around *1583360* commit
- Read codes about primitives convert to brep.
Saturday, July 16, 2022
- Check map from old dplot command to brep.
Monday, July 18, 2022
- generate 125 arb union cases then convert them to brep.
Tuesday, July 19, 2022
- append intersection and subtraction test cases (125 * 2).
Wednesday, July 20, 2022
- Test intersection and subtraction test cases using commands.
- learn to use nirt command.
Thursday, July 21, 2022
- Reposition test cases to a grid.
- Formal objects' names.
Friday, July 22, 2022
- Test to convert primitives to brep, record issues.
Monday, July 25, 2022
- Create a new project to convert primitives to brep format. --abandoned later
Tuesday, July 26, 2022
- Use shell to convert primitives to brep format.
- Shot the primitives and breps using nirt.
Wednesday, July 27, 2022
- Try to evaluate brep obj using nirt.
Thursday, July 28, 2022
- Try to evaluate brep obj using nirt.
- Test and understand rhc primitive.
Friday, July 29, 2022
- Ask for leave
Monday, August 1, 2022
- Solve conficts between main and my dev branch. --error in generating, can't debug. rollback
- Investigate the call stack of rhc brep.
- error 1: the bottom of rhc in brep format is larger than rhc in primitive format - error 2: the orient of the bottom is not correspond to it's wireframe
Tuesday, August 2, 2022
- Look into code call stack while converting rhc to brep and curve drawing.
- Read and understand formula of bezier curve.
Wednesday, August 3, 2022
- sleuth source code on the math.
- Look into memory changes while plotting bezier curve.
Thursday, August 4, 2022
- Test with using relative coordinates while scaling the position of a vertex on the curve.
Friday, August 5, 2022
- Test reshape the bottom by changing source code according to formula.
Monday, August 8, 2022
- Sleuth the formula by openNURBS source code.
- Monitor variables change while drawing curcve of rhc_brep.
Tuesday, August 9, 2022
- Solve the problem by changing the codes of openNURBS: mourning Casteljau, just caculate using NURBS.
Wednesday, August 10, 2022
- sleuth source code on the math.
- Look into memory changes while plotting bezier curve.
Thursday, August 11, 2022
- debug creating rhc_brep's side face and top face.
Friday, August 12, 2022
- Look into Casteljau algorithm for NURBS.(It's used for openNURBS drawing curve)
for picture 1, the left obj is rhc primitive, the right is rhc_brep
Monday, August 15, 2022
- Sleuthing on the math about Casteljau algorithm and nurbs of source code.
for Casteljau algorithm: https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/de-casteljau.html for nurbs of order 2 with weight,the answer is correct if we multiply the original coordinates of control point 2 by the factor 1/w2.
- Debug rhc bottom drawing by changing the weight of second control point.
Tuesday, August 16, 2022
Begin debugging epa primitive brep converting.
- Test to convert epa into brep format in different position and rotation, find the upper part stay still at the origin point.
- Look into math expression and algorithm of nurbs surface.
Wednesday, August 17, 2022
- Try to pan all the control points according to epa primitive position, the nurbs surface git into chaos.
- Guess the reason is similar to the nurbs curve, look into math expression and drawing algorithm of nurbs surface.
Thursday, August 18, 2022
- Look into rotating NURBS surfaces by transforming controls points.
- Try to write a transform function of NURBS surface.
Friday, August 19, 2022
- Read nurbs surface source codes, find the function already done in OpenNURBS.
- Fix pan transform by caculating a pan matrix of 4x4.
- Study usage and caculation of transform matrix according to ppt1 and ppt2.
Saturday, August 20, 2022
- Try to caculate the rotation matrix by rotate axis and degree according to page 10 of ppt2, failed.
- Find the transform can be divided into one pan and two rotation(the 1st is axis rotation, the 2rd is rotation around axis). Sleuth math expression and code. Result failed.
Sunday, August 21, 2022
- Find the transform is related to coordinate systems transform, study it according to forum
- Caculate and combine rotation matrix. origin shift rotation matix and pan vector, solve the epa brep converting problem.
Tuesday, August 23, 2022
- sleuth the formula about hyperbola according to Rational Bézier Curves
- sleuth the formula of drawing rhc primitive codes.(rhc.c rt_rhc_plot())
- sleuth the formula of caculating control points and weights of NURBS of hyperbola.(rhc_brep.cpp rt_rhc_brep)
Wednesday, August 24, 2022
- Caculate control points and weights of hyperbola, debug hyperbola curve.reference link
- Fix and test drawing bottom face of rhc by modify control points and weights of NURBS.
Thursday, August 25, 2022
- write a shell script to test rhc primitive brep converting.
- test rhc primitive brep converting.
Monday, August 29, 2022
- add a rotation for every primitive in sh/brep_primitive.sh and check whether the brep result are correct or not. --correct
- Sleuthing on the math about getting points of hyperbola.(src/librt/primitives/rhc/rhc.c rt_mk_hyperbola())
Tuesday, August 30, 2022
- reorganize brep_arbintersection function.
- add a function creating sph boolean and brep matrix.
Wednesday, August 31, 2022
- solve pull request conflicts with main.
- add a function creating rcc boolean and brep matrix.
- sort out my develop branches to create pull requests. PR56PR57
Thursday, September 1, 2022
- add command line argument to specific primitive.
- reread bool_eval_development document.
Friday, September 2, 2022
- optimize ON_Brep function (ON:Begin and ON:End) call positions.
- run dplot, brep, overlay cmds to test which commands are still available and how to debug boolean function.
Monday, September 5, 2022
- locating boolean error codes. --get_face_intersection_curves function return empty while testing, it's irregular.
- config docbook to compile bool_eval_development.
Tuesday, September 13, 2022
- Look into and debug dplot.c.
- read bool_eval_development about dplot usage.
Wednesday, September 14, 2022
- Look into and track calling stack of every sub cmd of dplot cmd.
- Use overlay function to plot boolean files, some files can't be plotted. Current version of the code can't introduce trim event.
Thursday, September 15, 2022
- fix dplot_overlay function in dplot.c about passing parameters and calling overlay cmd.
Friday, September 16, 2022
- erase all faces plot in the end of dplot * faces.
- test overlay cmd to plot faces of one cube. Overlay can't display multiple faces of one cube at the same time.
September 19 to September 23
- leave for school things and COVID-19 policy
Monday, September 26, 2022
- switch the origin commit to a previous version, make sure the brep cmd will introduce face trim operation to help debug dplot cmd.
- display bool*_brep*_surface*.plot3 files instead of curves in dplot * faces
Tuesday, September 27, 2022
- fix overlay all faces in dplot * ssx by using globbing.
- dplot ssx event using bool*_highlight_brep*_surface*.plot3 files instead of ssx_event*.plot3, because some ssx_event*.plot3 and clipped_curve can't be plotted using overlay cmd.
Wednesday, September 28, 2022
- test to overlay bool* files created by different cases and different commits.
Thursday, September 29, 2022
- Configure the docbook compilation environment on windows.
- update NURBS Boolean Evaluation Development Guide about dplot usage.
Friday, September 30, 2022
- optimize files to be overlayed in dplot command.
- plot faces and bool*_ssx*_event*.plot3 using "dplot * ssx *"
Monday, October 3, 2022
- Read codes about how to get trimmed face before *8a508c8f* commit.
- find why plot files can't be plotted using the overlay command. Reading codes creating and plotting them.