pfvmWorldSwitcher(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
NAMEpfvmWorldSwitcher - A Module for switching worlds in pfvViewer
Applications
FUNCTION SPECIFICATION
#include <Performer/pfvm/pfvmWorldSwitcher.h>
pfvmWorldSwitcher::pfvmWorldSwitcher();
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfvmWorldSwitcher is derived from the parent
class pfvModule, so each of these member functions of class pfvModule are
also directly usable with objects of class pfvmWorldSwitcher. This is
also true for ancestor classes of class pfvModule.
int pfvModule::getScope();
int pfvModule::getScopeIndex();
pfvObject* pfvModule::getScopeTarget();
int pfvModule::autoScope( int*scopeIndex );
void pfvModule::bindCallback(int which);
void pfvModule::unbindCallback(int which);
int pfvModule::getCBMask();
virtual void pfvModule::preConfig();
virtual void pfvModule::postConfig();
virtual void pfvModule::enterView(pfvView*v);
virtual void pfvModule::exitView(pfvView*v);
virtual void pfvModule::enterWorld();
virtual void pfvModule::exitWorld();
virtual void pfvModule::sync();
virtual void pfvModule::frame();
virtual void pfvModule::preCull(pfvDispChan*chan);
virtual void pfvModule::postCull(pfvDispChan*chan);
virtual void pfvModule::preDraw(pfvDispChan*chan);
virtual void pfvModule::postDraw(pfvDispChan*chan);
virtual void pfvModule::overlay(pfvDispChan*chan);
int pfvModule::bindKeys(char*keys);
int pfvModule::unbindKeys(char*keys)
char* pfvModule::getEventMask()
void pfvModule::setEventMask(char* str);
virtual int pfvModule::handleEvent(int evType, char key);
uint64_t pfvModule::getViewMask();
Since the class pfvModule is itself derived from the parent class
pfvobject, objects of class pfvmWorldSwitcher can also be used with these
functions designed for objects of class pfvobject.
virtual int pfvObject::parseXml(pfvXmlNode*xml);
virtual int pfvObject::setXmlField(pfvXmlNode*xml);
char* pfvObject::getName();
Page 1
pfvmWorldSwitcher(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
void pfvObject::setName(char*_name);
Since the class pfvobject is itself derived from the parent class
pfObject, objects of class pfvmWorldSwitcher can also be used with these
functions designed for objects of class pfObject.
void* pfObject::operator new(size_t);
void* pfObject::operator new(size_t, pfFluxMemory *fmem);
void pfObject::setUserData(void *data);
void pfObject::setUserData(int slot, void *data);
void* pfObject::getUserData(pfObject *obj);
void* pfObject::getUserData(pfObject *obj, int slot);
int pfObject::getNumUserData();
Since the class pfObject is itself derived from the parent class
pfMemory, objects of class pfvmWorldSwitcher can also be used with these
functions designed for objects of class pfMemory.
void* pfMemory::getData(const void *ptr);
pfType * pfMemory::getType();
int pfMemory::isOfType(pfType *type);
int pfMemory::isExactType(pfType *type);
const char * pfMemory::getTypeName();
int pfMemory::copy(pfMemory *src);
int pfMemory::compare(const pfMemory *mem);
void pfMemory::print(uint which, uint verbose, char *prefix,
FILE *file);
int pfMemory::getArena(void *ptr);
void* pfMemory::getArena();
int pfMemory::ref();
int pfMemory::unref();
int pfMemory::unrefDelete();
int pfMemory::unrefGetRef();
int pfMemory::getRef();
int pfMemory::checkDelete();
int pfMemory::isFluxed();
void * pfMemory::getArena();
int pfMemory::getSize();
DESCRIPTIONpfvmWorldSwitcher is a pfvViewer Module that may be used in applications
with multiple scenes (pfvWorlds), in order to be able to easily switch
views from one world to another in response to key presses.
It is configured by defining a list of 'Switches'. Each switch is
activated by a key press (a different key may be defined for each
switch), and will direct view to a specified destination world.
Additionally, each world-switch may be made smoother by fading out from
current world, and then fading into destination world over a number of
frames. Each switch can thus be assigned a fade duration value (in
Page 2
pfvmWorldSwitcher(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
seconds), and a RGBA fade color.
========
XML tags
========
<module>
<class>pfvmWorldSwitcher</class>
<data>
<switch>
...
parameters
...
</switch>
</data>
</module>
where parameters is one or more of the following:
<key>string</key> specifies the key that will trigger this switch. See
man page for pfvInputMngr::getKeyFromName and pfvInput.h for a complete
list of the supported keys and their associated strings.
<world>string</world> specifies the destination world for this switch.
string must match the name of one of the pfvWorlds in pfvViewer's world-
list.
<fadetime>float</fadetime> specifies the duration of the fade-in and
fade-out stages of the switch. By default the world-switch happens in a
single frame (ie, fadetime is 0).
<fadecol>float,float,float,float</fadecol> specifies the color which will
be used to fade out of current world, and into destination world. By
default fadeColor is black, with alpha = 1. This color is ignored when
fadetime is non positive.
=======
Scoping
=======
A pfvmWorldSwitcher module can be scoped globally, to a single view, or
to a single world.
If scoped globally pfvmWorldSwitcher will be active in all pfvViews, so
Page 3
pfvmWorldSwitcher(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
if a key press happens over any view, that view will be redirected to the
corresponding destination world.
If scoped to a view, pfvmWorldSwitcher module will only respond to key
presses over the specified view (referred to as module's target-view),
and will only ever redirect that view to destination worlds.
If scoped to a world, the pfvmWorldSwitcher module will be active on all
views while they are viewing module's target-world. If a key press
happens over any of such views, view will be redirected to destination
world. Note that the same pfvmWorldSwitcher module will not be active on
that same view after the switch has occurred, however multiple
pfvmWorldSwitcher modules may be used to set up more complex behaviors.
NOTES
The source code for the pfvmWorldSwitcher Module is provided and can be
found in
/usr/share/Performer/src/pguide/libpfv/viewer/modules/pfvmWorldSwitcher
For examples of pfvViewer XML configuration files, look at the sample
.pfv files in /usr/share/Performer/config.
SEE ALSO
pfvModule, pfvViewer, pfvXml
Page 4