pfuClipCenterNode(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
NAME
pfuClipCenterNode, pfuProcessClipCenters,
pfuProcessClipCentersWithChannel, pfuTexGenClipCenterNode,
pfuNewTexGenClipCenterNode, pfuTexGenClipCenterNodeTexGen,
pfuGetTexGenClipCenterNodeTexGen - Special scene graph node for managing
and updating pfMPClipTextures
FUNCTION SPECIFICATION
#include <Performer/pfutil/pfuClipCenterNode.h>
-
pfuClipCenterNode::pfuClipCenterNode(void);
pfType * -
pfuClipCenterNode::getClassType(void);
void -
pfuClipCenterNode::setCallback(pfuClipCenterPostAppCallbackType *callback)
pfuClipCenterPostAppCallbackType * pfuClipCenterNode::getCallback(void)
void -
pfuClipCenterNode::setRefNode(pfNode *node);
pfNode * pfuClipCenterNode::getRefNode(void);
void -
pfuClipCenterNode::setClipTexture(pfClipTexture *cliptex);
pfClipTexture * -
pfuClipCenterNode::getClipTexture(void);
void -
pfuClipCenterNode::setMPClipTexture(pfMPClipTexture *mpcliptex);
pfMPClipTexture * -
pfuClipCenterNode::getMPClipTexture(void);
void -
pfuClipCenterNode::setChannel(pfChannel *chan);
pfChannel * pfuClipCenterNode::getChannel(void);
void pfuProcessClipCenters(pfNode *node,
pfList *mpcliptex);
void -
pfuProcessClipCentersWithChannel(pfNode *node,
pfList *mpcliptex,
pfChannel *chan);
Page 1
pfuClipCenterNode(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
-
pfuTexGenClipCenterNode::pfuTexGenClipCenterNode(void);
void -
pfuTexGenClipCenterNode::setTexGen(pfTexGen tgen);
pfTexGen * -
pfuTexGenClipCenterNode::getTexGen(void);
pfuTexGenClipCenterNode * pfuNewTexGenClipCenterNode(void);
void -
pfuTexGenClipCenterNodeTexGen(pfuTexGenClipCenterNode *node,
pfTexGen *tgen);
pfTexGen * -
pfuGetTexGenClipCenterNodeTexGen(pfuTexGenClipCenterNode *node);
pfuTexGenClipCenterNode::pfuTexGenClipCenterNode
constructs a subclass of the pfuClipCenterNode called the
pfuTexGenClipCenterNode. This node uses a different centering algorithm.
Rather than derive the center from the closest point on the cliptextured
geometry to the channels viewpoint, as does the pfuClipCenterNode, it converts
the position of the viewpoint from object space to texture space. It uses
the current value of the object linear texture generation parameters. It
does not take the texture transform matrix into account.
This centering algorithm is useful if the clipmapped geometry is mapped
using object space texture coordinate generation.
pfuTexGenClipCenterNode::setTexGen
sets a pointer to the pfTexGen object used to apply texture coordinates to
the cliptextured geometry. This object is used by the post-APP callback
to compute the viewpoint position in texture space.
pfuTexGenClipCenterNode::getTexGen
returns a pointer to the current pfTexGen object used by the post-APP
Page 2
pfuClipCenterNode(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
centering callback. If no pfTexGen object has been assigned, the default
value is NULL.
pfuProcessClipCenters
finds all the pfuClipCenterNodes in sub-
graph rooted by the node argument,
collects all the pfMPClipTexture objects connected to them (creating them
if only the pfClipTexture exists), and appends them to the pfList provided as
the second argument. The pfList argument should be a pointer to a pfList
object created by the application.
Here is a code fragment that processes all the pfuClipCenterNodes in the
scenegraph, then adds them to all the pipes, using pipe 0 as the masterpipe:
ClipTexture functionality is not supported under Linux.
BUGS
Making a clipcenter node with a pfGeode (possibly other types as well) as
a child when a pfdBuilder is being used to create a scene graph (e.g. in
the .im loader) can result in the callback being lost. One workaround is
to create a dummy pfGroup node above the pfGeode and use that instead.
See the reference page for pfuGetClosestPoint() for bugs and limitations
of the closest-point search implementation.
SEE ALSO
pfClipTexture, pfMPClipTexture, pfImageCache, pfuProcessClipCenters,
pfuProcessClipCentersWithChannel
Page 3