I am working on implementing LBS for a model, however it is slightly different since the bone structure does not use a hierarchy. Transformations are given each frame in respect to the rest pose (they aren't incremental).

Right now i have figured out how to draw the skeleton in its rest pose, however I am having trouble animating the skeleton. The animation is given in the form of a file with an axis/angle transform for every bone on each keyframe.



Code :
void drawSkeleton()
{
	if (bones.size() == 0)
	{
		cout << "ERROR - NO BONES!" << endl;
		return;
	}
 
	glDisable(GL_LIGHTING);
	glDisable(GL_CULL_FACE);
	glDisable(GL_POLYGON_OFFSET_FILL);
	glDisable(GL_DEPTH_TEST);
 
	glColor3f(0.2, 0.8, 0.2);
 
	for (int i = 0; i < bones.size(); i++) 
	{
		Joint jnta = *bones[i].jointA;
		Joint jntb = *bones[i].jointB;
		Transform trans = getTransform(bones[i].id);
 
		glPushMatrix();
 
		glBegin(GL_LINES);
 
		double degrees = (trans.angle * 180 / 3.1415926) * 57.2957795;
 
		glTranslatef(trans.translation[0], trans.translation[1], trans.translation[2]);
		glRotatef(degrees, trans.rotation[0], trans.rotation[1], trans.rotation[2]); 
 
		glVertex3f(jnta.vector[0], jnta.vector[1], jnta.vector[2]);
		glVertex3f(jntb.vector[0], jntb.vector[1], jntb.vector[2]);
 
		glEnd();
 
		glPopMatrix();
 
		glPushMatrix();
        glTranslatef(jnta.vector[0], jnta.vector[1], jnta.vector[2]);
        glutSolidSphere(0.01, 30, 10);
		glPopMatrix();
 
	}
}

For some reason the lines i am drawing are not affected by glTranslatef. If i do the same glTranslatef with the glutSphere, the joints will move around.