How can i get my geometry->gset->flux

New Message Reply Date view Thread view Subject view Author view

From: Mattias Roupe (vx7roupe++at++hotmail.com)
Date: 10/31/2000 10:46:04


Hi pfworld,

I have problem to get my loaded geometry (gset) in to flux. I have used
pfdBuilder to generate my geometry.

I have tryed to modefy morph_engine.c but I think that my problem is that i
can't get my coords (gset) in to flux.

I have tryed ...

pfGetGSetAttrLists(gset,PFGS_COORD3, (void**)&coords, &icoords);
coord_flux = pfNewFlux(pfGetSize(coords), PFFLYX_DEFAULT_NUM_BUFFERS,ARENA);

... but no results. ;-(

Is it my "geoloader" that are wrong ?

Where does pfdBuilder put the geoSet and my coords ?

Hers are some of the "geoloader"-code.

...
    if ((vizFile = pfdOpenFile(fileName)) == NULL)
        return NULL;

/* allocate primitive buffer */

    prim = pfdNewGeom(3);
    group = pfNewGroup();

    gstate = pfNewGState(NULL);
    mtl = (pfMaterial*)pfdGetTemplateObject(pfGetMtlClassType());
    pfMtlColor(mtl, PFMTL_AMBIENT, 0.0f, 0.0f, 0.0f);
    pfMtlAlpha(mtl, 0.5f);
    pfMtlColorMode(mtl,PFMTL_BOTH, PFMTL_CMODE_AD);

    lm=pfNewLModel(NULL);
    pfLModelAmbient(lm, 0.0f, 0.0f, 0.0f);
    pfLModelTwoSide(lm, PF_ON);

/* Load Smoke texture */

    tex = pfNewTex(NULL);
    pfLoadTexFile(tex,
"/usr/share/Performer/src/lib/libpfdb/libpfviz/smokeviz.rgb");
    pfTexRepeat(tex,PFTEX_WRAP_S ,PFTEX_REPEAT);
    pfTexRepeat(tex,PFTEX_WRAP_T ,PFTEX_REPEAT);

    tgen = pfNewTGen(NULL);
    pfTGenMode(tgen, PF_S,PFTG_SPHERE_MAP);
    pfTGenMode(tgen, PF_T,PFTG_SPHERE_MAP);

    tenv = pfNewTEnv(NULL);
    pfTEnvMode(tenv, PFTE_BLEND);
    pfTEnvBlendColor(tenv, 1.0f, 1.0f, 1.0f, 0.6f);

/* Setup converter for viz-file */

    pfdBldrStateAttr(PFSTATE_FRONTMTL, mtl);
    pfdBldrStateAttr(PFSTATE_TEXTURE,tex);
    pfdBldrStateAttr(PFSTATE_TEXENV,tenv);
    pfdBldrStateAttr(PFSTATE_TEXGEN,tgen);
    pfdBldrStateAttr(PFSTATE_ENLIGHTING,lm);
    pfdBldrStateMode(PFSTATE_ENTEXTURE, PF_ON);
    pfdBldrStateMode(PFSTATE_ENTEXGEN, PF_ON);
    pfdBldrStateMode(PFSTATE_LIGHTMODEL, PF_ON);
    pfdBldrStateMode(PFSTATE_CULLFACE, PFCF_OFF);

/* specify control data */

    prim->numVerts = 3;
    prim->primtype = PFGS_POLYS;
    prim->nbind = PFGS_PER_VERTEX;
    prim->cbind = PFGS_PER_PRIM;
    prim->tbind = PFGS_PER_VERTEX;

    /* read triangles from ".viz" file */

    while (!feof(vizFile))
    {
        /* read vertices from ".viz" file
        *-----------------------------------------*/

        for (v = 0; v < 3; v++)
        {
            /* read vertex data
            *-----------------------------*/
            fscanf(vizFile, "%f %f %f",
                &prim->coords[v][PF_X],
                &prim->coords[v][PF_Y],
                &prim->coords[v][PF_Z]);
        }

        /* add this line to builder
        *-----------------------------------------*/

        pfdAddBldrGeom(prim,1);
        ++numTris;
    }

/* close ".viz" file*/
    fclose(vizFile);

/* release primitive buffer */

    pfdDelGeom(prim);

/* get a complete scene graph representing file's primitives*/

    node = pfdBuild();

...

Thank you fore your help.

Regards,
Mattias
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at
http://profiles.msn.com.


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Oct 31 2000 - 10:46:46 PST

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