I have noticed that the vertices x, y, z from a model come to the TriangleFunctor as x, z, -y.  This is probably normal as OSG is Z pos up…

 

This is a great system; thanks Robert!

 

 

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert Osfield
Sent: Wednesday, August 30, 2006 4:37 AM
To: osg users
Subject: Re: [osg-users] Collecting vertex array... is this correct?

 

Hi Mustafa,

The role of the osg::TriangleFunctor is to decomposs all GL_POLYGON, GL_QUADS, GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP e etc into straight triangles.  This is what makes the TriangleFunctor and TriangleIndexFunctor much easier to use for polygon querry type work.

Robert.

On 8/30/06, Mustafa <[EMAIL PROTECTED]> wrote:

If the Geometry is a colletion of TriangleFan or GL_POLYGONS etc...
will this function again generate a distinct triangles from this
QUADS, POLYGONS and TRIANGLEFANs etc ?



2006/8/30, Don Burns < [EMAIL PROTECTED]>:
> Hi Jeff,
>
> An improvement would be to use a osg::Vec3Array instead of a
> std::vector<float> m_VertexList.  An osg::Vec3Array is, in essence, an
> std::vector<osg::Vec3> ... .  This keeps your triples together.
>
> -don
>
>
> On 8/29/06, Jeff Kershner <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> >
> >
> >
> > I am using the TriangleFunctor like Robert suggested to get triangle
> information.  What I need is a vertex buffer that I can give to the physics
> objects.  Something is not working between OSG and ODE and I am not sure if
> I am not getting the triangles correctly.
> >
> >
> >
> > This is what I do:
> >
> >
> >
> > struct Triangle
> >
> > {
> >
> >             void operator() (const osg::Vec3& v1, const osg::Vec3& v2,
> const osg::Vec3& v3, bool)
> >
> >             {
> >
> >                         m_VertexList.push_back(v1[0]);
> >
> >                         m_VertexList.push_back(v1[1]);
> >
> >                         m_VertexList.push_back(v1[2]);
> >
> >
> >
> >                         m_VertexList.push_back(v2[0]);
> >
> >                         m_VertexList.push_back(v2[1]);
> >
> >                         m_VertexList.push_back(v2[2]);
> >
> >
> >
> >                         m_VertexList.push_back(v3[0]);
> >
> >                         m_VertexList.push_back(v3[1]);
> >
> >                         m_VertexList.push_back(v3[2]);
> >
> >             }
> >
> >
> >
> > std::vector<float> m_VertexList;
> >
> > };
> >
> >
> >
> > …
> >
> > osg::TriangleFunctor<Triangle> tf;
> >
> > pGeometry->accept(tf);
> >
> >
> >
> > So after this m_VertexList should be a list of all the vertices… correct?
> >
> >
> >
> > Then to create a vertex array I am doing the following:
> >
> >
> >
> > float* pVertexArray = new float[tf.m_VertexList.size()];
> >
> > int c = 0;
> >
> > for (vector<float>::iterator it = tf.m_VertexList.begin (); it !=
> tf.VertexList.end(); it++)
> >
> >             pVertexBuffer[c++] = *it;
> >
> >
> >
> > Is this a correct to create a Vertex Array?
> >
> > /jk
> >
> > _______________________________________________
> > osg-users mailing list
> > [email protected]
> > http://openscenegraph.net/mailman/listinfo/osg-users
> > http://www.openscenegraph.org/
> >
> >
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

 

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to