Function:xs2ap
From S2PLOT
xs2ap
Add a new panel.
Prototype
int xs2ap(float x1, float y1, float x2, float y2);
Description
Add a new panel to the S2PLOT window. The panel goes from (x1,y1) to (x2,y2) where these are fractions of the window coordinates. Individual panels can be activated and deactivated by providing the panel id to the toggle function.
See Also
xs2cp | Select a panel for subsequent geometry calls | |
xs2mp | Modify location of existing panel | |
xs2tp | Toggle visibility of panel | |
xs2lpc | Link panel cameras together |
Code Example
#include <stdio.h>
#include <stdlib.h>
#include "s2plot.h"
/* Global variales used in callback */
int master_panel = 0; /* Default ID of main panel */
int slave_panel; /* ID of newly created panel */
void cb(double *t, int *kc)
{
static int lkc = 0; /* Keep count of keypress state */
if (*kc == 1) {
xs2lpc(master_panel, slave_panel); /* Link panels together */
} else if ((*kc > 1) && (*kc != lkc)) {
xs2tp(slave_panel); /* Toggle panel visiblity */
}
lkc = *kc; /* Update count of keypress state */
}
int main(int argc, char *argv[])
{
s2opend("/s2mono", argc, argv); /* Open in mono mode */
s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */
s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0); /* Draw coordinate box */
xs2mp(master_panel, 0.0, 0.5, 0.5, 1.0); /* Move to top left */
slave_panel = xs2ap(0.5, 0.0, 1.0, 0.5); /* Create panel in bottom right */
xs2cp(slave_panel); /* Choose this panel */
s2swin(-2.,2., -2.,2., -2.,2.); /* Set the window coordinates */
s2box("BCDE",0,0,"BCDE",0,0,"BCDE",0,0); /* Draw coordinate box */
xs2cp(master_panel); /* Go back to main panel */
cs2scb(cb); /* Install dynamic callback */
fprintf(stderr,"Press <tab> to switch between panels\n");
fprintf(stderr,"Press <spacebar> to link cameras together - cannot be undone\n");
fprintf(stderr,"Futher presses of <spacebar> toggle panel visiblity\n");
s2show(1); /* Open the s2plot window */
return 1;
}
Back to S2PLOT function list.