simvx.graphics.renderer.gizmo_pass¶
GPU render pass for transform gizmo overlays (translate, rotate, scale).
Builds per-frame vertex arrays for gizmo visuals and renders them with depth testing DISABLED so they always appear on top of the scene. Uses the same vertex format as debug lines: position (vec3) + color (vec4).
Visual feedback:
Default axis colors: X=red, Y=green, Z=blue
Hover: hovered axis turns yellow
Active drag: active axis turns bright white, others dim to 30% opacity
Module Contents¶
Classes¶
Per-frame data describing what gizmo to render. |
|
GPU render pass that draws gizmo overlays on top of the 3D scene. |
Data¶
API¶
- simvx.graphics.renderer.gizmo_pass.__all__¶
[‘GizmoPass’, ‘GizmoRenderData’]
- simvx.graphics.renderer.gizmo_pass.log¶
‘getLogger(…)’
- class simvx.graphics.renderer.gizmo_pass.GizmoRenderData¶
Per-frame data describing what gizmo to render.
- position: numpy.ndarray¶
‘field(…)’
- mode: int¶
0
- hover_axis: int¶
None
- active_axis: int¶
None
- view_matrix: numpy.ndarray¶
‘field(…)’
- proj_matrix: numpy.ndarray¶
‘field(…)’
- axis_length: float¶
1.0
- class simvx.graphics.renderer.gizmo_pass.GizmoPass(engine: Any)¶
GPU render pass that draws gizmo overlays on top of the 3D scene.
Uses two pipelines: one for line segments (axis shafts, rotation rings) and one for triangles (arrowheads, cubes, plane handles). Both have depth testing disabled so gizmos always render on top.
Initialization
- setup() None¶
Create GPU pipelines for gizmo rendering.
- render(cmd: Any, data: simvx.graphics.renderer.gizmo_pass.GizmoRenderData, extent: tuple[int, int]) None¶
Build gizmo geometry and record draw commands.
- cleanup() None¶
Release all GPU resources.