User:Bhollister/DevLogAug2015

From BRL-CAD



Sat, August 1, 2015[edit]

n/a

Sun, August 2, 2015[edit]

n/a

Mon, August 3, 2015 Week 11 (of 14)[edit]

  • Summoned for jury service: Spent entire day at court house in Santa Cruz.
  • Dismissed from jury duty but was called to jury box.

Tues, August 4, 2015[edit]

  • investigating ways of labelling faces for CLI specification
    • looked at:
    • none label objects with symbols (only color change, etc. and NOT faces)
    • ev provides some direction
  • todo: may have to implement something like f_labelvert (in mged/overlay.c) but for face index labelling
    • OR have users specify verts for face selection (probably not preferable)
  • updated design docs reflecting recent integrated patches

non-brlcad expenditures...

  • spent time in phone conversation negotiating / considering a job offer

Wed, August 5, 2015[edit]

  • implementing new mged cmd called labelface need for kill F
  • commit #1 added placeholder for lableface mged cmd
  • commit #2 traversing model to collect a list of faces to label. work in progress...

Thurs, August 6, 2015[edit]

  • labelface impl
    • working to get list of faceuses from nmg model
    • working to get center coord of face polygons
      • this will allow labels to be displayed at center of faces

non-brlcad expenditures...

  • spend much of the day deciding between two employment offers
  • chose post-doctoral research over lecturer position

Fri, August 7, 2015[edit]

  • commit #1 verified that faceuses are properly gathered in get_face_list. todo: use bu_list instead of array placeholder for faceuse list.
  • todo: need to find how to calculate barycenter for face verts (there must be a utility function in brlcad)
  • instead: very easy as a simple average of coords of face verts
    • where face labels will be placed using bn_vlist_3string() in rt_label_vlist_faces()

Sat, August 8, 2015[edit]

n/a

Sun, August 9, 2015[edit]

n/a

Mon, August 10, 2015 Week 12 (of 14)[edit]

  • commit #1 able to label faceuses at min pt of their bounding box. faceuse index used for label. todo: need to plot label at center of face. also need to find way to show both front / back facing faceuses. right now they are overdrawn. placeholder array causes seg fault when dereferencing empty faceuses in array.
  • commit #2 using struct face as replacement to struct faceuse
  • todo: use center of face for face index placement
  • since there are two facesuses per face, best to use index of face for label
  • see:

/**
 * Note: there will always be exactly two faceuse's using a face.  To
 * find them, go up fu_p for one, then across fumate_p to other.
 */
struct face {
    struct bu_list l;		/**< @brief faces in face_g's f_hd list */
    struct faceuse *fu_p;	/**< @brief Ptr up to one use of this face */
    union {
	uint32_t *magic_p;
	struct face_g_plane *plane_p;
	struct face_g_snurb *snurb_p;
    } g;			/**< @brief geometry */
    int flip;			/**< @brief !0 ==> flip normal of fg */
    /* These might be better stored in a face_a (not faceuse_a!) */
    /* These are not stored on disk */
    point_t min_pt;		/**< @brief minimums of bounding box */
    point_t max_pt;		/**< @brief maximums of bounding box */
    long index;			/**< @brief struct # in this model */
};

Tues, August 11, 2015[edit]

  • commit #1 now taking avg of min and max bounding extents. works great for label placement.
  • commit #2 rt_label_vlist_faces caught in infinite loop. face list element had forw / back points to itself. todo: fix.

Wed, August 12, 2015[edit]

  • added labelface documentation
  • added patch 403 for labelface cmd
  • commit #1 fixed problem with adding same face struct to bu_list - which caused self-referential node (forw/back pointers pointing to node itself) in list
  • commit #2 added help lookup for 'lableface'
  • commit #3 removed accidental redundant error checking
  • todo: implement 'kill F' next, using the indices provided in display by labelface

Thurs, August 13, 2015[edit]

  • submitted patch 404 for 'kill F'
  • commit #1 added boiler-plate for ged_nmg_kill_f cmd
  • commit #2 using nmg_kfu(). loops / edges still present after faceuse / face removal. todo: either verify that face is removed by testing with solid face rendering, or remove loops / edges along with face...
  • Documentation updated: http://brlcad.org/wiki/MGED_CMD_nmg#Subcommands
  • todo: impl 'make V' as proposed

