It is great to have float line width in the future release! Thanks!
Hǎiliàng > Hi Hǎiliàng: > > I gave you a quick answer on plplot-general, but I think the rest of > this discussion should be on plplot-devel. Please subscribe to that > list (i.e., the current list) if you would like to participate further > in that discussion. > > @Andrew: most of the rest of this is addressed to you. > > Since that quick answer I have looked more carefully at what external > drawing libraries do. Our two best devices drivers are cairo (based > on the pango and cairo external libraries) and qt (based on the Qt4 > external libraries. It appears the cairo library uses a floating-point > pen width which we currently specify by casting the PLplot integer > width appropriately. Also, it appears from our qt code, that we > propagate our linewidth to a call the Qt4 setWidth (documented at) > http://harmattan-dev.nokia.com/docs/library/html/qt4/qpen.html#width > which takes an integer width argument. But right next to that > setWidth function they also define setWidthF which takes a > floating-point pen width argument. So my guess is the Qt4 library > made the same mistake as PLplot has done (integer width argument) but > they fixed it later by allowing the setWidthF alternative of > specifying a floating-point width. > > So here is what I suggest we do. > > 1. Define a new function plwidth just like plwid is done now but with a > PLFLT line > width argument. (Actually, I like the plwidth name better than plwid.) > > 2. Wherever plwid is called internally now change that to plwidth > with approprate cast of the argument (which allows plwid to > be moved to pldeprecated.c below). > > 3. Define plwid as > > void plwid(PLINT width) > { > plwidth( (PLFLT) width); > } > > and move it to pldeprecated. > > 4. Propagate the floating point line width set by plwidth to each of > our device drivers. That would immediately let users specify a 0.2 > width for plwidth which would propagate directly to our cairo device > driver. With some additional work (i.e., replacing setWidth with > setWidthF everywhere) we could propagate floating-point pen widths to > our qt device driver as well. > > @Andrew: do you see any issues with the above four changes? > > Of course, we would still be stuck with integer line widths for the > pllegend, plshade, and plshades API until we changed those width > arguments to PLFLT. But making such changes is tougher on our users > than the above 4 changes because we don't want to change the pllegend, > plshade, and plshades function names. So we could put that change off > until later, but if we are going to do the above 4 changes, it is > probably a good time to do the pllegend, plshade, and plshades API > changes as well (so long as we warn our users about this in the > release announcement and do the appropriate SOVERSION bump to force > them to recompile their applications/libraries.) But I emphasize this > is a separate issue that should not affect what we decide to do for > plwid. > > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel