36 if ( plsc->level < 1 )
38 plabort(
"pladv: Please call plinit first" );
42 if ( page > 0 && page <= plsc->nsubx * plsc->nsuby )
47 if ( plsc->cursub >= plsc->nsubx * plsc->nsuby )
59 plabort(
"pladv: Invalid subpage number" );
73 if ( plsc->level < 1 )
75 plabort(
"plclear: Please call plinit first" );
79 if ( plsc->dev_clear )
85 int ocolor = plsc->icol0;
87 x[0] = x[3] = x[4] = (short) plsc->sppxmi;
88 x[1] = x[2] = (
short) plsc->sppxma;
89 y[0] = y[1] = y[4] = (short) plsc->sppymi;
90 y[2] = y[3] = (
short) plsc->sppyma;
103 if ( plsc->level < 1 )
105 plabort(
"pleop: Please call plinit first" );
109 plsc->cursub = plsc->nsubx * plsc->nsuby;
120 if ( plsc->level < 1 )
122 plabort(
"plbop: Please call plinit first" );
136 PLFLT scale, size_chr, size_sym, size_maj, size_min, theta, rat;
140 if ( plsc->nsubx <= 0 )
142 if ( plsc->nsuby <= 0 )
157 ( ( plsc->phyxma - plsc->phyxmi ) / plsc->xpmm +
158 ( plsc->phyyma - plsc->phyymi ) / plsc->ypmm ) / 200.0;
163 theta = 0.5 *
M_PI * plsc->diorot;
164 rat = ( ( plsc->phyxma - plsc->phyxmi ) / plsc->xpmm ) /
165 ( ( plsc->phyyma - plsc->phyymi ) / plsc->ypmm );
166 rat =
MAX( rat, 1.0 / rat );
167 rat = fabs( cos( theta ) ) + rat * fabs( sin( theta ) );
171 if ( plsc->nsuby > 1 )
172 scale /= sqrt( (
double) plsc->nsuby );
179 plschr( size_chr * scale, 1.0 );
180 plssym( size_sym * scale, 1.0 );
181 plsmaj( size_maj * scale, 1.0 );
182 plsmin( size_min * scale, 1.0 );
193 ix = ( plsc->cursub - 1 ) % plsc->nsubx;
194 iy = plsc->nsuby - ( plsc->cursub - 1 ) / plsc->nsubx;
196 plsc->spdxmi = (
PLFLT) ( ix ) / (
PLFLT) ( plsc->nsubx );
197 plsc->spdxma = (
PLFLT) ( ix + 1 ) / (
PLFLT) ( plsc->nsubx );
198 plsc->spdymi = (
PLFLT) ( iy - 1 ) / (
PLFLT) ( plsc->nsuby );
199 plsc->spdyma = (
PLFLT) ( iy ) / (
PLFLT) ( plsc->nsuby );
201 plsc->sppxmi =
plP_dcpcx( plsc->spdxmi );
202 plsc->sppxma =
plP_dcpcx( plsc->spdxma );
203 plsc->sppymi =
plP_dcpcy( plsc->spdymi );
204 plsc->sppyma =
plP_dcpcy( plsc->spdyma );
206 plP_sclp( plsc->sppxmi, plsc->sppxma, plsc->sppymi, plsc->sppyma );
208 if ( plsc->plbuf_write )
224 if ( plsc->level < 1 )
226 plabort(
"plgspa: Please call plinit first" );
292 int lastwin = plsc->nplwin - 1;
296 for ( i = lastwin; i >= firstwin; i-- )
299 if ( ( rx >= w->
dxmi ) &&
PLINT plGetCursor(PLGraphicsIn *plg)
void plP_esc(PLINT op, void *ptr)
void c_plcalc_world(PLFLT rx, PLFLT ry, PLFLT *wx, PLFLT *wy, PLINT *window)
PLINT plTranslateCursor(PLGraphicsIn *plg)
void plabort(PLCHAR_VECTOR errormsg)
void c_plgspa(PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax)
void plbuf_setsub(PLStream *pls)
void plP_fill(short *x, short *y, PLINT npts)
void plP_sclp(PLINT ixmin, PLINT ixmax, PLINT iymin, PLINT iymax)