11from pyqtgraph .Qt import QtCore , QtGui
2+ from OpenGL .GL import *
23from proto .import_all_protos import *
34from enum import Enum , IntEnum
45from proto .robot_log_msg_pb2 import LogLevel
@@ -159,6 +160,8 @@ class EstopMode(IntEnum):
159160 f"{ SAVED_LAYOUT_PATH } /last_opened_tscope_layout.{ LAYOUT_FILE_EXTENSION } "
160161)
161162
163+ SIMULATION_SPEEDS = [2 , 1 , 0.5 , 0.2 , 0.1 , 0.05 ]
164+
162165THUNDERSCOPE_HELP_TEXT = textwrap .dedent (
163166 f"""
164167 <h3>General Controls</h3><br>
@@ -167,6 +170,8 @@ class EstopMode(IntEnum):
167170 <b><code>M:</code></b> Toggle measure mode<br>
168171 <b><code>S:</code></b> Toggle visibility of robot/ball speed visualization<br>
169172 <b><code>Ctrl + Space:</code></b> Stop AI vs AI simulation<br>
173+ <b><code>Ctrl + Up:</code></b> Increment simulation speed<br>
174+ <b><code>Ctrl + Down:</code></b> Decrement simulation speed<br>
170175 <b><code>Number Keys:</code></b> Position camera to preset view<br>
171176 <b><code>Shift + Left Click:</code></b> Place the ball at the cursor<br>
172177 <b><code>Shift + Left Click Drag:</code></b> Place the ball at the cursor and kick it<br>
@@ -277,7 +282,13 @@ class Colors(object):
277282 NAVIGATOR_OBSTACLE_COLOR = QtGui .QColor (255 , 80 , 0 , 100 )
278283 DEBUG_SHAPES_COLOR = QtGui .QColor (190 , 50 , 235 , 255 )
279284 PASS_VISUALIZATION_COLOR = QtGui .QColor (255 , 0 , 0 , 80 )
285+ UNCOMMITTED_PASS_VISUALIZATION_COLOR = QtGui .QColor (255 , 0 , 0 , 80 )
286+ COMMITTED_PASS_VISUALIZATION_COLOR = QtGui .QColor (0 , 255 , 255 , 255 )
287+ SHOT_VISUALIZATION_COLOR = QtGui .QColor (255 , 0 , 0 , 255 )
288+ CHIP_TARGET_VISUALIZATION_COLOR = QtGui .QColor (255 , 0 , 0 , 255 )
280289 BREAKBEAM_TRIPPED_COLOR = QtGui .QColor (255 , 0 , 0 , 255 )
290+ AUTO_CHIP_ENABLED_COLOR = QtGui .QColor (215 , 0 , 200 , 255 )
291+ AUTO_KICK_ENABLED_COLOR = QtGui .QColor (255 , 0 , 0 , 255 )
281292
282293 VALIDATION_PASSED_COLOR = QtGui .QColor (0 , 200 , 0 , 255 )
283294 VALIDATION_FAILED_COLOR = QtGui .QColor (200 , 0 , 0 , 255 )
@@ -323,3 +334,21 @@ class TrailValues:
323334
324335 DEFAULT_TRAIL_LENGTH = 20
325336 DEFAULT_TRAIL_SAMPLING_RATE = 0
337+
338+
339+ class CustomGLOptions :
340+ """
341+ Custom OpenGL Rendering modes that could be used in addition to
342+ the ones provided by PyQtGraph in GLGraphicsItem.py GLOptions.
343+ """
344+
345+ # Opaque rendering (i.e. overlapping colors are not blended) while
346+ # also allowing for custom depth values to be set.
347+ # This is useful when the graphics are overlaid on top of (e.g.) a
348+ # yellow robot where the blended colors would not be easily visible.
349+ OPAQUE_WITH_OUT_DEPTH_TEST = {
350+ GL_DEPTH_TEST : False ,
351+ GL_BLEND : False ,
352+ GL_ALPHA_TEST : False ,
353+ GL_CULL_FACE : False ,
354+ }
0 commit comments