And let there be light! Here is the fourth class I'm opening up to everyone. Keep in mind there can only be 8 (GL_LIGHT0 - GL_LIGHT7) lights turned on at a time, if you are using the class for a game make sure you have a good light management system

I've never done real-time shadows (yet) so there are only a couple directions I can point you towards.

First the most basic is to simply render the object a second time with all of the Y values set to 0 and textures disabled, this would give you the appearance of a shadow directly below you like you are standing in the sun at noon. Then there is ray tracing which is fairly advanced, information on that can be found at: http://en.wikipedia.org/wiki/Ray_tracing_(graphics)

I'm trying to integrate it into my GL classes myself, and it's tough when you allow multiple textures. I may end up abandoning it in favor of using GLSL shaders, where I'm told it's much easier to implement.