marius schebella a écrit :
cyrille henry wrote:
marius schebella a écrit :
hi cyrille, with mesh_square, are there other arguments to the draw message than "default" "line" and "point"?
you can send to mesh_square all draw style that you can send to any other gem primitive. but only this one work as expected.
and what is the "default" draw method?
if(m_drawType==GL_DEFAULT_GEM)m_drawType=GL_TRIANGLE_STRIP;
if I send the message draw triangle_strip then it looks different than the default. if I send draw + integernumber, I get error: Bad arguments for message 'draw' to object 'mesh_square'
what's the problem with draw DEFAULT?
in gemshape.cpp you'll find :
switch (c){
case 'D': // default
m_drawType = GL_DEFAULT_GEM;
break;
case 'L': // line
m_drawType = GL_LINE_LOOP;
break;
case 'F': // fill
m_drawType = GL_POLYGON;
break;
case 'Q': // quads
m_drawType = GL_QUADS;
break;
case 'P': // point
m_drawType = GL_POINTS;
break;
case 'T': // triangles
m_drawType = GL_TRIANGLES;
break;
case 'S': // strip
m_drawType = GL_TRIANGLE_STRIP;
break;
in this code, c is the 1st letter after "draw ".
so draw Triangle_strip is the same as draw Triangle, or draw Turtle
try "draw STRIP", or "draw Something" to draw triangle_strip....
(STRIP in more logic, but anything starting with S will work).
how are the vertices connected/what is the order of the vertices?
the best explanation i can provide is from the source code! :
for (int i=0; i<(gridX-1) ; i++) { glBegin(m_drawType); for (int j = 0; j < gridY ; j++) { glTexCoord2fv( texCoords[i][j] ); glVertex3f( m_size * (i*sizeX - 1), m_size * (j*sizeY
-1) , 0);
glTexCoord2fv( texCoords[i+1][j] ); glVertex3f( m_size * ((i+1)*sizeX - 1), m_size *
(j*sizeY -1), 0); } glEnd(); }
I should read more code, this is not so difficult as I thought...
yes, really. it's the best documentation ever! gem code is usually very clear.
cyrille
marius.