Re: How can I get the vertex position of the object

New Message Reply Date view Thread view Subject view Author view

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

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:32 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.