[PD] mesh_square

cyrille henry cyrille.henry at la-kitchen.fr
Sun Apr 6 19:33:00 CEST 2008



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.
> 
> 




More information about the Pd-list mailing list