pfGetDoubleFCSClassType man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



pfDoubleFCS(3pf)		OpenGL Performer 3.2.2 libpf C Reference Pages

NAME
     pfNewDoubleFCS, pfGetDoubleFCSClassType, pfDoubleFCSFlux,
     pfGetDoubleFCSFlux, pfGetDoubleFCSMat, pfGetDoubleFCSMatPtr,
     pfDoubleFCSMatType, pfGetDoubleFCSMatType - Create, modify, and query
     double-precision flux coordinate system nodes.

FUNCTION SPECIFICATION
     #include <Performer/pf.h>

     pfDoubleFCS *	 pfNewDoubleFCS(pfFlux *flux);

     pfType *		 pfGetDoubleFCSClassType(void);

     void		 pfDoubleFCSFlux(pfDoubleFCS* fcs, pfFlux *flux);

     pfFlux*		 pfGetDoubleFCSFlux(pfDoubleFCS* fcs);

     void		 pfGetDoubleFCSMat(pfDoubleFCS *fcs, pfMatrix4d m);

     const pfMatrix4d*	 pfGetDoubleFCSMatPtr(pfDoubleFCS *fcs);

     void		 pfDoubleFCSMatType(pfDoubleFCS *fcs, uint val);

     uint		 pfGetDoubleFCSMatType(pfDoubleFCS *fcs);

PARENT CLASS FUNCTIONS
     The OpenGL Performer class pfDoubleFCS is derived from the parent class
     pfDoubleSCS, so each of these member functions of class pfDoubleSCS are
     also directly usable with objects of class pfDoubleFCS.  Casting an
     object of class pfDoubleFCS to an object of class pfDoubleSCS is taken
     care of automatically.  This is also true for casts to objects of
     ancestor classes of class pfDoubleSCS.

     void		 pfGetDoubleSCSMat(pfDoubleSCS *scs, pfMatrix4d mat);
     const pfMatrix4d*	 pfGetDoubleSCSMatPtr(pfDoubleSCS *scs);

     Since the class pfDoubleSCS is itself derived from the parent class
     pfGroup, objects of class pfDoubleFCS can also be used with these
     functions designed for objects of class pfGroup.

     int	pfAddChild(pfGroup *group, pfNode *child);
     int	pfInsertChild(pfGroup *group, int index, pfNode *child);
     int	pfReplaceChild(pfGroup *group, pfNode *old, pfNode *new);
     int	pfRemoveChild(pfGroup *group, pfNode* child);
     int	pfSearchChild(pfGroup *group, pfNode* child);
     pfNode *	pfGetChild(const pfGroup *group, int index);
     int	pfGetNumChildren(const pfGroup *group);
     int	pfBufferAddChild(pfGroup *group, pfNode *child);
     int	pfBufferRemoveChild(pfGroup *group, pfNode *child);

									Page 1

pfDoubleFCS(3pf)		OpenGL Performer 3.2.2 libpf C Reference Pages

     Since the class pfGroup is itself derived from the parent class pfNode,
     objects of class pfDoubleFCS can also be used with these functions
     designed for objects of class pfNode.

     pfGroup *	    pfGetParent(const pfNode *node, int i);
     int	    pfGetNumParents(const pfNode *node);
     void	    pfNodeBSphere(pfNode *node, pfSphere *bsph, int mode);
     int	    pfGetNodeBSphere(pfNode *node, pfSphere *bsph);
     pfNode*	    pfClone(pfNode *node, int mode);
     pfNode*	    pfBufferClone(pfNode *node, int mode, pfBuffer *buf);
     int	    pfFlatten(pfNode *node, int mode);
     int	    pfNodeName(pfNode *node, const char *name);
     const char *   pfGetNodeName(const pfNode *node);
     pfNode*	    pfFindNode(pfNode *node, const char *pathName,
		      pfType *type);
     pfNode*	    pfLookupNode(const char *name, pfType* type);
     int	    pfNodeIsectSegs(pfNode *node, pfSegSet *segSet,
		      pfHit **hits[]);
     void	    pfNodeTravMask(pfNode *node, int which, uint mask,
		      int setMode, int bitOp);
     uint	    pfGetNodeTravMask(const pfNode *node, int which);
     void	    pfNodeTravFuncs(pfNode* node, int which,
		      pfNodeTravFuncType pre, pfNodeTravFuncType post);
     void	    pfGetNodeTravFuncs(const pfNode* node, int which,
		      pfNodeTravFuncType *pre, pfNodeTravFuncType *post);
     void	    pfNodeTravData(pfNode *node, int which, void *data);
     void *	    pfGetNodeTravData(const pfNode *node, int which);
     void	    pfNodeTravMode(pfNode* node, int which, int mode,
		      int val);
     int	    pfGetNodeTravMode(const pfNode* node, int which,
		      int mode);

     Since the class pfNode is itself derived from the parent class pfObject,
     objects of class pfDoubleFCS 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 pfDoubleFCS can also be used with these
     functions designed for objects of class pfMemory.

									Page 2

