35 char *xspec, *
yspec, *labx, *laby, *labtop;
45 #define MAX_STRIPC 1000 // Max allowed
79 if ( strip[i] == NULL )
82 if ( i == MAX_STRIPC )
84 plabort(
"plstripc: Cannot create new strip chart" );
92 if ( strip[
sid] == NULL )
94 plabort(
"plstripc: Out of memory." );
104 for ( i = 0; i <
PEN; i++ )
108 stripc->
colline[i] = colline[i];
109 stripc->
styline[i] = styline[i];
111 stripc->
x[i] = (
PLFLT *) malloc( (
size_t)
sizeof (
PLFLT ) * (
size_t) ( stripc->
nptsmax[i] ) );
112 stripc->
y[i] = (
PLFLT *) malloc( (
size_t)
sizeof (
PLFLT ) * (
size_t) ( stripc->
nptsmax[i] ) );
113 if ( stripc->
x[i] == NULL || stripc->
y[i] == NULL )
115 plabort(
"plstripc: Out of memory." );
122 stripc->
xlpos = xlpos;
123 stripc->
ylpos = ylpos;
128 stripc->
xjump = xjump;
129 stripc->
xlen = xmax - xmin;
155 plwind( -0.01, 1.01, -0.01, 1.01 );
156 for ( i = 0; i <
PEN; i++ )
158 if ( stripcloc->
npts[i] || first )
202 for ( i = 0; i <
PEN; i++ )
204 if ( striploc->
npts[i] > 0 )
207 plline( striploc->
npts[i], striploc->
x[i], striploc->
y[i] );
223 int j, yasc = 0, istart;
232 ( ( stripc = strip[
id] ) == NULL ) )
234 plabort(
"Non existent stripchart" );
243 stripc->
x[p] = (
PLFLT *) realloc( (
void *) stripc->
x[p],
sizeof (
PLFLT ) * (
size_t) ( stripc->
nptsmax[p] ) );
244 stripc->
y[p] = (
PLFLT *) realloc( (
void *) stripc->
y[p],
sizeof (
PLFLT ) * (
size_t) ( stripc->
nptsmax[p] ) );
245 if ( stripc->
x[p] == NULL || stripc->
y[p] == NULL )
247 plabort(
"plstripc: Out of memory." );
253 stripc->
x[p][stripc->
npts[p] - 1] = x;
254 stripc->
y[p][stripc->
npts[p] - 1] = y;
258 if ( stripc->
y_ascl == 1 && ( y > stripc->
ymax || y < stripc->ymin ) )
261 if ( y > stripc->
ymax )
262 stripc->
ymax = stripc->
ymin + 1.1 * ( y - stripc->
ymin );
263 if ( y < stripc->ymin )
264 stripc->
ymin = stripc->
ymax - 1.1 * ( stripc->
ymax - y );
276 if ( ( stripc->
npts[p] - 2 ) < 0 )
292 if ( stripc->
acc == 0 )
294 for ( j = 0; j <
PEN; j++ )
296 if ( stripc->
npts[j] > 0 )
299 while ( stripc->
x[j][istart] < stripc->
xmin + stripc->
xlen * stripc->
xjump )
302 stripc->
npts[j] = stripc->
npts[j] - istart;
303 memcpy( &stripc->
x[j][0], &stripc->
x[j][istart], (
size_t) ( stripc->
npts[j] ) * sizeof (
PLFLT ) );
304 memcpy( &stripc->
y[j][0], &stripc->
y[j][istart], (
size_t) ( stripc->
npts[j] ) * sizeof (
PLFLT ) );
311 if ( stripc->
acc == 0 )
314 stripc->
xmin = stripc->
x[p][0];
332 ( ( stripc = strip[
id] ) == NULL ) )
334 plabort(
"Non existent stripchart" );
338 for ( i = 0; i <
PEN; i++ )
340 if ( stripc->
npts[i] )
342 free( (
void *) stripc->
x[i] );
343 free( (
void *) stripc->
y[i] );
348 free( stripc->
xspec );
349 free( stripc->
yspec );
350 free( stripc->
labx );
351 free( stripc->
laby );
353 free( (
void *) stripc );
void c_plstripc(PLINT *id, PLCHAR_VECTOR xspec, PLCHAR_VECTOR yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, PLINT y_ascl, PLINT acc, PLINT colbox, PLINT collab, PLINT_VECTOR colline, PLINT_VECTOR styline, PLCHAR_MATRIX legline, PLCHAR_VECTOR labx, PLCHAR_VECTOR laby, PLCHAR_VECTOR labtop)
void plP_movwor(PLFLT x, PLFLT y)
static void plstrip_legend(PLStrip *strip, int flag)
const char * PLCHAR_VECTOR
const char *const * PLCHAR_MATRIX
void c_plstripa(PLINT id, PLINT p, PLFLT x, PLFLT y)
void plabort(PLCHAR_VECTOR errormsg)
void c_plstripd(PLINT id)
static PLStrip * strip[MAX_STRIPC]
const PLINT * PLINT_VECTOR
static void plstrip_gen(PLStrip *strip)
char PLDLLIMPEXP * plstrdup(PLCHAR_VECTOR src)
void plP_drawor(PLFLT x, PLFLT y)