Revision: 76579
          http://sourceforge.net/p/brlcad/code/76579
Author:   starseeker
Date:     2020-07-29 19:09:20 +0000 (Wed, 29 Jul 2020)
Log Message:
-----------
Move the gdv_edit_motion_delta_callback string into a struct (prepaing for 
other adjustments...)

Modified Paths:
--------------
    brlcad/branches/bioh/include/tclcad.h
    brlcad/branches/bioh/src/libtclcad/tclcad_mouse.c
    brlcad/branches/bioh/src/libtclcad/tclcad_obj.c

Modified: brlcad/branches/bioh/include/tclcad.h
===================================================================
--- brlcad/branches/bioh/include/tclcad.h       2020-07-29 18:31:02 UTC (rev 
76578)
+++ brlcad/branches/bioh/include/tclcad.h       2020-07-29 19:09:20 UTC (rev 
76579)
@@ -132,15 +132,18 @@
 DM_EXPORT extern int fbs_open(struct fbserv_obj *fbsp, int port);
 DM_EXPORT extern int fbs_close(struct fbserv_obj *fbsp);
 
+struct tclcad_view_data {
+    struct bu_vls              gdv_edit_motion_delta_callback;
+};
 
 struct ged_dm_view {
     struct bu_list             l;
+    struct bview               *gdv_view;
     struct bu_vls              gdv_callback;
-    struct bu_vls              gdv_edit_motion_delta_callback;
-    struct bview               *gdv_view;
     struct dm                  *gdv_dmp;
     struct fbserv_obj          gdv_fbs;
     struct ged_obj             *gdv_gop;
+    void                        *gdv_data;
 };
 
 struct ged_obj {

Modified: brlcad/branches/bioh/src/libtclcad/tclcad_mouse.c
===================================================================
--- brlcad/branches/bioh/src/libtclcad/tclcad_mouse.c   2020-07-29 18:31:02 UTC 
(rev 76578)
+++ brlcad/branches/bioh/src/libtclcad/tclcad_mouse.c   2020-07-29 19:09:20 UTC 
(rev 76579)
@@ -1852,8 +1852,9 @@
 
     gedp->ged_gvp = gdvp->gdv_view;
 
-    if (0 < bu_vls_strlen(&gdvp->gdv_edit_motion_delta_callback)) {
-       const char *command = 
bu_vls_addr(&gdvp->gdv_edit_motion_delta_callback);
+    struct tclcad_view_data *tvd = (struct tclcad_view_data *)gdvp->gdv_data;
+    if (0 < bu_vls_strlen(&tvd->gdv_edit_motion_delta_callback)) {
+       const char *command = bu_vls_addr(&tvd->gdv_edit_motion_delta_callback);
        const char *args[4];
        args[0] = "orotate";
        args[1] = bu_vls_addr(&rot_x_vls);
@@ -1964,11 +1965,12 @@
 
     gedp->ged_gvp = gdvp->gdv_view;
 
-    if (0 < bu_vls_strlen(&gdvp->gdv_edit_motion_delta_callback)) {
+    struct tclcad_view_data *tvd = (struct tclcad_view_data *)gdvp->gdv_data;
+    if (0 < bu_vls_strlen(&tvd->gdv_edit_motion_delta_callback)) {
        struct bu_vls tcl_cmd;
 
        bu_vls_init(&tcl_cmd);
-       bu_vls_printf(&tcl_cmd, "%s oscale %s", 
bu_vls_addr(&gdvp->gdv_edit_motion_delta_callback), bu_vls_addr(&sf_vls));
+       bu_vls_printf(&tcl_cmd, "%s oscale %s", 
bu_vls_addr(&tvd->gdv_edit_motion_delta_callback), bu_vls_addr(&sf_vls));
        Tcl_Eval(current_top->to_interp, bu_vls_addr(&tcl_cmd));
        bu_vls_free(&tcl_cmd);
     } else {
@@ -2074,7 +2076,8 @@
 
     gedp->ged_gvp = gdvp->gdv_view;
 
-    if (0 < bu_vls_strlen(&gdvp->gdv_edit_motion_delta_callback)) {
+    struct tclcad_view_data *tvd = (struct tclcad_view_data *)gdvp->gdv_data;
+    if (0 < bu_vls_strlen(&tvd->gdv_edit_motion_delta_callback)) {
        const char *path_string = argv[2];
        vect_t dvec;
        struct path_edit_params *params = (struct path_edit_params 
*)bu_hash_get(current_top->to_gop->go_edited_paths,

Modified: brlcad/branches/bioh/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/branches/bioh/src/libtclcad/tclcad_obj.c     2020-07-29 18:31:02 UTC 
(rev 76578)
+++ brlcad/branches/bioh/src/libtclcad/tclcad_obj.c     2020-07-29 19:09:20 UTC 
(rev 76579)
@@ -2891,8 +2891,13 @@
 
     BU_LIST_DEQUEUE(&(gdvp->l));
     bu_vls_free(&gdvp->gdv_view->gv_name);
+
+
+    struct tclcad_view_data *tvd = (struct tclcad_view_data *)gdvp->gdv_data;
+    bu_vls_free(&tvd->gdv_edit_motion_delta_callback);
+    BU_PUT(tvd, struct tclcad_view_data);
     bu_vls_free(&gdvp->gdv_callback);
-    bu_vls_free(&gdvp->gdv_edit_motion_delta_callback);
+
     (void)dm_close(gdvp->gdv_dmp);
     bu_ptbl_free(gdvp->gdv_view->callbacks);
     BU_PUT(gdvp->gdv_view->callbacks, struct bu_ptbl);
@@ -3573,8 +3578,9 @@
            bu_vls_printf(&tran_z_vls, "%lf", dvec[Z]);
            MAT_IDN(params->edit_mat);
 
+           struct tclcad_view_data *tvd = (struct tclcad_view_data 
*)data->gdvp->gdv_data;
            bu_vls_printf(&tcl_cmd, "%s otranslate %s %s %s",
-                         
bu_vls_addr(&data->gdvp->gdv_edit_motion_delta_callback),
+                         bu_vls_addr(&tvd->gdv_edit_motion_delta_callback),
                          bu_vls_addr(&tran_x_vls), bu_vls_addr(&tran_y_vls),
                          bu_vls_addr(&tran_z_vls));
            Tcl_Eval(current_top->to_interp, bu_vls_addr(&tcl_cmd));
@@ -3923,15 +3929,17 @@
 
     /* get the callback string */
     if (argc == 2) {
-       bu_vls_printf(gedp->ged_result_str, "%s", 
bu_vls_addr(&gdvp->gdv_edit_motion_delta_callback));
+       struct tclcad_view_data *tvd = (struct tclcad_view_data 
*)gdvp->gdv_data;
+       bu_vls_printf(gedp->ged_result_str, "%s", 
bu_vls_addr(&tvd->gdv_edit_motion_delta_callback));
 
        return GED_OK;
     }
 
     /* set the callback string */
-    bu_vls_trunc(&gdvp->gdv_edit_motion_delta_callback, 0);
+    struct tclcad_view_data *tvd = (struct tclcad_view_data *)gdvp->gdv_data;
+    bu_vls_trunc(&tvd->gdv_edit_motion_delta_callback, 0);
     for (i = 2; i < argc; ++i)
-       bu_vls_printf(&gdvp->gdv_edit_motion_delta_callback, "%s ", argv[i]);
+       bu_vls_printf(&tvd->gdv_edit_motion_delta_callback, "%s ", argv[i]);
 
     return GED_OK;
 }
@@ -4549,8 +4557,13 @@
 
     new_gdvp->gdv_gop = current_top->to_gop;
     bu_vls_init(&new_gdvp->gdv_view->gv_name);
+
+    struct tclcad_view_data *tvd;
+    BU_GET(tvd, struct tclcad_view_data);
+    bu_vls_init(&tvd->gdv_edit_motion_delta_callback);
+    new_gdvp->gdv_data = (void *)tvd;
     bu_vls_init(&new_gdvp->gdv_callback);
-    bu_vls_init(&new_gdvp->gdv_edit_motion_delta_callback);
+
     bu_vls_printf(&new_gdvp->gdv_view->gv_name, "%s", argv[name_index]);
     ged_view_init(new_gdvp->gdv_view);
     BU_LIST_INSERT(&current_top->to_gop->go_head_views.l, &new_gdvp->l);

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to