pfTessParaSurfaceAction(3pf) OpenGL Performer 3.2.2 libpf C Reference Pages
NAME
pfNewTessParaSurfaceAction, pfGetTessParaSurfaceActionClassType,
pfTessParaSurfaceActionChordalDevTol,
pfGetTessParaSurfaceActionChordalDevTol,
pfTessParaSurfaceActionScaleTolByCurvature,
pfGetTessParaSurfaceActionScaleTolByCurvature,
pfTessParaSurfaceActionSampling, pfGetTessParaSurfaceActionSampling,
pfTessParaSurfaceActionNonUniformSampling,
pfGetTessParaSurfaceActionNonUniformSampling,
pfTessParaSurfaceActionGenUVCoordinates,
pfGetTessParaSurfaceActionGenUVCoordinates,
pfTessParaSurfaceActionTessellate, pfTessParaSurfaceActionTessellator -
General trimmed parametric surface tessellation.
FUNCTION SPECIFICATION
#include <Performer/pf.h>
pfTessParaSurfaceAction * pfNewTessParaSurfaceAction(void *arena);
pfType * pfGetTessParaSurfaceActionClassType(void);
void -
pfTessParaSurfaceActionChordalDevTol(pfTessParaSurfaceAction* a,
const pfReal chordalDevTol);
pfReal -
pfGetTessParaSurfaceActionChordalDevTol(pfTessParaSurfaceAction* a);
void -
pfTessParaSurfaceActionScaleTolByCurvature(pfTessParaSurfaceAction* a,
const pfReal scaleTolByCurvature);
pfBool -
pfGetTessParaSurfaceActionScaleTolByCurvature(pfTessParaSurfaceAction* a);
void -
pfTessParaSurfaceActionSampling(pfTessParaSurfaceAction* a,
const int samples);
int -
pfGetTessParaSurfaceActionSampling(pfTessParaSurfaceAction* a);
void -
pfTessParaSurfaceActionNonUniformSampling(pfTessParaSurfaceAction* a,
const pfBool uniformSamplingFlag);
pfBool -
pfGetTessParaSurfaceActionNonUniformSampling(pfTessParaSurfaceAction* a);
void -
pfTessParaSurfaceActionGenUVCoordinates(pfTessParaSurfaceAction* a,
const pfBool genUVCoordinates);
Page 1
pfTessParaSurfaceAction(3pf) OpenGL Performer 3.2.2 libpf C Reference Pages
pfBool -
pfGetTessParaSurfaceActionGenUVCoordinates(pfTessParaSurfaceAction* a);
void -
pfTessParaSurfaceActionTessellate(pfTessParaSurfaceAction *action,
pfObject *object);
void -
pfTessParaSurfaceActionTessellator(pfTessParaSurfaceAction* a,
pfParaSurface *sur);
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfTessParaSurfaceAction is derived from the
parent class pfTessellateAction, so each of these member functions of
class pfTessellateAction are also directly usable with objects of class
pfTessParaSurfaceAction. Casting an object of class
pfTessParaSurfaceAction to an object of class pfTessellateAction is taken
care of automatically. This is also true for casts to objects of
ancestor classes of class pfTessellateAction.
int pfGetTessellateActionTriangleCount(pfTessellateAction* ta);
int pfGetTessellateActionTriStripCount(pfTessellateAction* ta);
int pfGetTessellateActionTriFanCount(pfTessellateAction* ta);
void pfTessellateActionReverseTrimLoop(pfTessellateAction* ta,
pfBool enable );
pfBool pfGetTessellateActionReverseTrimLoop(pfTessellateAction* ta);
void pfTessellateActionBuildTopoWhileTess(pfTessellateAction* ta,
pfBool buildTopoWhileTess);
pfBool -
pfGetTessellateActionBuildTopoWhileTess(pfTessellateAction* ta);
void pfTessellateActionTopo(pfTessellateAction* ta, pfTopo *topo);
pfTopo* pfGetTessellateActionTopo(pfTessellateAction* ta);
Since the class pfTessellateAction is itself derived from the parent
class pfObject, objects of class pfTessParaSurfaceAction can also be used
with these functions designed for objects of class pfObject.
void pfUserDataSlot(pfObject *obj, int slot, void *data);
void pfUserData(pfObject *obj, void *data);
void* pfGetUserDataSlot(pfObject *obj, int slot);
void* pfGetUserData(pfObject *obj);
int pfGetNumUserData(pfObject *obj);
int pfGetNamedUserDataSlot(const char *name);
const char* pfGetUserDataSlotName(int slot);
int pfGetNumNamedUserDataSlots(void);
int pfDeleteGLHandle(pfObject *obj);
Since the class pfObject is itself derived from the parent class
pfMemory, objects of class pfTessParaSurfaceAction can also be used with
these functions designed for objects of class pfMemory.
Page 2
pfTessParaSurfaceAction(3pf) OpenGL Performer 3.2.2 libpf C Reference Pages
pfType * pfGetType(const void *ptr);
int pfIsOfType(const void *ptr, pfType *type);
int pfIsExactType(const void *ptr, pfType *type);
const char * pfGetTypeName(const void *ptr);
int pfRef(void *ptr);
int pfUnref(void *ptr);
int pfUnrefDelete(void *ptr);
int pfUnrefGetRef(void *ptr);
int pfGetRef(const void *ptr);
int pfCopy(void *dst, void *src);
int pfDelete(void *ptr);
int pfIsFluxed(void *ptr);
int pfCompare(const void *ptr1, const void *ptr2);
void pfPrint(const void *ptr, uint which, uint verbose,
FILE *file);
void * pfGetArena(void *ptr);
DESCRIPTION
pfTessParaSurfaceAction contains a general trimmed parametric surface (-
pfParaSurface) tessellator (called generic tessellator). Members
chordalDevTol, samples, and scaleTolByCurvature affect how the surface is
tessellated. chordalDevTol controls the tessellation resolution. samples
is the number of points to sample when tessellating a trim curve. These
sampled points are decimated according to chordalDevTol. Member
scaleTolByCurvature, if set to true, indicates that chordalDevTol is
scaled by curvature.
pfNewTessParaSurfaceAction creates and returns a handle to a
pfTessParaSurfaceAction. arena specifies a malloc arena out of which the
pfTessParaSurfaceAction is allocated or NULL for allocation off the
process heap. pfTessParaSurfaceActions can be deleted with pfDelete.
The default value for chordalDevTol is 0.0001, scaleTolByCurvature is set
to false and samples is set to 100.
pfGetTessParaSurfaceActionClassType returns the pfType* for the class
pfTessParaSurfaceAction. the pfType* returned by
pfGetTessParaSurfaceActionClassType is the same as the pfType* returned
by invoking pfGetType on any instance of class pfTessParaSurfaceAction.
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 pfIsOfType 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.
pfTessParaSurfaceActionChordalDevTol sets chordalDevTol to devTol.
pfGetTessParaSurfaceActionChordalDevTol returns chordalDevTol.
pfTessParaSurfaceActionScaleTolByCurvature sets scaleTolByCurvature to
scaleTolByCurvature.
pfGetTessParaSurfaceActionScaleTolByCurvature returns
Page 3
pfTessParaSurfaceAction(3pf) OpenGL Performer 3.2.2 libpf C Reference Pages
scaleTolByCurvature.
pfTessParaSurfaceActionSampling sets samples to samples.
pfGetTessParaSurfaceActionSampling returns samples.
pfTessParaSurfaceActionNonUniformSampling sets nonUniformTessFlag.
pfGetTessParaSurfaceActionNonUniformSampling returns nonUniformTessFlag.
pfTessParaSurfaceActionGenUVCoordinates sets genUVCoordinates to
genUVCoordinates.
pfGetTessParaSurfaceActionGenUVCoordinates returns genUVCoordinates.
pfTessParaSurfaceActionTessellate Casts object a pointer to
pfParaSurface, and action to a pointer to pfTessParaSurfaceAction. Then
the method tessellator of action is applied to the parametric surface
object. Function tessellate gets called when the user calls 'apply' which
is a member function of the super class pfTessellateAction.
If the flag for automatic tolology construction is on and the topology
construction is incremental (see pfTopo), this function calls the
topology construction function to build the topology for all the surfaces
that have been loaded so far before calling the tessellator.
pfTessParaSurfaceActionTessellator Takes a parametric surface,
tessellates it, stores the results (triangle primitives) into one or more
pfGeoSets, and attaches the geoset to its geometry list. It inherites a
geometry list from its superclass pfGeode.
SEE ALSO
pfRep, pfGeode, pfTopo, pfParaSurface, pfdTessellateGeometry,
pfdClearTessellation
Page 4