Skip to content

Add bounded orbit controls to the semantic wall view #15

Description

@jonathanmcmichael

Outcome

Allow a user to orbit around the semantic wall with a mouse drag while keeping the wall centered and the camera numerically stable.

Truth source

Use the current isometric view as the initial state. A full horizontal drag changes yaw; a full vertical drag changes pitch. Pitch must remain below the singular poles and all generated basis vectors must remain finite and normalized.

Invariants

  • camera math is pure and unit tested separately from window events
  • resize behavior and the semantic mesh mapping remain intact
  • no Truck types enter renderer input
  • interaction requests redraw only when camera state changes

Expected scope

Handle bounded mouse-button and cursor movement events in rustit-app, introduce a small camera state, and test normalization/clamping.

Non-goals

Pan, zoom, selection, touch gestures, inertia, persistence, and a general scene graph.

Acceptance and evidence

  • dragging changes yaw and pitch in expected directions
  • pitch clamps before camera-basis singularity
  • repeated input never produces NaN or infinity
  • release stops orbiting
  • live Windows check plus cargo xtask verify pass

Dependencies: semantic renderer from #4. Coordinate with zoom issue #8 without combining the PRs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-readyPortable work packet ready for human-and-AI implementationarea:appDesktop application, interaction, and renderinghelp wantedExtra attention is neededkind:implementationBounded implementation workreview:geometryCAD geometry or topology review requestedreview:rustRust API or implementation review requestedsize:sOne narrow crate slicestate:readyReady for a contributor to claim

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions