pfPolytope(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
NAMEpfPolytope - Create, configure, transform, and intersect polytopes
FUNCTION SPECIFICATION
#include <Performer/pr/pfGeoMath.h>
pfPolytope::pfPolytope();
pfType* pfPolytope::getClassType(void);
int pfPolytope::getNumFacets(void);
int pfPolytope::setFacet(int i, const pfPlane *facet);
int pfPolytope::getFacet(int i, pfPlane *facet);
int pfPolytope::removeFacet(int i);
void pfPolytope::orthoXform(const pfPolytope *src,
const pfMatrix &mat);
int pfPolytope::contains(const pfVec3 &pt);
int pfPolytope::contains(const pfSphere *sphere);
int pfPolytope::contains(const pfBox *box);
int pfPolytope::contains(const pfCylinder *cyl);
int pfPolytope::contains(const pfPolytope *ptope1);
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfPolytope is derived from the parent class
pfObject, so each of these member functions of class pfObject are also
directly usable with objects of class pfPolytope. This is also true for
ancestor classes of class pfObject.
void* pfObject::operator new(size_t);
void* pfObject::operator new(size_t, void *arena);
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 pfPolytope can also be used with these
functions designed for objects of class pfMemory.
Page 1
pfPolytope(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
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();
DESCRIPTION
A pfPolytope is a set of half spaces whose intersection defines a convex,
possibly semi-infinite, volume which may be used for culling and other
intersection testing where a tighter bound than a pfBox, pfSphere, or
pfCylinder is of benefit.
new(arena) allocates a pfPolytope from the specified memory arena, or
from the process heap if arena is NULL. new allocates a pfPolytope from
the default memory arena (see pfGetSharedArena). Like other pfObjects,
pfPolytopes cannot be created statically, automatically on the stack or
in arrays. pfPolytopes can also be created automatically on the stack or
statically. pfPolytopes allocated with new can be deleted with delete or
pfDelete.
pfPolytope::getClassType returns the pfType* for the class pfPolytope.
The pfType* returned by pfPolytope::getClassType is the same as the
pfType* returned by invoking the virtual function getType on any instance
of class pfPolytope. Because OpenGL Performer allows subclassing of
built-in types, when decisions are made based on the type of an object,
it is usually better to use the member function isOfType to test if an
object is of a type derived from a Performer type rather than to test for
strict equality of the pfType*'s.
pfPolytope::setFacet sets the ith facet of the pfPolytope to facet.
facet defines a half space such that the normal of the pfPlane faces
"outside". pfPolytope::getFacet copies the ith facet of the pfPolytope
into facet.
pfPolytope::removeFacet removes the ith facet of the pfPolytope from the
list. Remaining facets are shifted left over the removed facet.
Page 2
pfPolytope(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
pfPolytope::getNumFacets returns the number of facets in the pfPolytope.
pfPolytope::orthoXform transforms src by mat and stores the result in the
pfPolytope. mat should be an orthonormal matrix or results are
undefined.
The various member functions pfPolytope::contains compute the
intersection of a pfPolytope with a variety of geometric primitives.
pfPolytope::contains returns one of the following:
PFIS_FALSE:
The intersection of the primitive and the pfPolytope is empty.
PFIS_MAYBE:
The intersection of the primitive and the pfPolytope might be
non-empty.
PFIS_MAYBE | PFIS_TRUE:
The intersection of the primitive and the pfPolytope is
definitely non-empty.
PFIS_MAYBE | PFIS_TRUE | PFIS_ALL_IN:
The primitive is non-empty and lies entirely inside the
pfPolytope.
SEE ALSO
pfBox, pfCylinder, pfDelete, pfFrustum, pfMatrix, pfObject, pfSphere
Page 3