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

GizmoRenderData

Per-frame data describing what gizmo to render.

GizmoPass

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.