Function:xs2cp
From S2PLOT
xs2cp
Select a panel for subsequent geometry calls.
Prototype
void xs2cp(int panelid);
Description
Select a particular panel for future geometry calls.
See Also
xs2ap | Add a new panel | |
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.