Editing User:Bhollister/DevLogJuly2015

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 150: Line 150:
 
* investigated implications of various implementations (see my response)
 
* investigated implications of various implementations (see my response)
 
* todo: polish declarative syntax for 'creation' subcommands per Sean's suggestions
 
* todo: polish declarative syntax for 'creation' subcommands per Sean's suggestions
* added 'nmg' to [[MGED_Commands | mged cmds]]
 
  
 
non-brlcad expenditures...
 
non-brlcad expenditures...
Line 157: Line 156:
  
 
= Sat, July 18, 2015 =
 
= Sat, July 18, 2015 =
 
n/a
 
  
 
= Sun, July 19, 2015 =
 
= Sun, July 19, 2015 =
 
n/a
 
  
 
= Mon, July 20, 2015: '''''Start of Week 9 (of 14)''''' =
 
= Mon, July 20, 2015: '''''Start of Week 9 (of 14)''''' =
 
* updated [http://brlcad.org/wiki/MGED_CMD_nmg#Proposed_subcommands proposed subcommands]
 
** need to find way of marking model parts
 
** need to allow users to select desired model parts through model labels in subcommand (see previous link for design ideas)
 
* investigated color setting with mged
 
** only found info on [http://brlcad.org/wiki/MGED_CMD_comb_color comb_color] which doesn't appear relevant
 
** need to find simple way to set real-time geometry window colors (down to an opengl state function possibly?? and trace that back up to the higher-level call)
 
** libged/draw.c, _ged_drawtrees() sets the wireframe color...''need to leverage this functionality for labelling / marking geometry!''
 
  
 
non-brlcad expenditures...
 
non-brlcad expenditures...
Line 178: Line 165:
  
 
= Tues, July 21, 2015 =
 
= Tues, July 21, 2015 =
 
* since arbs have vertex labelling
 
** may want to rethink (at least) the ''kill V'' subcommand
 
** vertex numbering '''already''' works with nmg, but there are some scaling issues
 
** i.e. vertex labels are not located right on vertices but too far from them
 
* new create / kill subcommands should be:
 
** consistent with modal behavior of mged command line
 
** i.e. only in "edit" mode do we use create / kill nmg model parts
 
* todo: need to investigate further libged/edit.c
 
* ''if'' we choose color faces / verts diff colors:
 
** code proposal: check if in "edit" mode, then:
 
*** either add new function and call it, i.e. something like 'ged_draw_guts_edit_mode()'
 
*** or add to already large ged_draw_guts() with conditional logic
 
*** there is only a single ''struct _ged_client_data'' used for entire model
 
*** potentially needs to be revamped, since we need it to change per model ''part''
 
*** warning: could be extensive and therefore may have to use ''existing'' labelling system
 
* found this at the end of /include/ged.h. should be useful.
 
<pre>
 
/***************************************
 
* Conceptual Documentation for LIBGED *
 
***************************************
 
*
 
* Below are developer notes for a data structure layout that this
 
* library is being migrated towards.  This is not necessarily the
 
* current status of the library, but rather a high-level concept for
 
* how the data might be organized down the road for the core data
 
* structures available for application and extension management.
 
*
 
* struct ged {
 
*  dbip
 
*  views * >-----.
 
*  result()      |
 
* }              |
 
*                |
 
* struct view { <-'
 
*  geometry * >------.
 
*  update()          |
 
* }                  |
 
*                    |
 
* struct geometry { <-'
 
*  display lists
 
*  directory *
 
*  update()
 
* }
 
*
 
*/
 
</pre>
 
 
non-brlcad expenditures...
 
* had another interview 10 AM PST (Skype) - second one this week
 
* have a third for this week scheduled @ 10 AM PST tomorrow
 
  
 
= Wed, July 22, 2015 =
 
= Wed, July 22, 2015 =
 
* researching how vertices are labelled in 'SOLID EDIT' mode
 
** traced: ged_view_update(struct bview *gvp) from libged/vutil.c
 
** traced: f_sed(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[]) from mged/chgview.c
 
** traced: stateChange(int UNUSED(oldstate), int newstate) from mged/buttons.c
 
** usage of [http://brlcad.org/wiki/MGED_CMD_sed sed] command and [http://brlcad.org/wiki/MGED_CMD_facedef facedef] command (relevant to nmg subcommands for updating nmg geometry)
 
* found label vert functionality:
 
** /* Usage:  labelvert solid(s) */ '''f_labelvert'''(ClientData UNUSED(clientData), Tcl_Interp *interp, int argc, const char *argv[])
 
** from '''mged/overlay.c'''
 
** further calls:
 
*** librt/vlist.c, rt_label_vlist_verts() -->  libbn/font.c, bn_vlist_3string()
 
* todo: can labelling work for faces / regions / shells without resorting to color change??
 
** color change may involve substantial rework of state setting
 
** not to mention other problems for color labelling (visually impaired users, ambiguity in color differences, etc.)??
 
 
non-brlcad expenditures...
 
* had phone interview @ 10AM PST
 
  
 
= Thurs, July 23, 2015 =
 
= Thurs, July 23, 2015 =
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/63932fe80449968587145fba79371b7bc024701f?diff=split commit #1] removed files associated with CLI stubs for internal nmg api
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/27ece977173f135cb69bd4383c72e5ebff98a532?diff=split commit #2]  added ged_nmg_kill_v and associated src files
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/5edfea7e407163255eb74d02570d74e255541e31 commit #3] fixed parameter ordering for cmface and mm subcommand - for consistency with new syntax
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/07c51b26a2f7688fdb0bdb6d3c6f0c6251bff396 commit #4]  trying to get vertex labelling to work for subcommand kill V. work-in-progress. currently not building during link phase.
 
  
 
= Fri, July 24, 2015 =
 
= Fri, July 24, 2015 =
 
* investigated mged command 'permute' as it relates to altering vertices in object
 
* investigated mged GUI 'primitive' editor under 'Edit' menu.
 
** editor shows vertices (number labels) and allows their coords to be altered by increment / decrement
 
** potentially useful for cmd line functions with proposed similar functionality
 
** insight into the linkage between vertex # and vertex data structure (how)
 
 
non-brlcad time expenditures...
 
* job application
 
* car air bag recall (in shop)
 
  
 
= Sat, July 25, 2015 =
 
= Sat, July 25, 2015 =
 
n/a
 
  
 
= Sun, July 26, 2015 =
 
= Sun, July 26, 2015 =
 
n/a
 
  
 
= Mon, July 27, 2015: '''''Start of Week 10 (of 14)''''' =
 
= Mon, July 27, 2015: '''''Start of Week 10 (of 14)''''' =
 
* [http://brlcad.org/wiki/MGED_CMD_nmg#Proposed_subcommands kill V] design updated
 
** determined that the best way to select a vertex is to use [http://brlcad.org/wiki/MGED_CMD_labelvert labelvert] on object to select vertex by coords
 
** user then issues selected coord for [http://brlcad.org/wiki/MGED_CMD_nmg#Proposed_subcommands kill V]
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/c714dcd21a909d7fdd6dfa8116c7db9a858287e9 commit #1]  revamped ged_nmg_kill_v. now requiring user to first use 'labelvert' mged command to label vertices in object. todo: work out way to visit all vertices (i.e., or vertexuses) to find matching coords issued to be killed.
 
  
 
= Tues, July 28, 2015 =
 
= Tues, July 28, 2015 =
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/3285aab44203e3c14c6e2b9ef3b49751caef3c4a commit #1] now traversing each edgeuse to find vertexuses that reference a vertex structure with location specified on cli. todo: fix problem with edgeuse check failure. this could be due to invalid model and not problem with routine.
 
* todo: check above commit with ''known'' valid nmg object
 
 
non-brlcad expenditures...
 
* skype interview @ 11-12 PM Pacific time
 
  
 
= Wed, July 29, 2015 =
 
= Wed, July 29, 2015 =
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/11db05355983400727cd37f2384747a0298eeb0f commit #1] added nmg_m_struct_count as prototypical traversal algo for finding removing specified vertices @ cli.
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/9679d23c0061b310151a86063120da7cb378f9d5 commit #2] cleaned up struct counting algorithm and added nmg_kvu where vertices are found. appears to work, but model is not currently being updated...
 
* if calling wdb_put_internal() at end of ged_nmg_kill_v(), getting a NULL vertexuse ERROR.
 
** however, this is what nmg_kvu() performs on the nmg object structure
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/1841e1bd0ce3f2f0c84c151dce64b2d06685f8ef commit #3] added call to wdb_put_internal, however this produces ERROR due to NULL vertexuse after calls to nmg_kvu()
 
  
 
= Thurs, July 30, 2015 =
 
= Thurs, July 30, 2015 =
 
* ''kill V'' now works! (see commit #2)
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/8b18eb753bf38aaa1c43f0ebd275a4e545dec158 commit #1]  added the proper nmg_k* calls to removed faceuses, loopuses, or edgeuses that results from removal of selected vertex.
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/52cbebc1efcd673ec8b203df6af9caf3b25941d6 commit #2]  remove_vertex() was missing some needed calls to remove lu's and eu's they're added now. cleaned up error message as well. cmd leaves it to the user to refresh vertex labelling in overlay.
 
*[https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/79c07597af1600a595e57447929542d360559b19 commit #3] removed unused vars 
 
* todo: need to update usage for nmg command for new ''kill V'' subcommand
 
* todo: tomorrow will submit two patches
 
** #1 cleanup for nmg_* files not needed
 
** #2 ''kill V'' subcommad patch
 
* spent time trying to make sure build works with applied patch to current trunk
 
** didn't quite work which is why two patches are scheduled for tomorrow
 
** separating patches into the two above to help avoid build error: ''../../lib/libged.so.20.0.1: undefined reference to `brlcad_interp' ''
 
  
 
= Fri, July 31, 2015 =
 
= Fri, July 31, 2015 =
 
* submitted [https://sourceforge.net/p/brlcad/patches/395/ patch 395]
 
** originally planned to have two separate patches, but addition of new source file / removal of stubs both were reflected in changes to libged/nmg.c
 
** patch contains the following:
 
*** addition of 'kill V' subcommand
 
*** see http://brlcad.org/wiki/MGED_CMD_nmg#Proposed_subcommands for 'kill V' usage
 
*** removed source file stubs for low-level nmg api subcommands
 
*** reversed order of subcommand and nmg object name syntax (per request)
 
* [https://github.com/behollis/brlcad-svn-rev65072-gsoc2015/commit/10237773391b9baf2a51125818f51027f8a7de57 commit #1] updated github branch with libged files from svn head; renamed nmg_kill.c to nmg_kill_v.c; added help for kill V
 

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)