User:Bhollister/DevLogAug2015

From BRL-CAD
< User:Bhollister
Revision as of 19:33, 20 August 2015 by Bhollister (talk | contribs) (Thurs, August 20, 2015)



Sat, August 1, 2015

n/a

Sun, August 2, 2015

n/a

Mon, August 3, 2015 Week 11 (of 14)

  • 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

  • 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

  • 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

  • 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

  • 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

n/a

Sun, August 9, 2015

n/a

Mon, August 10, 2015 Week 12 (of 14)

  • 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

  • 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

  • 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

  • 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

  • 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

n/a

Sun, August 16, 2015

n/a

Mon, August 17, 2015 Week 13 (of 14)

  • 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

  • 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

  • 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

  • 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?

Fri, August 21, 2015 FIRM PENCILS DOWN

Sat, August 22, 2015

Sun, August 23, 2015

Mon, August 24, 2015 Week 14 (of 14)

Tues, August 25, 2015

Wed, August 26, 2015

Thurs, August 27, 2015

Fri, August 28, 2015 FINAL EVALS DUE