Functions
Previous  Top  Next


pfList * pfCAVEChannels(void)
Returns a pfList which contains pointers to all of the channels created by pfCAVE (the elements are all of type pfChannel *).  
void pfCAVEConfig(int *argc, char **argv, char **appdefaults)
Reads the CAVE configuration, and initializes pfCAVE operations. This function calls CAVEConfigure (passing it argc,argv,appdefaults) to initialize the CAVELib data. It then configures Performer in multi-pipe mode for the number of walls selected, and starts the trackd tracking and networking processes if they are needed.  
pfCAVEConfig must be called after pfInit and before pfConfig.  
void pfCAVEDCSHeadTransform(pfDCS *dcs)
Modifies the given pfDCS to contain the same translation and rotation as the head tracker (the scaling part of the DCS is not changed). The data used are in CAVE tracker coordinates.  
void pfCAVEDCSNavTransform(pfDCS *dcs)
Modifies the given pfDCS to contain the current CAVE navigation transformation. This DCS will transform from physical tracker coordinates to navigated world coordinates; tracker coordinates are the base pfCAVE coordinate system, so this DCS should not be under any other DCS/SCS in a scene graph.  
void pfCAVEDCSNetHeadTransform(pfDCS *dcs,volatile CAVE_USER_ST *user)
Modifies the given pfDCS to contain the same translation and rotation as the head tracker for the networked user user (the scaling part of the DCS is not changed). The data used are in navigated coordinates, so the DCS should be placed under the CAVE navigation DCS (pfCAVEDCSNavTransform).  
void pfCAVEDCSNetWandTransform(pfDCS *dcs,volatile CAVE_USER_ST *user)
Modifies the given pfDCS to contain the same translation and rotation as the wand tracker for the networked user user (the scaling part of the DCS is not changed). The data used are in navigated coordinates, so the DCS should be placed under the CAVE navigation DCS (pfCAVEDCSNavTransform).  
void pfCAVEDCSWandTransform(pfDCS *dcs)
Modifies the given pfDCS to contain the same translation and rotation as the wand tracker (the scaling part of the DCS is not changed). The data used are in CAVE tracker coordinates.  
void pfCAVEDCSSensorTransform(pfDCS *dcs,CAVE_SENSOR_ST *sensor)
Modifies the given pfDCS to contain the same translation and rotation as the given sensor (the scaling part of the DCS is not changed). The data used are in tracker coordinates.  
void pfCAVEDrawFunc(pfChanFuncType func)
Sets a drawing callback function. func will be called by pfCAVE's channel draw function in place of pfDraw. It will be passed pointers to the channel and the channel data.  
void pfCAVEHalt(void)
Cleans up before exiting. pfCAVEHalt calls CAVEHalt and runs the exit commands (from the configuration file) for each active wall. It should be called prior to pfExit.  
void pfCAVEInitChannels(void)
Creates the pfCAVE channels. This function creates a separate channel for each (eye,wall) combination that is active. The channels are all put into a single channel group, which shares the scene, EarthSky model, cull function, draw function, near & far clipping planes, and buffer swap. pfCAVEInitChannels should be called after pfConfig.  
pfChannel *pfCAVEMasterChan(void)
Returns the 'master' channel from the pfCAVE channel group.  
pfList * pfCAVEPipes(void)
Returns a pfList which contains pointers to all the pipes that were created (the elements are all of type pfPipe *).  
void pfCAVEPostDrawFunc(pfChanFuncType func)
Sets a post-pfDraw application callback. func will be called by pfCAVE's channel draw function immediately after pfDraw. It will be passed pointers to the channel and the channel data.  
void pfCAVEPostFrame(void)
Performs non-latency-critical post rendering actions. pfCAVEPostFrame currently only updates CAVE networking data. It should be called at the end of the frame loop, after pfFrame.  
void pfCAVEPreDrawFunc(pfChanFuncType func)
Sets a pre-pfDraw application callback. func will be called by pfCAVE's channel draw function immediately before pfDraw. It will be passed pointers to the channel and the channel data. If no pre-draw callback has been set, the pfCAVE channel draw function calls pfClearChan; if a callback has been set, it is up to the callback to clear the channel.  
void pfCAVEPreFrame(void)
Performs latency-critical pre-rendering actions. This function updates tracking and sets up the projections for each of the pfCAVE channels. It should be called once per frame, before pfFrame.