On 2015-02-20 14:32-0500 Jim Dishaw wrote: > I've gone through the coordinate transformation and where/how it is applied > in the library. The coordinates that are stored in the plot buffer can be > best described as "device virtual pixels" and the definition is not > necessarily consistent across all the devices. I don't think that is a show > stopper and I have argued with myself on the pros/cons of different solutions. > > Solution 1: > Standardize the definition of device virtual pixels (e.g. plplot device > independent coordinate system). Use that coordinate system in the plot > buffer. > > Pros: > - A standard coordinate system being represented to the devices > - Consistency in the device output (direct output to a device vs reading a > plot metafile and rendering to a device) > > Cons: > - An additional coordinate system transformation for some devices > - Coordinate system transformation when the plot buffer is replayed (e.g. > during window resize for some devices) > - Substantial modification to the code, do not recommend this close to release > > Solution 2: > Standardize the definition of device virtual pixels (e.g. plplot device > independent coordinate system). Use device coordinate system in the plot > buffer. > > Pros: > - A standard coordinate system being represented to the devices > - Consistency in the device output (direct output to a device vs reading a > plot metafile and rendering to a device) > > Cons: > - An additional coordinate system transformation for some devices > - Substantial modification to the code, do not recommend this close to release > > Solution 3: > Keep the current implementation of coordinate systems and the plot buffer. > Translate coordinates when reading from plot metafiles or when copying a > stream to a different device stream. > > Pros: > - Less changes to the code > > Cons: > - Round off error during coordinate transformation may result in differences > in the output files > > I think solution #3 is the best choice at this time. In addition, using > solution #3 does not preclude using solutions 1 & 2 at a later date. While I > don't think it is strictly necessary, going to solution #2 in the long term > might simplify the code in the long run.
Hi Jim: I have read and re-read Solutions 1 and 2 and I don't see any difference between how you have presented them. Did you mean to say something else for one of them or am I missing some key word that distinguishes them? Regardless of that issue, I do agree with you it is too late in this release cycle for major _plbuf_ changes since wxwidgets depends on that. So in your further pre-release plbuf commits (if any), please make sure to say bug fix in the commit message so I know it is not some major change. However, plmeta/plrender commits are quite a different story than plbuf commits so I hope you keep the two separate from now on. What I intend to do with plmeta/plrender is note in the release notes that this new version is experimental and will therefore require the user to specifically request it with -DPLD_plmeta=ON. (PLD_plmeta=OFF by default is already implemented for the current build system because the old plmeta/plrender has long been deprecated.) Anyhow, because plmeta/plrender will be disabled by default, this gives you complete freedom to do anything you like with plmeta/plrender (but not plbuf) right up to and through release. Subject to your revision of the explanation of solutions 1 or 2, it does sound like all solutions other than 3 would require major plbuf changes so likely you should follow your instinct and use 3 for now. However, as soon as you are free to make major changes to plbuf (i.e., early in the next release cycle), I hope you quickly move forward with another alternative to 3 because it is important to ultimately have completely identical indirect and direct results with no chance of rounding errors creeping in. 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 __________________________ ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel