glMultMatrix no funciona dentro de glBegin ()

Estoy creando un programa que me permite trazar puntos en 3 espacios, los conecta utilizando una Spline Catmull-Rom, y luego dibuja un cilindro alrededor de la Spline. estoy usandoGL_TRIANGLES_STRIP para conectar círculos de puntos dibujados alrededor de la Spline a intervalos cortos, para conectarlos todos juntos en un Cilindro alrededor de la Spline.

He logrado dibujar círculos completos de puntos en estos intervalos, usandoGL_POINTS, y orientarlos correctamente a la línea con respecto a un Marco Frenet. Desafortunadamente, para usarGL_TRIANGLE_STRIPCreo que necesito trazar los puntos uno por uno entre un conjunto de dos círculos de puntos.

El problema que tengo es que elglMultMatrix no parece funcionar cuando dentro de unaglBegin. El siguiente código dibujará un círculo de puntos, pero en el origen, y elglMultMatrix, que uso para traducir y orientar el círculo de puntos, no parece aplicarse cuando está dentro delglbegin. ¿Hay una solución para esto?

  //The matrixes that are applied to the circle of points
  GLfloat M1[16]={
    N1.x(),N1.y(),N1.z(),0,
    B1.x(),B1.y(),B1.z(),0,
    T1.x(),T1.y(),T1.z(),0,
    fromPoint->x,fromPoint->y,fromPoint->z,1
  };

  GLfloat M2[16]={
    N2.x(),N2.y(),N2.z(),0,
    B2.x(),B2.y(),B2.z(),0,
    T2.x(),T2.y(),T2.z(),0,
    toPoint->x,toPoint->y,toPoint->z,1
  };

  glBegin(GL_TRIANGLE_STRIP);
  GLfloat x, y;
  GLfloat radius = 0.4f;
  GLint pointCount = 180;
  for (GLfloat theta = 0; theta < 2*M_PI; theta += (2*M_PI)/pointCount) {
    x = radius * cos(theta);
    y = radius * sin(theta);

    // Now push a matrix, multiply it, draw a point and pop the matrix
    glPushMatrix();
    glMultMatrixf(& M1[0]);
    // Draw the point here
    glVertex3f(x, y, 0);
    glPopMatrix();

    // Do the same again for the second section
    glPushMatrix();
    glMultMatrixf(& M2[0]);
    glVertex3f(x, y, 0);
    glPopMatrix();
  }
  glEnd();

Respuestas a la pregunta(2)

Su respuesta a la pregunta