simvx.editor.panels.inspector_sections

Inspector section registry – extensible node-type-specific inspector sections.

Each InspectorSection subclass handles a specific node type or pattern. The inspector queries the registry via get_sections_for_node(node) and calls build_rows() to create the section widgets.

Sections are registered with the @register_inspector_section decorator.

Module Contents

Classes

InspectorContext

Helper passed to InspectorSection.build_rows().

InspectorSection

Base class for node-type-specific inspector sections.

MeshSection

MaterialSection

AudioStreamSection

CollisionShapeSection

PostProcessToggleSection

Compact toggle summary for post-processing effects on WorldEnvironment.

CollisionLayerSection

Visual 32-bit grid editor for collision_layer and collision_mask properties.

CameraPreviewSection

Shows a live camera preview (captured framebuffer) and key camera parameters.

ParticlePreviewSection

Compact control bar and emission shape preview for particle emitter nodes.

SpriteAnimationSection

Playback controls and frame info for AnimatedSprite2D / AnimatedSprite3D.

PathCurveSection

Compact curve point editor for Path2D and Path3D nodes.

Functions

register_inspector_section

Decorator to register an InspectorSection subclass.

get_sections_for_node

Return instantiated sections applicable to the given node, sorted by priority.

Data

log

API

simvx.editor.panels.inspector_sections.log[source]

‘getLogger(…)’

class simvx.editor.panels.inspector_sections.InspectorContext(inspector)[source]

Helper passed to InspectorSection.build_rows().

Provides undo-aware property editing without exposing InspectorPanel internals.

Initialization

on_property_changed(node: simvx.core.Node, prop: str, old_val: Any, new_val: Any)[source]

Push a PropertyCommand through the undo stack.

on_callable_command(do_fn, undo_fn, description: str)[source]

Push a CallableCommand through the undo stack.

on_material_prop_changed(node, prop: str, value: Any)[source]

Handle material sub-object property change with undo.

on_material_colour_changed(node, new_colour: tuple)[source]

Handle material colour change with undo.

on_material_texture_changed(node, attr: str, path: str | None)[source]

Handle material texture URI change with undo.

rebuild()[source]

Request full inspector rebuild.

property editor_state
register_widget(key: str, widget: simvx.core.Control)[source]

Register a widget in the inspector’s _property_widgets dict.

property property_changed_signal: simvx.core.Signal
class simvx.editor.panels.inspector_sections.InspectorSection[source]

Base class for node-type-specific inspector sections.

Subclasses override can_handle(), build_rows(), and optionally handled_properties() to claim properties from the generic section.

section_title: str

‘Section’

priority: int

0

abstractmethod can_handle(node: simvx.core.Node) bool[source]
abstractmethod build_rows(node: simvx.core.Node, ctx: simvx.editor.panels.inspector_sections.InspectorContext) list[simvx.core.Control][source]
handled_properties(node: simvx.core.Node) set[str][source]

Property names this section manages (excluded from generic section).

simvx.editor.panels.inspector_sections.register_inspector_section(cls: type[simvx.editor.panels.inspector_sections.InspectorSection]) type[simvx.editor.panels.inspector_sections.InspectorSection][source]

Decorator to register an InspectorSection subclass.

simvx.editor.panels.inspector_sections.get_sections_for_node(node: simvx.core.Node) list[simvx.editor.panels.inspector_sections.InspectorSection][source]

Return instantiated sections applicable to the given node, sorted by priority.

class simvx.editor.panels.inspector_sections.MeshSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

section_title

‘Mesh’

priority

10

can_handle(node)[source]
build_rows(node, ctx)[source]
handled_properties(node: simvx.core.Node) set[str]
class simvx.editor.panels.inspector_sections.MaterialSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

section_title

‘Material’

priority

11

can_handle(node)[source]
build_rows(node, ctx)[source]
handled_properties(node: simvx.core.Node) set[str]
class simvx.editor.panels.inspector_sections.AudioStreamSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

section_title

‘Audio’

priority

20

can_handle(node)[source]
build_rows(node, ctx)[source]
handled_properties(node: simvx.core.Node) set[str]
class simvx.editor.panels.inspector_sections.CollisionShapeSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

section_title

‘Collision Shape’

priority

30

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]
class simvx.editor.panels.inspector_sections.PostProcessToggleSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

Compact toggle summary for post-processing effects on WorldEnvironment.

section_title

‘Post Processing’

priority

5

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]
class simvx.editor.panels.inspector_sections.CollisionLayerSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

Visual 32-bit grid editor for collision_layer and collision_mask properties.

section_title

‘Collision Layers’

priority

25

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]
class simvx.editor.panels.inspector_sections.CameraPreviewSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

Shows a live camera preview (captured framebuffer) and key camera parameters.

section_title

‘Camera Preview’

priority

2

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]
class simvx.editor.panels.inspector_sections.ParticlePreviewSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

Compact control bar and emission shape preview for particle emitter nodes.

section_title

‘Particle Controls’

priority

3

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]
class simvx.editor.panels.inspector_sections.SpriteAnimationSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

Playback controls and frame info for AnimatedSprite2D / AnimatedSprite3D.

section_title

‘Sprite Animation’

priority

4

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]
class simvx.editor.panels.inspector_sections.PathCurveSection[source]

Bases: simvx.editor.panels.inspector_sections.InspectorSection

Compact curve point editor for Path2D and Path3D nodes.

section_title

‘Curve’

priority

6

can_handle(node)[source]
handled_properties(node)[source]
build_rows(node, ctx)[source]