Revision: 75329
          http://sourceforge.net/p/brlcad/code/75329
Author:   starseeker
Date:     2020-04-09 20:04:09 +0000 (Thu, 09 Apr 2020)
Log Message:
-----------
Move the static vars in dm-plot into the private variables container

Modified Paths:
--------------
    brlcad/trunk/src/libdm/dm-plot.c
    brlcad/trunk/src/libdm/dm-plot.h

Modified: brlcad/trunk/src/libdm/dm-plot.c
===================================================================
--- brlcad/trunk/src/libdm/dm-plot.c    2020-04-09 19:58:43 UTC (rev 75328)
+++ brlcad/trunk/src/libdm/dm-plot.c    2020-04-09 20:04:09 UTC (rev 75329)
@@ -62,12 +62,7 @@
 #define PLOTBOUND 1000.0       /* Max magnification in Rot matrix */
 
 struct plot_vars head_plot_vars;
-static mat_t plotmat;
-static mat_t disp_mat;
-static mat_t mod_mat;
 
-
-
 /**
  * Gracefully release the display.
  */
@@ -159,8 +154,8 @@
        bu_vls_free(&tmp_vls);
     }
 
-    MAT_COPY(mod_mat, mat);
-    MAT_COPY(plotmat, mat);
+    MAT_COPY(privars->mod_mat, mat);
+    MAT_COPY(privars->plotmat, mat);
     Tcl_SetObjResult(dmp->dm_interp, obj);
     return BRLCAD_OK;
 }
@@ -197,7 +192,7 @@
      * slightly in front of eye plane (perspective mode only).  This
      * value is a SWAG that seems to work OK.
      */
-    delta = plotmat[15]*0.0001;
+    delta = privars->plotmat[15]*0.0001;
     if (delta < 0.0)
        delta = -delta;
     if (delta < SQRT_SMALL_FASTF)
@@ -217,14 +212,14 @@
                case BN_VLIST_TRI_VERTNORM:
                    continue;
                case BN_VLIST_MODEL_MAT:
-                   MAT_COPY(plotmat, mod_mat);
+                   MAT_COPY(privars->plotmat, privars->mod_mat);
                    continue;
                case BN_VLIST_DISPLAY_MAT:
-                   MAT4X3PNT(tlate, (mod_mat), *pt);
-                   disp_mat[3] = tlate[0];
-                   disp_mat[7] = tlate[1];
-                   disp_mat[11] = tlate[2];
-                   MAT_COPY(plotmat, disp_mat);
+                   MAT4X3PNT(tlate, (privars->mod_mat), *pt);
+                   privars->disp_mat[3] = tlate[0];
+                   privars->disp_mat[7] = tlate[1];
+                   privars->disp_mat[11] = tlate[2];
+                   MAT_COPY(privars->plotmat, privars->disp_mat);
                    continue;
                case BN_VLIST_POLY_MOVE:
                case BN_VLIST_LINE_MOVE:
@@ -234,18 +229,18 @@
                        /* cannot apply perspective transformation to
                         * points behind eye plane!!!!
                         */
-                       dist = VDOT(*pt, &plotmat[12]) + plotmat[15];
+                       dist = VDOT(*pt, &privars->plotmat[12]) + 
privars->plotmat[15];
                        if (dist <= 0.0) {
                            pt_prev = pt;
                            dist_prev = dist;
                            continue;
                        } else {
-                           MAT4X3PNT(last, plotmat, *pt);
+                           MAT4X3PNT(last, privars->plotmat, *pt);
                            dist_prev = dist;
                            pt_prev = pt;
                        }
                    } else
-                       MAT4X3PNT(last, plotmat, *pt);
+                       MAT4X3PNT(last, privars->plotmat, *pt);
                    continue;
                case BN_VLIST_POLY_DRAW:
                case BN_VLIST_POLY_END:
@@ -257,7 +252,7 @@
                        /* cannot apply perspective transformation to
                         * points behind eye plane!!!!
                         */
-                       dist = VDOT(*pt, &plotmat[12]) + plotmat[15];
+                       dist = VDOT(*pt, &privars->plotmat[12]) + 
privars->plotmat[15];
                        if (dist <= 0.0) {
                            if (dist_prev <= 0.0) {
                                /* nothing to plot */
@@ -274,7 +269,7 @@
                                    VSUB2(diff, *pt, *pt_prev);
                                    alpha = (dist_prev - delta) / (dist_prev - 
dist);
                                    VJOIN1(tmp_pt, *pt_prev, alpha, diff);
-                                   MAT4X3PNT(fin, plotmat, tmp_pt);
+                                   MAT4X3PNT(fin, privars->plotmat, tmp_pt);
                                }
                            }
                        } else {
@@ -288,15 +283,15 @@
                                    VSUB2(diff, *pt, *pt_prev);
                                    alpha = (-dist_prev + delta) / (dist - 
dist_prev);
                                    VJOIN1(tmp_pt, *pt_prev, alpha, diff);
-                                   MAT4X3PNT(last, plotmat, tmp_pt);
-                                   MAT4X3PNT(fin, plotmat, *pt);
+                                   MAT4X3PNT(last, privars->plotmat, tmp_pt);
+                                   MAT4X3PNT(fin, privars->plotmat, *pt);
                                }
                            } else {
-                               MAT4X3PNT(fin, plotmat, *pt);
+                               MAT4X3PNT(fin, privars->plotmat, *pt);
                            }
                        }
                    } else
-                       MAT4X3PNT(fin, plotmat, *pt);
+                       MAT4X3PNT(fin, privars->plotmat, *pt);
                    VMOVE(start, last);
                    VMOVE(last, fin);
                    break;
@@ -732,9 +727,9 @@
     else
        pl_space(privars->up_fp, -2048, -2048, 2048, 2048);
 
-    MAT_IDN(mod_mat);
-    MAT_IDN(disp_mat);
-    MAT_COPY(plotmat, mod_mat);
+    MAT_IDN(privars->mod_mat);
+    MAT_IDN(privars->disp_mat);
+    MAT_COPY(privars->plotmat, privars->mod_mat);
 
     Tcl_SetObjResult(interp, obj);
     return dmp;

Modified: brlcad/trunk/src/libdm/dm-plot.h
===================================================================
--- brlcad/trunk/src/libdm/dm-plot.h    2020-04-09 19:58:43 UTC (rev 75328)
+++ brlcad/trunk/src/libdm/dm-plot.h    2020-04-09 20:04:09 UTC (rev 75329)
@@ -26,6 +26,9 @@
 #ifndef DM_PLOT_H
 #define DM_PLOT_H
 
+#include "common.h"
+#include "vmath.h"
+
 /*
  * Display coordinate conversion:
  *  GED is using -2048..+2048,
@@ -47,6 +50,9 @@
     vect_t clipmin;
     vect_t clipmax;
     struct bu_vls vls;
+    mat_t plotmat;
+    mat_t disp_mat;
+    mat_t mod_mat;
 };
 
 extern struct plot_vars head_plot_vars;

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