User:GregoryLi/GSoC2023/DevLog

From BRL-CAD

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.