pfDoubleFCS(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);

PARAMETERS
     fcs  identifies a pfDoubleFCS

DESCRIPTION
     A pfDoubleFCS (Double-precision Flux Coordinate System) is a pfDoubleSCS
     whose matrix is contained in a pfFlux.  A pfDoubleFCS is similar to a
     pfDoubleDCS, in that its matrix can change, but since its matrix is
     contained in a pfFlux, it can be animated using pfEngines.

     pfNewDoubleFCS creates and returns a handle to a pfDoubleFCS.  The matrix
     of a the new pfDoubleFCS will be contained in flux. Like other pfNodes,
     pfDoubleFCSes are always allocated from shared memory and can be deleted
     using pfDelete.

     pfGetDoubleFCSClassType returns the pfType* for the class pfDoubleFCS.
     The pfType* returned by pfGetDoubleFCSClassType is the same as the
     pfType* returned by invoking pfGetType on any instance of class
     pfDoubleFCS.  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.

     pfDoubleFCSFlux attaches a pfFlux to a pDoubleFCS.

     pfGetDoubleFCSFlux returns the pfFlux currently attached to a
     pfDoubleFCS.

     pfDoubleFCSMatType allows the specification of information about the type
     of transformation the matrix represents.  This information allows
     Performer to speed up some operations.  The matrix type is specified as
     the OR of

									Page 3

pfDoubleFCS(3pf)		OpenGL Performer 3.2.2 libpf C Reference Pages

	  PFMAT_TRANS:
	       matrix may include a translational component in the 4th row.

	  PFMAT_ROT
	       matrix may include a rotational component in the left upper 3X3
	       submatrix.

	  PFMAT_SCALE
	       matrix may include a uniform scale in the left upper 3X3
	       submatrix.

	  PFMAT_NONORTHO
	       matrix may include a non-uniform scale in the left upper 3X3
	       submatrix.

	  PFMAT_PROJ
	       matrix may include projections.

	  PFMAT_HOM_SCALE
	       matrix may have mat[4][4] != 1.

	  PFMAT_MIRROR
	       matrix may include mirroring transformation that switches
	       between right handed and left handed coordinate systems.

	  pfGetDoubleFCSMatType returns the matrix type as
	  set by pfDoubleFCSMatType.  If no matrix type is set the default is
	  ~0, corresponding to a general matrix.

	  The transformation of a pfDoubleFCS affects all its children.	 As
	  the hierarchy is traversed from top to bottom, each new matrix is
	  pre-multiplied to create the new transformation.  For example, if
	  DoubleFCSb is below DoubleFCSa in the scene graph, any geometry G
	  below DoubleFCSa is transformed as G*DoubleFCSb*DoubleFCSa.

	  pfFlatten cannot flatten pfDoubleFCSes since they may change at
	  run-time.  In this case pfFlatten will compute a pfDoubleSCS
	  representing the accumulated static transformation that the
	  pfDoubleFCS inherits and insert it above the pfDoubleFCS.  Static
	  transformations below a pfDoubleFCS are flattened as usual.  See
	  pfFlatten for more details.

	  The presence of transformations in the scene graph impacts the
	  performance of intersection, culling and drawing.  pfGeoSet culling
	  (see PFCULL_GSET in pfChanTravMode) is disabled in portions of the
	  scene graph below pfDoubleFCSes.

	  Both pre and post CULL and DRAW callbacks attached to a pfDoubleFCS
	  (pfNodeTravFuncs) will be affected by the transformation represented
	  by the pfDoubleFCS, i.e. - the pfDoubleFCS matrix will already have
	  been applied to the matrix stack before the pre callback is called
	  and will be popped only after the post callback is called.

									Page 4

pfDoubleFCS(3pf)		OpenGL Performer 3.2.2 libpf C Reference Pages

	  pfGetDoubleFCSMat copies the transformation matrix value from fcs
	  into the matrix m.  For faster matrix access, pfGetDoubleFCSMatPtr
	  can be used to get a const pointer to fcs's matrix.

SEE ALSO
     pfFlux, pfEngine, pfGroup, pfChanTravMode, pfLookupNode, pfFlatten,
     pfMatrix4d, pfNode, pfDoubleSCS, pfDoubleDCS, pfScene, pfTraverser,
     pfDelete

									Page 5

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net