Skip to content

[eve7] Fixes: two crashes, projection, camera placement, motion delivery - #23750

Merged
linev merged 5 commits into
root-project:masterfrom
osschar:bh-fixes
Oct 19, 2026
Merged

linev merged 5 commits into
root-project:masterfrom
osschar:bh-fixes

Conversation

@osschar

@osschar osschar commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

This Pull request:

REve fixes found while working on bounding boxes (next PR). One commit per
topic.

Changes or fixes:

  • Fixed two server crashes: an element with a transformation but no render
    data, and a projected line with no points.
  • A change with both a new colour and a new matrix no longer loses the matrix.
  • Fixed REveProjection::ProjectPointdv() when the input and the output are
    the same array.
  • projection_axes.C puts its projection managers in their projected scenes.
  • The camera fits the scene, and is placed again when the first content
    arrives.
  • Motion updates are no longer lost. Removed the motion rate cap,
    REveViewer::SetMotionMaxHz().

Checklist:

  • tested changes locally: full build, 23 eve7 gtests; projection_axes.C,
    trans_update.C, boing.C, event_demo.C and motion delivery in a browser
  • updated the docs (if necessary)

Developed with AI assistance: Claude Code (Anthropic). The commits carry
the corresponding Assisted-by: trailer.

- An element with a transformation but no render data, e.g. a group,
  crashed the server. BuildRenderData() now sets the matrix only when there
  is render data.
- A projected line with no points crashed the server.
  REveLineProjected::SetDepthLocal() now loops over the points by index.

Assisted-by: Claude:Opus 5.5
- A change with both a new colour and a new matrix lost the matrix.
  EveManager.ImportSceneChangeJson() now handles both.

Assisted-by: Claude:Opus 5.5
- REveProjection::ProjectPointdv() gave wrong points when the input and the
  output were the same array. It now multiplies through a temporary. Added a
  gtest.
- projection_axes.C now puts each projection manager in its projected scene.
  In EveWorld the client did not get the manager's updates.

Assisted-by: Claude:Opus 5.5
- The camera could start inside the scene: its distance assumed a 30 degree
  field of view, and the camera has 75. The distance now follows the
  camera's field of view.
- The first camera placement happens before the scenes exist. The camera is
  now placed again when the first content arrives.

Assisted-by: Claude:Opus 5.5
- Motion updates were lost when a connection could not take a direct send.
  They now go out with the regular changes.
- Removed the motion rate cap, REveViewer::SetMotionMaxHz(). It dropped
  updates over the rate. SetRenderMaxHz() still caps drawing.

Assisted-by: Claude:Opus 5.5
@osschar
osschar requested a review from linev as a code owner October 18, 2026 06:29
@linev linev self-assigned this Oct 18, 2026
@linev
linev requested review from aaronj0 and linev and removed request for aaronj0 and linev October 18, 2026 08:40
@github-actions

Copy link
Copy Markdown

Test Results

    23 files      23 suites   3d 21h 16m 48s ⏱️
 3 886 tests  3 885 ✅ 0 💤 1 ❌
79 688 runs  79 687 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit 1c51de6.

@linev
linev merged commit f2deccf into root-project:master Oct 19, 2026
28 of 32 checks passed
@osschar

osschar commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

Thank you!

@osschar
osschar deleted the bh-fixes branch October 22, 2026 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants