1
1
"""
2
- A simple, fast visualizer based on moderngl.
2
+ A simple and fast visualizer based on moderngl.
3
3
Currently, only supports circles and lines.
4
4
"""
5
5
@@ -568,15 +568,22 @@ def render(
568
568
stated : StateDict ,
569
569
circle_colors : NDArray | None = None ,
570
570
sc_colors : NDArray | None = None ,
571
+ points_offset : NDArray | None = None ,
571
572
) -> None :
573
+ if points_offset is None :
574
+ po = np .array ([[0.0 , 0.0 ]])
575
+ else :
576
+ po = points_offset .astype (np .float32 ).reshape (1 , 2 )
572
577
circle_points , circle_scale , circle_colors_default = _collect_circles (
573
578
self ._space .shaped .circle ,
574
579
stated .circle ,
575
580
self ._circle_scaling ,
576
581
)
577
582
if self ._circles is not None :
578
583
circle_colors = self ._get_colors (circle_colors_default , circle_colors )
579
- if self ._circles .update (circle_points , circle_scale , circle_colors ):
584
+ if self ._circles .update (
585
+ circle_points + circle_points , circle_scale , circle_colors
586
+ ):
580
587
self ._circles .render ()
581
588
if self ._static_circles is not None :
582
589
sc_points , sc_scale , _ = _collect_circles (
@@ -588,19 +595,22 @@ def render(
588
595
_get_sc_color (self ._sc_color , stated .static_circle ),
589
596
sc_colors ,
590
597
)
591
- if self ._static_circles .update (sc_points , sc_scale , sc_colors ):
598
+ if self ._static_circles .update (sc_points + po , sc_scale , sc_colors ):
592
599
self ._static_circles .render ()
593
600
if self ._triangles is not None :
594
601
points , _ = _collect_triangles (
595
602
self ._space .shaped .static_triangle ,
596
603
stated .static_triangle ,
597
604
)
598
- if self ._triangles .update (points ):
605
+ if self ._triangles .update (points + po ):
599
606
self ._triangles .render ()
600
607
if self ._sensors is not None and self ._collect_sensors is not None :
601
- if self ._sensors .update (self ._collect_sensors (stated )):
608
+ if self ._sensors .update (self ._collect_sensors (stated ) + po ):
602
609
self ._sensors .render ()
603
- if self ._heads .update (_collect_heads (self ._space .shaped .circle , stated .circle )):
610
+ if (
611
+ self ._heads .update (_collect_heads (self ._space .shaped .circle , stated .circle ))
612
+ + po
613
+ ):
604
614
self ._heads .render ()
605
615
if self ._static_lines is not None :
606
616
self ._static_lines .render ()
0 commit comments