DevLogJune2015 - BRL-CAD/brlcad-docs GitHub Wiki
FORCETOC
- dissertation work
- dissertation work
- dissertation defense @ 12:45-2pm PDT
- added callable nmg_mrsv stub, see: https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/ff812753027d4119a590d9d0096f9dbb279163b0
- successfully defended PhD dissertation yesterday
- minor additions / editing / proof-reading of dissertation before ProQuest submittal deadline of June 11th
- todo: add remaining CONSTRUCTION routine stubs
- todo: determine how to pass nmg model verts, etc. from command line (mged) to function stubs
- received a few pointers on NMG, and a document link in weekly mtg
- dissertation editing
- dissertation editing
- dissertation editing
- commit #1 for today: added remaining NMG construction command stubs
- commit #2 for today: nmg_mrsv command now accepts a model file name and checks the database; removed nmg_mm since make cmd covers that functionality
- commit #3 for today: fixed format spacing for nmg_mrsv.c
- final dissertation edits
- submitted final dissertation to ProQuest
- delivered signatures, etc. for degree
- took online surveys for degree
- note #1: (todo) need to talk to mentors about cmd line interface; some construction routines in "Combinatorial Solid Geometry, Boundary Representations, and Non-Manifold Geometry," are likely too low-level. for instance, does it make sense to specify 'vertexuse' / 'edgeuse' at the cmd line?? possibly only routines that require user specified *new* vertices and edges will be implemented... also, we may not want to implement some of the api functions that only create empty shells / regions for new models. models can already be created using the cmd make.
- note #2: construction routines don't require passing particular instances of existing geometry. this makes their impl likely easier than destruction routines in terms of specifying geometry at the CLI.
- commit #1 for today: added call to internal api for "Make Region, Shell, Vertex"
- tried various testing with creating nmg geometry, but was not fully able to create nmg test cases with primitives. need to retry using "facetize" command again or another route
- need to determine if we need a higher-level CLI than internal NMG access API functions; some of this is already implemented in nmg_simplify, nmg_fix_normals, make, etc.
- commit #1 for today: added impl for nmg_mm; small fix for return code from nmg_mrsv CLI libged function
- friday todo: implement nmg_mmr()
- friday todo: implment nmg_msv() - figure out how to specify region and pass that to CLI from MGED display (or archer)
- need to attend graduation ceremonies practice for a few hours (starts @ 1 PM PDT, but need to pick up gown, etc.)
- commit #1 for today: added impl for nmg_mmr for CLI. almost identical to ged_nmg_mm, but region is created for the new model.
- commit #2 for today: added preliminary nmg_msv CLI command. command accepts model name and adds shell / vertex to the first region encountered via BU_LIST_FIRST. the command also performs NMG_CK_REGION. if a model doesn't have a region, then this check causes MGED to log a bad pointer error and crash. TODO: may need to find a way to specify region to CLI and handle error w/o crash.
- relatives visiting thru Thursday
- graduation ceremonies attendance (most of the day)
- added nmg_me imp for CLI. not committed to github yet due to merge conflicts?? todo: fix this tomorrow!
- read thru some-thoughts-about-nmg-primitve
- concerning some-thoughts-about-nmg-primitve, not sure if shells or regions will be specified or used on CLI.
- todo: need to find problem with nmg_msv CLI. appears that it is not adding new shell to nmg data structure
- todo: fix nmg_me CLI to allow for setting vertex coords (current impl only adds vertexuses via nmg_mvvu)
- commit #1 yesterday: added nmg_me to CLI. can't currently set vertex coord but the vertexuses are added properly.
- commit #1 for today: adding CLI version of nmg_me. command takes two vertex coords and the name of the model. the first region / shell are used. also, updating comment in ged_nmg_msv.
- commit #2 for today: added ged_nmg_mvvu. routine takes first region / shell as parent structure in model to add vertex / vertexuse. note that a NULL pointer is added to the vertexuse struct. although possibly not clear, ged_nmg_mvu can be used to set a specific vertex instance for the vertexuse, i.e. a *new* vertexuse.
- commit #3 for today: ged_nmg_mvu impl prelim. need to find vertex with coordinates given on CLI. Use the parent struct of the found vertex as upptr. Here, this is a shell. TODO: the point of this routine is to re-assign a vertexuse to an *existing* vertex. Right now, this routine finds a shell with the specified vertex and replaces the vertexuse in that shell. we need to find a vertexuse *not* in a shell, such as an edge, and reassign it a *new* vertexuse. CLI doesn't use vertex id, so coord may be non-unique to multiple vertices in nmg model. IMPORTANTLY: crashing on curr_vg = curr_s->vu_p->v_p->vg_p; Need to fix.
- todo: need to fix nasty white spacing issues in submitted code revisions!
- last day of relatives' visit. taking day off. will work some saturday as makeup.
- commit #1 for today: added ged_nmg_ml. calls nmg_ml directly with the first encountered region / shell in model. if shell doesn't have the required edgeuses / edges, then program throws and error.
- commit #2 for today: added ged_nmg_meonvu. user can specify a vertex coord on CLI. routine searches for the first encountered vertexuse that uses a vertex instance (coord). note: this is not what the internal api function is meant to do. it uses a *vertexuse*. todo: pass a *vertexuse* if possible from the CLI, or find another way to define similar construction routine that is more suitable for the CLI. once the vertexuse / vertex / geom is found, an "empty" edge with the same topological vertex(use?) is inserted into the model.
- found how to properly traverse model with BU_LIST_PNEXT macro. todo: need to update ged_nmg_mvu to reflect this correction.
- received direction by mentors to add single top-level nmg CLI command
- todo: move all other nmg commands as private subcommands callable only via single top-level CLI command
- todo: extend nmg *construction* routines dev time into week 5. week 5 / 6 of schedule was originally allocated for *destruction* routines, but these are fewer and simpler than the *construction* subcommands for nmg; todo: update project schedule
- todo: provide a straight-forward method to create a simple primitive, such as a cube using the *new* nmg CLI
- n/a
- n/a
- commit #1 for today: added top-level nmg command stub (only usage info reported).
- todo: will pass on CLI paramaters to appropriate subcommand
- todo: need to add remaining destruction and manipulation subcommands to current stub
- commit #1 for today: added subcommand handling for construction routines
- commit #2 for today: added convenience construction and destruction stubs
- should be able to submit patch for nmg command stub...after adding manipulation routines tomorrow
- investigated uses of internal nmg api. found /src/proc-db/nmgmodel.c
- todo: need to find proper uses of internal api in order to provide best interface to nmg via CLI (checking with mentors)
- suggested scaling back proposal to nmg work only (in line with original brlcad gsoc suggestions from wiki)
non-brlcad time expenditures...
- birthday today, so only half-day work. will work the weekend if possible.
- spent some time updating resume + applying for positions
- updated project schedule to reflect NMG *only* work. approval by mentor in IRC.
- nmgmodel.c compiles to src/proc-db/nmgmodel in the build directory
- todo: need to further investigate /src/proc-db/nmgmodel.c as model for new CLI
non-brlcad time expenditures...
- spent some time updating resume + applying for positions
- added patch https://sourceforge.net/p/brlcad/patches/387/
- todo: for weekend, add subcommands to add faces with variable number of verts on commandline
- n/a
- n/a
- updated patch 387: https://sourceforge.net/p/brlcad/patches/387/
- commit #1 for today: added extern function prototypes to fix build on some configurations
- traced thru src/proc-db/nmgmodel.c; todo: will use that approach to add high-level command to add manifold quad faces to nmg model this week.
- commit #1 for today: added ged_nmg_cmface impl. some issues with null model when filling out vertices.
- updated patch https://sourceforge.net/p/brlcad/patches/387/ with UNUSED macro
- todo: need to check patch with -DBRLCAD_ENABLE_STRICT=YES and resubmit fix if needed