Function:xs2lpc
From S2PLOT
Revision as of 05:26, 22 November 2007; view current revision
←Older revision | Newer revision→
←Older revision | Newer revision→
xs2lpc
Link panel cameras together
Prototype
void xs2lpc(int masterid, int slaveid);
Description
Link camera of panel with id "slaveid" to the camera of panel with id "masterid". This cannot be undone!
See Also
xs2ap | Add a new panel | |
xs2cp | Select a panel for subsequent geometry calls | |
xs2mp | Modify location of existing panel | |
xs2tp | Toggle visibility of panel |
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.