Revision: 57184
          http://sourceforge.net/p/brlcad/code/57184
Author:   n_reed
Date:     2013-08-27 19:01:19 +0000 (Tue, 27 Aug 2013)
Log Message:
-----------
implement vlist point size specification for dm-x

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

Modified: brlcad/trunk/src/libdm/dm-X.c
===================================================================
--- brlcad/trunk/src/libdm/dm-X.c       2013-08-27 18:40:57 UTC (rev 57183)
+++ brlcad/trunk/src/libdm/dm-X.c       2013-08-27 19:01:19 UTC (rev 57184)
@@ -67,6 +67,7 @@
 
 #define PLOTBOUND 1000.0       /* Max magnification in Rot matrix */
 
+#define DM_X_DEFAULT_POINT_SIZE 1.0
 
 extern void X_allocate_color_cube(Display *, Colormap, long unsigned int *, 
int, int, int);
 extern unsigned long X_get_pixel(unsigned char, unsigned char, unsigned char, 
long unsigned int *, int);
@@ -856,8 +857,8 @@
     static int nvectors = 0;
     struct dm_xvars *pubvars = (struct dm_xvars *)dmp->dm_vars.pub_vars;
     struct x_vars *privars = (struct x_vars *)dmp->dm_vars.priv_vars;
+    fastf_t pointSize = DM_X_DEFAULT_POINT_SIZE;
 
-
     if (dmp->dm_debugLevel) {
        bu_log("X_drawVList()\n");
        bu_log("vp - %lu, perspective - %d\n", vp, dmp->dm_perspective);
@@ -1091,10 +1092,26 @@
                        bu_log("pt - %lf %lf %lf\n", pnt[X], pnt[Y], pnt[Z]);
                    }
 
-                   XDrawPoint(pubvars->dpy, privars->pix, privars->gc,
-                           GED_TO_Xx(dmp, pnt[0]), GED_TO_Xy(dmp, pnt[1]));
+                   if (pointSize <= DM_X_DEFAULT_POINT_SIZE) {
+                       XDrawPoint(pubvars->dpy, privars->pix, privars->gc,
+                               GED_TO_Xx(dmp, pnt[0]), GED_TO_Xy(dmp, pnt[1]));
+                   } else {
+                       int upperLeft[2];
 
+                       upperLeft[X] = GED_TO_Xx(dmp, pnt[0]) - pointSize / 2.0;
+                       upperLeft[Y] = GED_TO_Xy(dmp, pnt[1]) - pointSize / 2.0;
+
+                       XFillRectangle(pubvars->dpy, privars->pix, privars->gc,
+                               upperLeft[X], upperLeft[Y], pointSize, 
pointSize);
+
+                   }
                    break;
+               case BN_VLIST_POINT_SIZE:
+                   pointSize = (*pt)[0];
+                   if (pointSize < DM_X_DEFAULT_POINT_SIZE) {
+                       pointSize = DM_X_DEFAULT_POINT_SIZE;
+                   }
+                   break;
            }
        }
 

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


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to