[info-performer] pfParaSurface question

Date view Thread view Subject view Author view

From: Jaroslav Sinecky (jsinecky++at++tiscali.cz)
Date: 03/01/2004 02:51:51


Hi all!
I'm wondering about one thing... is it possible to define pfParaSurface
turned inside-out? Like for example inner cylinder? I tried mirroring the
parameter domain (setting U to go from 0 to -2*PI) but it didn't work, after
tessellation the triangles still have normals pointing out. For rendering I
could give these reversed objects another geoState with back material and
frontface culling but I would prefer to avoid this.
BTW, what does pfParaSurface::getHandednessHint(pfBool _clockWise) serve
for?

Also I reported two problems concerning tessellation and topology on
beta-feedback but in the final 3.1 release the problems are still there. See
attached messages.

Thanks.
Jaroslav


attached mail follows:


If I build the repTest.cxx demo, run it to create reptest.pfb file and then
try to open this file in perfly I get access violation probably when trying
to tesselate fswept surface.
Jaroslav


attached mail follows:


Hi,
The pfdBuildTopologyTraverse is failing (Acces violation) if I give it a
simple set of surfaces: cylinder with a cap. Maybe I'm not using it
correctly (the documentation is not complete yet). Sorry then.
It's on Win2000.

Here is the code:

{
        float diam = 2.0f;

        pfGroup* gr = new pfGroup;

        pfCylinderSurface* cyl = new pfCylinderSurface;
        cyl->setRadius(diam/2.0f);
        cyl->setHeight(diam*5.0f);
        gr->addChild(cyl);

        pfPlaneSurface* pl;
        pfVec3 au, av, cor;

        pl = new pfPlaneSurface;
        au = pfVec3(1.0f, 0.0f, 0.0f);
        av = pfVec3(0.0f, 1.0f, 0.0f);

        // Plane corners
        pfVec3 orig(0.0f, 0.0f, diam*2.5f);
        orig = orig - (diam*au) - (diam*av);
        pl->setPoint1(orig[0], orig[1], orig[2], -2, -2);
        cor = orig + (2.0f*diam*au);
        pl->setPoint2(cor[0], cor[1], cor[2], 2);
        cor = orig + (2.0f*diam*av);
        pl->setPoint3(cor[0], cor[1], cor[2], 2);

        // Trim loop
        pfCircle2d* trim = new pfCircle2d;
        pl->addTrimCurve(0, trim, NULL);
        pl->setTrimLoopClosed(0, PFLOOP_CLOSED);
        gr->addChild(pl);

        pfTopo* topo = new pfTopo;
        pfdBuildTopologyTraverse(topo, gr);
}


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Mon Mar 01 2004 - 03:21:28 PST