@@ -306,27 +306,27 @@ def drawBarycenters(barycenters, active_cam):
306
306
glEnd ()
307
307
glPopMatrix ()
308
308
309
- def drawBarycenterLabels (bcs , cam , offset = 0.05 ):
309
+ def drawBarycenterLabels (bcs , cam , offset = 0.05 , far_clip = 1e6 ):
310
310
311
311
for bc in bcs :
312
312
313
313
if world2cam (bc .get_pos ().tolist (), cam ):
314
314
label_render_start = world2cam (bc .get_pos ().tolist (), cam )
315
315
label_render_start [0 ] += offset
316
316
label_render_start [1 ] -= offset
317
- render_AN (bc .get_name (), vector_scale (bc .get_color (), 2 ), label_render_start , cam )
317
+ render_AN (bc .get_name (), vector_scale (bc .get_color (), 2 ), label_render_start , cam , 0.1 , far_clip )
318
318
319
- def drawBodyLabels (bs , cam , offset = 0.05 ):
319
+ def drawBodyLabels (bs , cam , offset = 0.05 , far_clip = 1e6 ):
320
320
321
321
for b in bs :
322
322
323
323
if world2cam (b .get_pos ().tolist (), cam ):
324
324
label_render_start = world2cam (b .get_pos ().tolist (), cam )
325
325
label_render_start [0 ] += offset
326
326
label_render_start [1 ] -= offset
327
- render_AN (b .get_name (), vector_scale (b .get_color (), 2 ), label_render_start , cam )
327
+ render_AN (b .get_name (), vector_scale (b .get_color (), 2 ), label_render_start , cam , 0.1 , far_clip )
328
328
329
- def drawSurfacePointLabels (sps , cam , offset = 0.05 ):
329
+ def drawSurfacePointLabels (sps , cam , offset = 0.05 , far_clip = 1e6 ):
330
330
331
331
for sp in sps :
332
332
@@ -343,19 +343,19 @@ def drawSurfacePointLabels(sps, cam, offset=0.05):
343
343
label_render_start = world2cam (sp .get_pos ().tolist (), cam )
344
344
label_render_start [0 ] += offset
345
345
label_render_start [1 ] -= offset
346
- render_AN (sp .get_name (), vector_scale (sp .get_color (), 2 ), label_render_start , cam )
346
+ render_AN (sp .get_name (), vector_scale (sp .get_color (), 2 ), label_render_start , cam , 0.1 , far_clip )
347
347
348
- def drawVesselLabels (vs , cam , offset = 0.05 ):
348
+ def drawVesselLabels (vs , cam , offset = 0.05 , far_clip = 1e6 ):
349
349
350
350
for v in vs :
351
351
352
352
if world2cam (v .get_pos ().tolist (), cam ):
353
353
label_render_start = world2cam (v .get_pos ().tolist (), cam )
354
354
label_render_start [0 ] += offset
355
355
label_render_start [1 ] -= offset
356
- render_AN (v .get_name (), vector_scale (v .get_color (), 2 ), label_render_start , cam )
356
+ render_AN (v .get_name (), vector_scale (v .get_color (), 2 ), label_render_start , cam , 0.1 , far_clip )
357
357
358
- def drawProjectionLabels (ps , cam , offset = 0.05 , size = 0.05 ):
358
+ def drawProjectionLabels (ps , cam , offset = 0.05 , size = 0.05 , far_clip = 1e6 ):
359
359
360
360
for p in ps :
361
361
pe_adjusted = p .draw_pe + p .get_body ().get_draw_pos ()
@@ -372,31 +372,45 @@ def drawProjectionLabels(ps, cam, offset=0.05, size=0.05):
372
372
label_render_start = world2cam (pe_adjusted .tolist (), cam )
373
373
label_render_start [0 ] += offset
374
374
label_render_start [1 ] -= offset
375
- render_AN (("PERI " + str (p .get_periapsis_alt ())), p .vessel .get_color (), label_render_start , cam , size )
375
+ render_AN (("PERI " + str (p .get_periapsis_alt ())), p .vessel .get_color (), label_render_start , cam , size , far_clip )
376
376
377
377
if world2cam (ap_adjusted , cam ):
378
378
label_render_start = world2cam (ap_adjusted .tolist (), cam )
379
379
label_render_start [0 ] += offset
380
380
label_render_start [1 ] -= offset
381
- render_AN (("APO " + str (p .get_apoapsis_alt ())), p .vessel .get_color (), label_render_start , cam , size )
381
+ render_AN (("APO " + str (p .get_apoapsis_alt ())), p .vessel .get_color (), label_render_start , cam , size , far_clip )
382
382
383
383
if world2cam (an_adjusted , cam ):
384
384
label_render_start = world2cam (an_adjusted .tolist (), cam )
385
385
label_render_start [0 ] += offset
386
386
label_render_start [1 ] -= offset
387
- render_AN (("ASCN " + str (p .get_inclination ())), p .vessel .get_color (), label_render_start , cam , size )
387
+ render_AN (("ASCN " + str (p .get_inclination ())), p .vessel .get_color (), label_render_start , cam , size , far_clip )
388
388
389
389
if world2cam (dn_adjusted , cam ):
390
390
label_render_start = world2cam (dn_adjusted .tolist (), cam )
391
391
label_render_start [0 ] += offset
392
392
label_render_start [1 ] -= offset
393
- render_AN (("DSCN " + str (p .get_inclination ())), p .vessel .get_color (), label_render_start , cam , size )
393
+ render_AN (("DSCN " + str (p .get_inclination ())), p .vessel .get_color (), label_render_start , cam , size , far_clip )
394
+
395
+ def drawStarfield (starfield , cam , far_clip ):
396
+ star_dist = far_clip * 0.5
397
+
398
+ glPushMatrix ()
399
+ glColor (1 , 1 , 1 )
400
+ glTranslate (- cam .pos [0 ], - cam .pos [1 ], - cam .pos [2 ])
401
+ glBegin (GL_POINTS )
402
+ for s in starfield :
403
+ glVertex3f (s [0 ] * star_dist , s [1 ] * star_dist , s [2 ] * star_dist )
404
+
405
+ glEnd ()
406
+ glPopMatrix ()
394
407
395
408
def drawRapidCompute (cam , size = 0.2 ):
396
409
render_AN ("RAPID COMPUTE ACTIVE" , (1 ,0 ,0 ), [- 5 , 0.5 ], cam , size )
397
410
render_AN ("PLEASE BE PATIENT" , (1 ,0 ,0 ), [- 3 , - 0.5 ], cam , size / 1.5 )
398
411
399
- def drawScene (bodies , vessels , surface_points , barycenters , projections , maneuvers , active_cam , show_trajectories = True , draw_mode = 1 , labels_visible = True , scene_lock = None , point_size = 2 , grid_active = False , scene_rot_target = None ):
412
+ def drawScene (bodies , vessels , surface_points , barycenters , projections , maneuvers , active_cam , show_trajectories = True , draw_mode = 1 ,
413
+ labels_visible = True , scene_lock = None , point_size = 2 , grid_active = False , scene_rot_target = None , starfield = [], far_clip = 1e6 ):
400
414
401
415
# sort the objects by their distance to the camera so we can draw the ones in the front last
402
416
# and it won't look like a ridiculous mess on screen
@@ -405,6 +419,9 @@ def drawScene(bodies, vessels, surface_points, barycenters, projections, maneuve
405
419
vessels .sort (key = lambda x : (- x .get_draw_pos () - active_cam .get_pos ()).mag (), reverse = True )
406
420
surface_points .sort (key = lambda x : (- x .get_draw_pos () - active_cam .get_pos ()).mag (), reverse = True )
407
421
422
+ if starfield :
423
+ drawStarfield (starfield , active_cam , far_clip )
424
+
408
425
if grid_active :
409
426
spacing = drawGridPlane (active_cam , bodies , vessels )
410
427
@@ -417,15 +434,15 @@ def drawScene(bodies, vessels, surface_points, barycenters, projections, maneuve
417
434
418
435
if labels_visible :
419
436
glEnable (GL_LINE_SMOOTH )
420
- drawBarycenterLabels (barycenters , active_cam )
421
- drawBodyLabels (bodies , active_cam )
422
- drawSurfacePointLabels (surface_points , active_cam )
423
- drawVesselLabels (vessels , active_cam )
437
+ drawBarycenterLabels (barycenters , active_cam , 0.05 , far_clip )
438
+ drawBodyLabels (bodies , active_cam , 0.05 , far_clip )
439
+ drawSurfacePointLabels (surface_points , active_cam , 0.05 , far_clip )
440
+ drawVesselLabels (vessels , active_cam , 0.05 , far_clip )
424
441
glDisable (GL_LINE_SMOOTH )
425
442
426
443
drawProjections (projections )
427
444
if labels_visible :
428
- drawProjectionLabels (projections , active_cam )
445
+ drawProjectionLabels (projections , active_cam , 0.05 , 0.05 , far_clip )
429
446
# draw trajectory and predictions
430
447
if show_trajectories :
431
448
glEnable (GL_LINE_SMOOTH )
@@ -435,7 +452,7 @@ def drawScene(bodies, vessels, surface_points, barycenters, projections, maneuve
435
452
436
453
if grid_active and spacing :
437
454
spacing_exp = int (math .log (spacing , 10 ) + 0.5 )
438
- render_AN ("GRID SPACING 1e" + str (spacing_exp ) + " M" , (1 , 0 , 0 ), [- 11.5 , 5.5 ], active_cam , 0.1 )
455
+ render_AN ("GRID SPACING 1e" + str (spacing_exp ) + " M" , (1 , 0 , 0 ), [- 11.5 , 5.5 ], active_cam , 0.1 , far_clip )
439
456
440
457
if scene_rot_target :
441
- render_AN ("ROTATING REFERENCE FRAME" , (1 , 0 , 0 ), [- 11.5 , - 5.5 ], active_cam , 0.1 )
458
+ render_AN ("ROTATING REFERENCE FRAME" , (1 , 0 , 0 ), [- 11.5 , - 5.5 ], active_cam , 0.1 , far_clip )
0 commit comments