Forcing reshape() to update near and far clipping planes ?

I have a scene with a planet and a vehicle around this planet and I want to be able to zoom out of the planet and see the sun in the distance but when I zoom into the vehicle around the planet I want to be able to see it too without it being clipped.

In order to achieve this right now I have a very small near clipping plane (0.1f) and a distant far clipping plane (2000000.0f) and currently I’m trying to use kilometers as my units of resolution. With these clipping plane distances I get some display artifacts occasionally and when I’m zoomed in to the vehicle and try to rotate around it I get a wobbly rotation.

So what I was wondering is how to get the best of these worlds and I figured that I could do this by changing the near and far clipping distances based on the object (planet or vehicle) that is my currently active/prime object - based on a keyboard selection. The problem I have is that I don’t know how to I call the reshape() method to reinitialize the glu.gluPerspective() call to reset the near and far plane values… I guess I could put it in my display() method and set a flag when I need this to occur once but I was wondering if this is reasonable to even do or if there is a better method that I should use?

Thanks, in advance.