ConstructCaptureSource

A construct scene OPAL can look at from a camera it places (opal-vision §OVD-5, D15).

In the namespace construct::opal. Declared in src/libs/libconstruct/construct/opal/ConstructCaptureSource.hpp.

Detailed description

Backed by ConstructSceneRenderer, NOT by SDFThumbnailGenerator. That choice is forced rather than preferred (§OVR-4):

- SDFThumbnailGenerator::CameraParams is distance/yaw/pitch orbiting the ORIGIN, so a free eye and target cannot be expressed at all. - Every projection in that file is projMatrix.perspective(45.0f, ...). There is no orthographic path, and orthographic is mandatory for a box capture — foreshortening is exactly what hides a symmetry error. - Its subject is one Definition, never an arrangement of items.

ConstructSceneRenderer's CameraSnapshot is this spec's argument list with no translation: position, target, up, fovDegrees, nearPlane, farPlane, orthographic, orthoHeight.

Two constraints ride with it, and this class honors both. It renders on the thread that owns its RHI, so a capture runs on the GUI thread. And it renders a ConstructSnapshot rather than the live model, which needs six live objects that only the shell holds — hence the hooks below rather than a pointer to the scene.

In this section