Re: How can I get the vertex position of the object
Daniel Aliaga (aliaga++at++cs.unc.edu)
Mon, 11 Mar 1996 13:56:16 -0500 (EST)
>
> Here's a bit of my shark which does that in Pefermer 1.2....
>
> ANGus
>
> [...]
> [...]
>
> long
> getNumVerts(pfGeoSet *gset)
> {
> long i, nprims, nverts;
> long *lengths;
> long sumLengths = 0;
>
> nprims = pfGetGSetNumPrims( gset );
> lengths = pfGetGSetPrimLengths( gset );
>
> if(lengths)
> {
> for(i = 0; i<nprims; i++)
> {
> sumLengths += *(lengths + i);
> }
> }
> switch (pfGetGSetPrimType( gset ) )
> {
> case PFGS_POINTS:
> printf("PFGS_POINTS");
> nverts = nprims;
> break;
> case PFGS_LINES:
> printf("PFGS_LINES");
> nverts = nprims * 2;
> break;
> case PFGS_LINESTRIPS:
> printf("PFGS_LINESTRIPS");
> nverts = sumLengths;
> break;
> case PFGS_FLAT_LINESTRIPS:
> printf("PFGS_FLAT_LINESTRIPS");
> nverts = sumLengths;
> break;
> case PFGS_TRIS:
> printf("PFGS_TRIS");
> nverts = nprims * 3;
> break;
> case PFGS_QUADS:
> printf("PFGS_QUADS");
> nverts = nprims * 4;
> break;
> case PFGS_TRISTRIPS:
> printf("PFGS_TRISTRIPS");
> nverts = sumLengths;
> break;
> case PFGS_FLAT_TRISTRIPS:
> printf("PFGS_FLAT_TRISTRIPS");
> nverts = sumLengths;
> break;
> default:
> printf("Primitive type Unknown: %d ", pfGetGSetPrimType( gset ));
> nverts = 0;
> }
>
> return nverts;
> }
>
This same information is obtainable through the pfQueryGSet() call, though
the function does seem to act strangely, but it seems to return the proper
data, i.e.
{
float tmp[8];
ulong which = PFQGSET_NUM_VERTS;
...
...
pfQueryGSet(gset, &which, tmp);
numverts = (int)tmp[0];
...
...
}
-Daniel.
--
<XXXXXXXXXXXXXXX) XXXXXXXXXXXXXXXXXX "Real men write self
XXX XXX XXXXX modifying code."
XXXXXXXXXXXXXXXXXXX/
XXXXXXXXXXXXXXXXXX\ Daniel G. Aliaga
This archive was generated by hypermail 2.0b2
on Mon Aug 10 1998 - 17:52:32 PDT