pfvmEarthSky(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
NAMEpfvmEarthSky - EarthSky module for pfvViewer
FUNCTION SPECIFICATION
#include <Performer/pfvm/pfvmEarthSky.h>
pfvmEarthSky::pfvmEarthSky();
pfEarthSky* pfvmEarthSky::getESky();
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfvmEarthSky is derived from the parent class
pfvModule, so each of these member functions of class pfvModule are also
directly usable with objects of class pfvmEarthSky. 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 pfvmEarthSky 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);
Page 1
pfvmEarthSky(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
char* pfvObject::getName();
void pfvObject::setName(char*_name);
Since the class pfvobject is itself derived from the parent class
pfObject, objects of class pfvmEarthSky 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 pfvmEarthSky 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();
DESCRIPTIONpfvmEarthSky is a module wrapper around the pfEarthSky class. It allows
colorful earth and sky backgrounds to be easily added to channels in
pfvViewer applications.
getESky() returns a pointer to the pfEarthSky object created by this
module. Note that if this method is called before module's postConfig
callback has been called (by pfvViewer), it will return NULL.
Page 2
pfvmEarthSky(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
========
XML tags
========
<module>
<class>pfvmEarthSky</class>
<data>
...
parameters
...
</data>
</module>
where parameters is one or more of the following:
<mode>value</mode> where value is one of:
fast simply clears the color and depth buffers.
tag init the framebuffer to a known state very rapidly. See man
pfClear for the details and restrictions of the mode PFCL_MSDEPTH.
sky causes a sky and horizon backdrop to be drawn. If the viewport
goes below the ground plane, the area below the horizon will not be
cleared.
skyGrnd add a ground plane to the sky and horizon model drawn by the
'sky' mode. This is the default mode.
skyClear draw the sky and horizon, and clear the screen below the
edge of the horizon.
<SkyTopColor>float,float,float,float</SkyTopColor> takes four floats
representing r,g,b,a respectively. This is the color of the sky directly
above the viewpoint. The default is: 0.0, 0.0, 0.44, 1.0.
<SkyBotColor>float,float,float,float</SkyBotColor> takes four floats
representing r,g,b,a respectively. This is the color of the sky where it
joins the horizon. The default is: 0.0, 0.4, 0.7, 1.0.
<HorizColor>float,float,float,float</HorizColor> takes four floats
representing r,g,b,a respectively. This is the color of the bottom edge
of the horizon. The default is: 0.8, 0.8, 1.0, 1.0.
<GrndFarColor>float,float,float,float</GrndFarColor> takes four floats
representing r,g,b,a respectively. This is the color of the ground plane
Page 3
pfvmEarthSky(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
where it meets the horizon. The default is: 0.4, 0.2, 0.0, 1.0.
<GrndNearColor>float,float,float,float</GrndNearColor> takes four floats
representing r,g,b,a respectively. This is the color of the ground plane
directly below the viewer. The default is: 0.5, 0.3, 0.0, 1.0.
<CloudBotColor>float,float,float,float</CloudBotColor> takes four floats
representing r,g,b,a respectively. This is the color of the bottom of
the opaque cloud layer. The default is: 0.8, 0.8, 0.8, 1.0.
<CloudTopColor>float,float,float,float</CloudTopColor> takes four floats
representing r,g,b,a respectively. This is the color of the top of the
opaque cloud layer. The default is: 0.8, 0.8, 0.8, 1.0.
<ClearColor>float,float,float,float</ClearColor> takes four floats
representing r,g,b,a respectively. This is the color for simple screen
clearing. The default is: 0.0, 0.0, 0.0, 1.0.
<GrndHt>float</GrndHt> takes a float representing what the ground height
should be. The default is: 0.0
<HorizAngle>float</HorizAngle> takes a float representing what the
horizon angle should be. The default is: 10.0
<CloudTop>float</CloudTop> takes a float representing what the cloud top
should be. The default is: 20000.0
<CloudBot>float</CloudBot> takes a float representing what the cloud
bottom should be. The default is: 20000.0
<TZoneBot>float</TZoneBot> takes a float representing what the transition
zone bottom should be. The default is: 15000.0
<TZoneTop>float</TZoneTop> takes a float representing what the transition
zone top should be. The default is: 25000.0
<GrndFogTop>float</GrndFogTop> takes a float representing what the ground
fog top should be. The default is: 1000.0
<DistFactor>float</DistFactor> takes a float representing what the
distance factor should be. The default is: 1.0
=======
Scoping
=======
A pfvmEarthSky module can be scoped globally, to a single view, or to a
single world.
If scoped to a pfvView, pfvmEarthSky module will set up pfEarthSky for
Page 4
pfvmEarthSky(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
all channels belonging to that view only, regardless of which pfvWorld
the view is viewing.
If scoped to a pfvWorld, pfvmEarthSky will set up pfEarthSky for all
views while they view target world. note that when a view stops viewing
pfvmEarthSky's target world, pfvmEarthSky will remove the pfEarthSky from
channels belonging to such view.
If scoped globally, pfvmEarthSky will set up pfEarthSky for all channels
in view0 (the first view in pfvViewer's view-list) .
NOTES
The source code for the pfvmEarthSky Module is provided and can be found
in /usr/share/Performer/src/pguide/libpfv/viewer/modules/pfvmEarthSky
For examples of pfvViewer XML configuration files, look at the sample
.pfv files in /usr/share/Performer/config.
SEE ALSO
pfEarthSky, pfvModule, pfvViewer, pfvXml
Page 5