User:GregoryLi/GSoC2023/DevLog
From BRL-CAD
Contents
- 1 Development Logs
- 2 Community Bonding Period
- 3 Work Period
- 3.1 Monday, May 29th, 2023
- 3.2 Tuesday, May 30th, 2023
- 3.3 Wednesday, May 31th, 2023
- 3.4 Thursday, June 1st, 2023
- 3.5 Saturday, June 3rd, 2023
- 3.6 Monday, June 5th, 2023
- 3.7 Tuesday, June 6th, 2023
- 3.8 Wednesday, June 7th, 2023
- 3.9 Monday, June 12th, 2023
- 3.10 Tuesday, June 13th, 2023
- 3.11 Wednesday, June 14th, 2023
- 3.12 Thursday, June 15th, 2023
- 3.13 Friday, June 16th, 2023
- 3.14 Monday, June 19th, 2023
Development Logs
Community Bonding Period
- Learn about brep_cube brep_simple brep_surface examples in proc-db.
- Learn about NURBS editing support of Ayam and Blender.
- Create a brep object with a single NURBS curve in proc-db.
- Add create [name] brep command to create an empty brep object.
Work Period
Monday, May 29th, 2023
- Add brep <objname> create_curve <x> <y> <z> to create a template NURBS curve.
- Add brep [options] <objname> move_curve_CV <curve_id> <CV_id> <x> <y> <z> <w>" to move control vertex of a NURBS curve.
Tuesday, May 30th, 2023
- Add the entry and judgment for the number of parameters of brep [options] <objname> in_curve <is_rational> <order> <CV_count> <cv1_x> <cv1_y> <cv1_z> <cv_w>(if rational) ... Use in_curve for create NURBS curve with detailed info.
- Learn the code of in command, hope users could input parameters step by step like in command.
Wednesday, May 31th, 2023
- Use uniform knot vector for in_curve. Now the created curve by in is valid.
- add brep [name] curve entry. Add libged/brep/curve.cpp.
- Optimize feedback of wrong parameter number of in_curve cmd.
Thursday, June 1st, 2023
- Have a short meeting with Daniel. The brep/NURBS editing operations shall be implemented in libbrep instead of librt. Refer to nmg_mm() function and ON_boolean().
Saturday, June 3rd, 2023
- Add brep_create_empty_brep() in libbrep and use it in make command.
- Remove rt_brep_create_brep() in librt.
Monday, June 5th, 2023
- Create ON_Brep instead of rt_brep_interval in libbrep.
- Fix errors codes and file headers.
- Track brep subcommands to see parameter passing and call stacks.
Tuesday, June 6th, 2023
- Solve function declarations in libbrep/edit.h. brep_create() shall be accessed by c files. brep_make_curve() shall be accessed by cpp files and compiled as C++. Because it uses openNURBS.
- Reorganize brep [name] curve make [other infos] and brep [name] curve in [other infos] to libbrep.
Wednesday, June 7th, 2023
- Move curve move_cv function to libbrep.
- Add curve flip function.
- Reconsider about data structure from libged to libbrep. Use more specific ON_Brep and other entities instead of argc and argv.
Monday, June 12th, 2023
- Add curve insert_knot function.
- Add curve trim function.
- Add surface subcommand of brep.
- Add surface create command to create a nurbs surface.
Tuesday, June 13th, 2023
- Add curve move function.
- Add surface move function.
- Add surface move_cv function.
- Add surface trim function.
Wednesday, June 14th, 2023
- Refactor args passed to libged/edit. All args like (ON_brep* , ...)
- Look Ayma about functions to be added. (https://ayam.sourceforge.net/docs/ayam-5.html)
Thursday, June 15th, 2023
- Add cmd `brep .. surface create_from_curves ..``. Like lofting in Rhino.
Friday, June 16th, 2023
- Investigate how to implement curve interpolation given a list of points.
- Look Ayam about NURBS curves & surface editing supports.
Ayam only contains geometry editing support, no topology operations involved.
Monday, June 19th, 2023
- Learn about curve/surface operations in Rhino.
Add three TO-DOs of milestone 1:
1. close curve (make an open curve closed. the two end point shall be overlap)
2. join (given two curves, attach them end to end, get one curve with C0 at connection. The two end shall have same Cartesian coordinates. If not, use move control vertex first)
3. detach (split one curve into two given parameter value)