Fri, August 14, 2015[edit]

  • commit #1 boiler-plate for move V mged cmd
  • commit #2 move V cmd implementation. More or less a variation on kill V.
  • commit #3 added check for cmd argument length. should not exceed two coords.
  • submitted patch 405 for move V nmg subcommand
  • updated docs
    • nmg
    • labelvert for proposed -i (index) option
      • this will allow for CLI specification with make F
  • updated project schedule to reflect remaining work for next week, i.e. make F, make V, labelvert -i

Sat, August 15, 2015[edit]

n/a

Sun, August 16, 2015[edit]

n/a

Mon, August 17, 2015 Week 13 (of 14)[edit]

  • commit #1 beginning of vertex index labelvert -i option.
  • crashing in bn_vlist_3string with MAT_DELTAS_VEC( xlate_to_origin, origin );
  • todo: fix above issue

Tues, August 18, 2015[edit]

  • commit #1 labelvert -i option working. however, code uses new struct vtxlabel to avoid potential lists already used by nmg datastructure (struct vertex). also, there is no freeing of label list. todo: either use struct vertex instead if there is no list in nmg structure using struct vertex, or free list appropriately after usage.
  • commit #2 struct vertex does not have a l bu_list. do not want to alter nmg types. thus, now freeing struct vtxlabel list after use.
  • todo: will cleanup above commits (if needed) and submit as patch tomorrow

Wed, August 19, 2015[edit]

  • posted patch: 412
  • posted patch: 409
  • commit #1 now freeing heap memory for vertex label list
  • commit #3 using bu_malloc and bu_free now.
  • make V subcommand:
    • commit #2 boiler-plate for make V cmd
    • commit #4 getting casting error with return variable from nmg_mvvu()

Thurs, August 20, 2015[edit]

  • commit #1 apparently we don't want to create a new loopuse for each new isolated vertex. can only add one vertex per shell. so, todo: use nmg_msv, for each new vertex + shell.
  • commit #2 working and cleaned up ged_nmg_kill_v. now adding a new shell when needed for a new vertex coord.
  • commit #3 added info about move V subcommand.
  • patch hasn't build properly with merge of latest changes (nmg_make_v.c) to trunk...working on it. todo: submit patch tomorrow??
    • build dies @ 97 percent for linking ../../../../bin/step-g?
    • commit #4 simplified code to not add into existing shell. this was causing an undef linking error due to header issues with nmg_mvvu().
  • 'make V' nmg subcommand patch submitted, see...
    • patch 414 Adds new vertices specified by their coords. Each vertex is added to a new shell in the NMG object.
  • todo: will see if I can get 'make F' working and submitted by COB tomorrow...
  • todo: minor updates to mged nmg docs as well.
  • todo: fix up -i option patch

Fri, August 21, 2015 FIRM PENCILS DOWN[edit]

  • commit #1 moved vtxlabel struct def to rt/vlist.h
  • commit #2 boiler-plate for ged_nmg_make_F subcommand
  • commit #3 added find verts function stub with nmg traversal
  • commit #4 make F working for three vertices specified by labelvert -i index labels
  • commit #5 first take on variabel command line with F
  • commit #6 appears to work for multiple F
  • todo: will submit patch for move F over weekend after more testing...

Sat, August 22, 2015[edit]

  • commit #1 processing mulitple faces on command line for 'make F' subcommand
  • submitted patch 415 for 'make F' subcommand
  • finished final evaluation on google-melange
  • updated mged nmg subcommands documentation

Sun, August 23, 2015[edit]

n/a

Mon, August 24, 2015 Week 14 (of 14)[edit]

n/a

Tues, August 25, 2015[edit]

n/a

Wed, August 26, 2015[edit]

n/a

Thurs, August 27, 2015[edit]

n/a

Fri, August 28, 2015 FINAL EVALS DUE[edit]

n/a