Alright, sorry this took so long. So if you look through these pictures, it will give you an idea of my issue. So first I start off with a range of 1E-10 in 1.png. there are several objects nearby, but none are visible. Then, in 2.png, I use the builtin UserZoom function with my mouse to zoom in. I continue to zoom in using this method in 3 and 4.png. Now, I use the same functionality to zoom back out to the original (non-visible) zoom level. Now, I have set key "q" to zoom in using range changes, and "p" to zoom out using range changes. Since my range is still 1e-10, I start to play with q and p a bit. I zoom out to a level where I can see the platform (Range1.png). Then I press q to zoom in (decrease range by half), and that is Range2.png. I continue this process in Range3.png, and Range4.png. You can see the issue, using range to adjust the zoom, for some strange reason, does not allow me to get an up-close view of my platform. When I get a range that would have me near the platform, the platform becomes invisible.
As it turns out, I have realized that this issue has something to do with the skysphere that I developed. When I remove the skysphere, and just leave the regular black python background for the scene, using the range to back out and zoom in works as intended (the platform is always visible, no matter how close I get). So, either I have to figure out what is wrong with my design of the skysphere, that is causing this to break, or I have to find a way to zoom in the same way that VPython handles UserZoom. I have included below, also, my code for skysphere generation, so perhaps you can see something blatantly wrong with my design.
class SkySphere(extrusion):
def __init__(this, display, pos, radius, material, visible = True):
this.path = paths.arc(pos = pos, radius = 0.001, np=128, angle1=0, angle2=2*pi)
this.ocirc = shapes.circle(pos=pos, radius = radius+1,rotate = pi)
this.icirc = shapes.circle(pos=pos, radius = radius,rotate = pi)
this.semiCirc = shapes.arc(radius = radius, angle1 = 3*pi/2, angle2 = 5*pi/2)
this.radius = radius
super(extrusion,this).__init__(display = display,
pos=this.path,
shape=this.semiCirc,
material=material, visible = visible)
skysphere = SkySphere(display = world, pos =(0,0,0), visible = False, radius=2000, material=stex.sky)
skysphere.visible = True
Thanks,
Sean