• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

plvpor.c

Go to the documentation of this file.
00001 // $Id: plvpor.c 11680 2011-03-27 17:57:51Z airwin $
00002 //
00003 //      Functions dealing with viewports.
00004 //
00005 // Copyright (C) 2004  Joao Cardoso
00006 //
00007 // This file is part of PLplot.
00008 //
00009 // PLplot is free software; you can redistribute it and/or modify
00010 // it under the terms of the GNU Library General Public License as published
00011 // by the Free Software Foundation; either version 2 of the License, or
00012 // (at your option) any later version.
00013 //
00014 // PLplot is distributed in the hope that it will be useful,
00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 // GNU Library General Public License for more details.
00018 //
00019 // You should have received a copy of the GNU Library General Public License
00020 // along with PLplot; if not, write to the Free Software
00021 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00022 //
00023 
00024 #include "plplotP.h"
00025 
00026 static void
00027 c_plenvi( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
00028           PLINT just, PLINT axis, PLINT old );
00029 
00030 //--------------------------------------------------------------------------
00031 // void plenv()
00032 //
00033 // Simple interface for defining viewport and window.
00034 //
00035 // The "just" parameter control how the axes will be scaled:
00036 //
00037 //       just=-1 : The scales will not be set, the user must set up the scale
00038 //                   before calling plenv() using plsvpa(), plvasp() or other;
00039 //       just= 0 : The scales will be set up to optimize plot area;
00040 //       just= 1 : The scales will be the same;
00041 //       just= 2 : The axes will be equal, the plot box will be square.
00042 //
00043 // The "axis" parameter is interpreted as follows:
00044 //
00045 //      axis=-2 : draw no box, no tick marks, no numeric tick labels, no axes.
00046 //      axis=-1 : draw box only.
00047 //      axis= 0 : Draw box, ticks, and numeric tick labels.
00048 //      axis= 1 : Also draw coordinate axes at X=0, and Y=0.
00049 //      axis= 2 : Also draw a grid at major tick positions in both coordinates.
00050 //      axis= 3 : Same as 2, but the grid will be also at the minor ticks.
00051 //      axis=10 : Same as 0 except Logarithmic X tick marks. (The X data have
00052 //      to be converted to logarithms separately.)
00053 //      axis=11 : Same as 1 except Logarithmic X tick marks. (The X data have
00054 //      to be converted to logarithms separately.)
00055 //      axis=12 : Same as 2 except Logarithmic X tick marks. (The X data have
00056 //      to be converted to logarithms separately.)
00057 //      axis=13 : Same as 12, but the grid will be also at the minor ticks.
00058 //      axis=20 : Same as 0 except Logarithmic Y tick marks. (The Y data have
00059 //      to be converted to logarithms separately.)
00060 //      axis=21 : Same as 1 except Logarithmic Y tick marks. (The Y data have
00061 //      to be converted to logarithms separately.)
00062 //      axis=22 : Same as 2 except Logarithmic Y tick marks. (The Y data have
00063 //      to be converted to logarithms separately.)
00064 //      axis=23 : Same as 22, but the grid will be also at the minor ticks.
00065 //      axis=30 : Same as 0 except Logarithmic X,Y tick marks. (The X,Y data have
00066 //      to be converted to logarithms separately.)
00067 //      axis=31 : Same as 1 except Logarithmic X,Y tick marks. (The X,Y data have
00068 //      to be converted to logarithms separately.)
00069 //      axis=32 : Same as 2 except Logarithmic X,Y tick marks. (The X,Y data have
00070 //      to be converted to logarithms separately.)
00071 //      axis=33 : Same as 32, but the grid will be also at the minor ticks.
00072 //      axis=40 : Same as 0 except date / time X tick marks.
00073 //      axis=41 : Same as 1 except date / time X tick marks.
00074 //      axis=42 : Same as 2 except date / time X tick marks.
00075 //      axis=43 : Same as 42, but the grid will be also at the minor ticks.
00076 //      axis=50 : Same as 0 except date / time Y tick marks.
00077 //      axis=51 : Same as 1 except date / time Y tick marks.
00078 //      axis=52 : Same as 2 except date / time Y tick marks.
00079 //      axis=53 : Same as 52, but the grid will be also at the minor ticks.
00080 //      axis=60 : Same as 0 except date / time X,Y tick marks.
00081 //      axis=61 : Same as 1 except date / time X,Y tick marks.
00082 //      axis=62 : Same as 2 except date / time X,Y tick marks.
00083 //      axis=63 : Same as 62, but the grid will be also at the minor ticks.
00084 //      axis=70 : Same as 0 except custom X,Y labels.
00085 //      axis=71 : Same as 1 except custom X,Y labels.
00086 //      axis=72 : Same as 2 except custom X,Y labels.
00087 //      axis=73 : Same as 72, but the grid will be also at the minor ticks.
00088 //--------------------------------------------------------------------------
00089 
00090 void
00091 c_plenv( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
00092          PLINT just, PLINT axis )
00093 {
00094     c_plenvi( xmin, xmax, ymin, ymax, just, axis, 1 );
00095 }
00096 
00097 //--------------------------------------------------------------------------
00098 // void plenv0()
00099 //
00100 // same as plenv() above, but if in multiplot mode does not advance the subpage,
00101 // instead clears it.
00102 //--------------------------------------------------------------------------
00103 
00104 void
00105 c_plenv0( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
00106           PLINT just, PLINT axis )
00107 {
00108     c_plenvi( xmin, xmax, ymin, ymax, just, axis, 0 );
00109 }
00110 
00111 
00112 static void
00113 c_plenvi( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax,
00114           PLINT just, PLINT axis, PLINT old )
00115 {
00116     PLFLT lb, rb, tb, bb, dx, dy;
00117     PLFLT xsize, ysize, size, xscale, yscale, scale;
00118     PLFLT spxmin, spxmax, spymin, spymax;
00119     PLFLT vpxmin, vpxmax, vpymin, vpymax;
00120 
00121     if ( plsc->level < 1 )
00122     {
00123         plabort( "plenv: Please call plinit first" );
00124         return;
00125     }
00126     if ( xmin == xmax )
00127     {
00128         plabort( "plenv: Invalid xmin and xmax arguments" );
00129         return;
00130     }
00131     if ( ymin == ymax )
00132     {
00133         plabort( "plenv: Invalid ymin and ymax arguments" );
00134         return;
00135     }
00136     if ( just < -1 || just > 2 )
00137     {
00138         plabort( "plenv: Invalid just option" );
00139         return;
00140     }
00141 
00142     if ( plsc->nsubx * plsc->nsuby == 1 ) // not multiplot mode
00143         old = 1;
00144 
00145     if ( old == 1 )
00146         pladv( 0 );
00147     else
00148         plclear();
00149 
00150     if ( just == 0 )
00151         plvsta();
00152     else if ( just == 1 )
00153     {
00154         lb = 8.0 * plsc->chrht;
00155         rb = 5.0 * plsc->chrht;
00156         tb = 5.0 * plsc->chrht;
00157         bb = 5.0 * plsc->chrht;
00158         dx = ABS( xmax - xmin );
00159         dy = ABS( ymax - ymin );
00160         plgspa( &spxmin, &spxmax, &spymin, &spymax );
00161         xsize  = spxmax - spxmin;
00162         ysize  = spymax - spymin;
00163         xscale = dx / ( xsize - lb - rb );
00164         yscale = dy / ( ysize - tb - bb );
00165         scale  = MAX( xscale, yscale );
00166         vpxmin = MAX( lb, 0.5 * ( xsize - dx / scale ) );
00167         vpxmax = vpxmin + ( dx / scale );
00168         vpymin = MAX( bb, 0.5 * ( ysize - dy / scale ) );
00169         vpymax = vpymin + ( dy / scale );
00170         plsvpa( vpxmin, vpxmax, vpymin, vpymax );
00171     }
00172     else if ( just == 2 )
00173     {
00174         lb = 8.0 * plsc->chrht;
00175         rb = 5.0 * plsc->chrht;
00176         tb = 5.0 * plsc->chrht;
00177         bb = 5.0 * plsc->chrht;
00178         plgspa( &spxmin, &spxmax, &spymin, &spymax );
00179         xsize  = spxmax - spxmin;
00180         ysize  = spymax - spymin;
00181         size   = MIN( xsize - lb - rb, ysize - tb - bb );
00182         dx     = ( xsize - size - lb - rb ) / 2;
00183         vpxmin = lb + dx;
00184         vpxmax = vpxmin + size;
00185         dy     = ( ysize - size - bb - tb ) / 2;
00186         vpymin = bb + dy;
00187         vpymax = vpymin + size;
00188         plsvpa( vpxmin, vpxmax, vpymin, vpymax );
00189     }
00190 
00191     plwind( xmin, xmax, ymin, ymax );
00192 
00193     switch ( axis )
00194     {
00195     case -2:
00196         break;
00197     case -1:
00198         plbox( "bc", (PLFLT) 0.0, 0, "bc", (PLFLT) 0.0, 0 );
00199         break;
00200     case 0:
00201         plbox( "bcnst", (PLFLT) 0.0, 0, "bcnstv", (PLFLT) 0.0, 0 );
00202         break;
00203     case 1:
00204         plbox( "abcnst", (PLFLT) 0.0, 0, "abcnstv", (PLFLT) 0.0, 0 );
00205         break;
00206     case 2:
00207         plbox( "abcgnst", (PLFLT) 0.0, 0, "abcgnstv", (PLFLT) 0.0, 0 );
00208         break;
00209     case 3:
00210         plbox( "abcgnsth", (PLFLT) 0.0, 0, "abcgnstvh", (PLFLT) 0.0, 0 );
00211         break;
00212     case 10:
00213         plbox( "bclnst", (PLFLT) 0.0, 0, "bcnstv", (PLFLT) 0.0, 0 );
00214         break;
00215     case 11:
00216         plbox( "abclnst", (PLFLT) 0.0, 0, "abcnstv", (PLFLT) 0.0, 0 );
00217         break;
00218     case 12:
00219         plbox( "abcglnst", (PLFLT) 0.0, 0, "abcgnstv", (PLFLT) 0.0, 0 );
00220         break;
00221     case 13:
00222         plbox( "abcglnsth", (PLFLT) 0.0, 0, "abcgnstvh", (PLFLT) 0.0, 0 );
00223         break;
00224     case 20:
00225         plbox( "bcnst", (PLFLT) 0.0, 0, "bclnstv", (PLFLT) 0.0, 0 );
00226         break;
00227     case 21:
00228         plbox( "abcnst", (PLFLT) 0.0, 0, "abclnstv", (PLFLT) 0.0, 0 );
00229         break;
00230     case 22:
00231         plbox( "abcgnst", (PLFLT) 0.0, 0, "abcglnstv", (PLFLT) 0.0, 0 );
00232         break;
00233     case 23:
00234         plbox( "abcgnsth", (PLFLT) 0.0, 0, "abcglnstvh", (PLFLT) 0.0, 0 );
00235         break;
00236     case 30:
00237         plbox( "bclnst", (PLFLT) 0.0, 0, "bclnstv", (PLFLT) 0.0, 0 );
00238         break;
00239     case 31:
00240         plbox( "abclnst", (PLFLT) 0.0, 0, "abclnstv", (PLFLT) 0.0, 0 );
00241         break;
00242     case 32:
00243         plbox( "abcglnst", (PLFLT) 0.0, 0, "abcglnstv", (PLFLT) 0.0, 0 );
00244         break;
00245     case 33:
00246         plbox( "abcglnsth", (PLFLT) 0.0, 0, "abcglnstvh", (PLFLT) 0.0, 0 );
00247         break;
00248     case 40:
00249         plbox( "bcdnst", (PLFLT) 0.0, 0, "bcnstv", (PLFLT) 0.0, 0 );
00250         break;
00251     case 41:
00252         plbox( "abcdnst", (PLFLT) 0.0, 0, "abcnstv", (PLFLT) 0.0, 0 );
00253         break;
00254     case 42:
00255         plbox( "abcgdnst", (PLFLT) 0.0, 0, "abcgnstv", (PLFLT) 0.0, 0 );
00256         break;
00257     case 43:
00258         plbox( "abcgdnsth", (PLFLT) 0.0, 0, "abcgnstvh", (PLFLT) 0.0, 0 );
00259         break;
00260     case 50:
00261         plbox( "bcnst", (PLFLT) 0.0, 0, "bcdnstv", (PLFLT) 0.0, 0 );
00262         break;
00263     case 51:
00264         plbox( "abcnst", (PLFLT) 0.0, 0, "abcdnstv", (PLFLT) 0.0, 0 );
00265         break;
00266     case 52:
00267         plbox( "abcgnst", (PLFLT) 0.0, 0, "abcgdnstv", (PLFLT) 0.0, 0 );
00268         break;
00269     case 53:
00270         plbox( "abcgnsth", (PLFLT) 0.0, 0, "abcgdnstvh", (PLFLT) 0.0, 0 );
00271         break;
00272     case 60:
00273         plbox( "bcdnst", (PLFLT) 0.0, 0, "bcdnstv", (PLFLT) 0.0, 0 );
00274         break;
00275     case 61:
00276         plbox( "abcdnst", (PLFLT) 0.0, 0, "abcdnstv", (PLFLT) 0.0, 0 );
00277         break;
00278     case 62:
00279         plbox( "abcgdnst", (PLFLT) 0.0, 0, "abcgdnstv", (PLFLT) 0.0, 0 );
00280         break;
00281     case 63:
00282         plbox( "abcgdnsth", (PLFLT) 0.0, 0, "abcgdnstvh", (PLFLT) 0.0, 0 );
00283         break;
00284     case 70:
00285         plbox( "bcnost", (PLFLT) 0.0, 0, "bcnostv", (PLFLT) 0.0, 0 );
00286         break;
00287     case 71:
00288         plbox( "abcnost", (PLFLT) 0.0, 0, "abcnostv", (PLFLT) 0.0, 0 );
00289         break;
00290     case 72:
00291         plbox( "abcgnost", (PLFLT) 0.0, 0, "abcgnostv", (PLFLT) 0.0, 0 );
00292         break;
00293     case 73:
00294         plbox( "abcgnosth", (PLFLT) 0.0, 0, "abcgnostvh", (PLFLT) 0.0, 0 );
00295         break;
00296     default:
00297         plwarn( "plenv: Invalid axis argument" );
00298     }
00299 }
00300 
00301 //--------------------------------------------------------------------------
00302 // void plvsta()
00303 //
00304 // Defines a "standard" viewport with seven character heights for
00305 // the left margin and four character heights everywhere else.
00306 //--------------------------------------------------------------------------
00307 
00308 void
00309 c_plvsta( void )
00310 {
00311     PLFLT xmin, xmax, ymin, ymax;
00312     PLFLT lb, rb, tb, bb;
00313 
00314     if ( plsc->level < 1 )
00315     {
00316         plabort( "plvsta: Please call plinit first" );
00317         return;
00318     }
00319 
00320 //  Find out position of subpage boundaries in millimetres, reduce by
00321 //  the desired border, and convert back into normalized subpage
00322 //  coordinates
00323 
00324     lb = 8.0 * plsc->chrht;
00325     rb = 5.0 * plsc->chrht;
00326     tb = 5.0 * plsc->chrht;
00327     bb = 5.0 * plsc->chrht;
00328 
00329     xmin = plP_dcscx( plP_mmdcx( (PLFLT) ( plP_dcmmx( plsc->spdxmi ) + lb ) ) );
00330     xmax = plP_dcscx( plP_mmdcx( (PLFLT) ( plP_dcmmx( plsc->spdxma ) - rb ) ) );
00331     ymin = plP_dcscy( plP_mmdcy( (PLFLT) ( plP_dcmmy( plsc->spdymi ) + tb ) ) );
00332     ymax = plP_dcscy( plP_mmdcy( (PLFLT) ( plP_dcmmy( plsc->spdyma ) - bb ) ) );
00333 
00334     plvpor( xmin, xmax, ymin, ymax );
00335 }
00336 
00337 //--------------------------------------------------------------------------
00338 // void plvpor()
00339 //
00340 // Creates a viewport with the specified normalized subpage coordinates.
00341 //--------------------------------------------------------------------------
00342 
00343 void
00344 c_plvpor( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax )
00345 {
00346     if ( plsc->level < 1 )
00347     {
00348         plabort( "plvpor: Please call plinit first" );
00349         return;
00350     }
00351     if ( ( xmin >= xmax ) || ( ymin >= ymax ) )
00352     {
00353         plabort( "plvpor: Invalid limits" );
00354         return;
00355     }
00356     if ( ( plsc->cursub <= 0 ) || ( plsc->cursub > ( plsc->nsubx * plsc->nsuby ) ) )
00357     {
00358         plabort( "plvpor: Please call pladv or plenv to go to a subpage" );
00359         return;
00360     }
00361 
00362     plsc->vpdxmi = plsc->spdxmi + ( plsc->spdxma - plsc->spdxmi ) * xmin;
00363     plsc->vpdxma = plsc->spdxmi + ( plsc->spdxma - plsc->spdxmi ) * xmax;
00364     plsc->vpdymi = plsc->spdymi + ( plsc->spdyma - plsc->spdymi ) * ymin;
00365     plsc->vpdyma = plsc->spdymi + ( plsc->spdyma - plsc->spdymi ) * ymax;
00366 
00367     plsc->vppxmi = plP_dcpcx( plsc->vpdxmi );
00368     plsc->vppxma = plP_dcpcx( plsc->vpdxma );
00369     plsc->vppymi = plP_dcpcy( plsc->vpdymi );
00370     plsc->vppyma = plP_dcpcy( plsc->vpdyma );
00371 
00372     plsc->clpxmi = MAX( plsc->vppxmi, plsc->phyxmi );
00373     plsc->clpxma = MIN( plsc->vppxma, plsc->phyxma );
00374     plsc->clpymi = MAX( plsc->vppymi, plsc->phyymi );
00375     plsc->clpyma = MIN( plsc->vppyma, plsc->phyyma );
00376 
00377     plsc->level = 2;
00378 }
00379 
00380 //--------------------------------------------------------------------------
00381 // void plvpas()
00382 //
00383 // Creates the largest viewport of the specified aspect ratio that fits
00384 // within the specified normalized subpage coordinates.
00385 //--------------------------------------------------------------------------
00386 
00387 void
00388 c_plvpas( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT aspect )
00389 {
00390     PLFLT spxmin, spxmax, spymin, spymax;
00391     PLFLT vpxmin, vpxmax, vpymin, vpymax;
00392     PLFLT spxmid, spymid, xsize, ysize, nxsize, nysize, w_aspect, ratio;
00393     PLFLT xoffset, yoffset;
00394 
00395     if ( plsc->level < 1 )
00396     {
00397         plabort( "plvpas: Please call plinit first" );
00398         return;
00399     }
00400     if ( ( xmin >= xmax ) || ( ymin >= ymax ) )
00401     {
00402         plabort( "plvpas: Invalid limits" );
00403         return;
00404     }
00405 
00406     if ( aspect <= 0.0 )
00407     {
00408         c_plvpor( xmin, xmax, ymin, ymax );
00409         return;
00410     }
00411 
00412     plgspa( &spxmin, &spxmax, &spymin, &spymax );
00413 
00414     xsize = spxmax - spxmin;
00415     ysize = spymax - spymin;
00416 
00417     xoffset = xsize * xmin;
00418     yoffset = ysize * ymin;
00419 
00420     spxmax = spxmin + xsize * xmax;
00421     spxmin = spxmin + xsize * xmin;
00422     spymax = spymin + ysize * ymax;
00423     spymin = spymin + ysize * ymin;
00424 
00425     // Adjust size for the requested edging
00426     xsize = spxmax - spxmin;
00427     ysize = spymax - spymin;
00428 
00429     if ( aspect * xsize > ysize )
00430     {
00431         nxsize = ysize / aspect;
00432         nysize = ysize;
00433     }
00434     else
00435     {
00436         nxsize = xsize;
00437         nysize = xsize * aspect;
00438     }
00439 
00440 // center plot within page
00441 
00442     vpxmin = 0.5 * ( xsize - nxsize ) + xoffset;
00443     vpxmax = vpxmin + nxsize;
00444     vpymin = 0.5 * ( ysize - nysize ) + yoffset;
00445     vpymax = vpymin + nysize;
00446 
00447     plsvpa( vpxmin, vpxmax, vpymin, vpymax );
00448 }
00449 
00450 //--------------------------------------------------------------------------
00451 // void plvasp()
00452 //
00453 // Sets the edges of the viewport with the given aspect ratio, leaving
00454 // room for labels.
00455 //--------------------------------------------------------------------------
00456 
00457 void
00458 c_plvasp( PLFLT aspect )
00459 {
00460     PLFLT spxmin, spxmax, spymin, spymax;
00461     PLFLT vpxmin, vpxmax, vpymin, vpymax;
00462     PLFLT xsize, ysize, nxsize, nysize;
00463     PLFLT lb, rb, tb, bb;
00464 
00465     if ( plsc->level < 1 )
00466     {
00467         plabort( "plvasp: Please call plinit first" );
00468         return;
00469     }
00470 
00471     lb = 8.0 * plsc->chrht;
00472     rb = 5.0 * plsc->chrht;
00473     tb = 5.0 * plsc->chrht;
00474     bb = 5.0 * plsc->chrht;
00475 
00476     plgspa( &spxmin, &spxmax, &spymin, &spymax );
00477     xsize  = spxmax - spxmin;
00478     ysize  = spymax - spymin;
00479     xsize -= lb + rb;           // adjust for labels
00480     ysize -= bb + tb;
00481     if ( aspect * xsize > ysize )
00482     {
00483         nxsize = ysize / aspect;
00484         nysize = ysize;
00485     }
00486     else
00487     {
00488         nxsize = xsize;
00489         nysize = xsize * aspect;
00490     }
00491 
00492 // center plot within page
00493 
00494     vpxmin = .5 * ( xsize - nxsize ) + lb;
00495     vpxmax = vpxmin + nxsize;
00496     vpymin = .5 * ( ysize - nysize ) + bb;
00497     vpymax = vpymin + nysize;
00498 
00499     plsvpa( vpxmin, vpxmax, vpymin, vpymax );
00500 }
00501 
00502 //--------------------------------------------------------------------------
00503 // void plsvpa()
00504 //
00505 // Sets the edges of the viewport to the specified absolute coordinates
00506 // (mm), measured with respect to the current subpage boundaries.
00507 //--------------------------------------------------------------------------
00508 
00509 void
00510 c_plsvpa( PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax )
00511 {
00512     PLFLT sxmin, symin;
00513 
00514     if ( plsc->level < 1 )
00515     {
00516         plabort( "plsvpa: Please call plinit first" );
00517         return;
00518     }
00519     if ( ( xmin >= xmax ) || ( ymin >= ymax ) )
00520     {
00521         plabort( "plsvpa: Invalid limits" );
00522         return;
00523     }
00524     if ( ( plsc->cursub <= 0 ) || ( plsc->cursub > ( plsc->nsubx * plsc->nsuby ) ) )
00525     {
00526         plabort( "plsvpa: Please call pladv or plenv to go to a subpage" );
00527         return;
00528     }
00529 
00530     sxmin = plP_dcmmx( plsc->spdxmi );
00531     symin = plP_dcmmy( plsc->spdymi );
00532 
00533     plsc->vpdxmi = plP_mmdcx( (PLFLT) ( sxmin + xmin ) );
00534     plsc->vpdxma = plP_mmdcx( (PLFLT) ( sxmin + xmax ) );
00535     plsc->vpdymi = plP_mmdcy( (PLFLT) ( symin + ymin ) );
00536     plsc->vpdyma = plP_mmdcy( (PLFLT) ( symin + ymax ) );
00537 
00538     plsc->vppxmi = plP_dcpcx( plsc->vpdxmi );
00539     plsc->vppxma = plP_dcpcx( plsc->vpdxma );
00540     plsc->vppymi = plP_dcpcy( plsc->vpdymi );
00541     plsc->vppyma = plP_dcpcy( plsc->vpdyma );
00542 
00543     plsc->clpxmi = plP_dcpcx( plsc->vpdxmi );
00544     plsc->clpxma = plP_dcpcx( plsc->vpdxma );
00545     plsc->clpymi = plP_dcpcy( plsc->vpdymi );
00546     plsc->clpyma = plP_dcpcy( plsc->vpdyma );
00547 
00548     plsc->level = 2;
00549 }

Generated on Wed Oct 12 2011 20:42:23 for PLplot by  doxygen 1.7.1