Skip to main content

Module scene3d

Module scene3d 

Source
Expand description

3D scene foundation — the silx.gui.plot3d port.

This is the pure, headless math layer (matrices + camera); the GPU pipeline lives in crate::render and the interactive widget in crate::widget. Tracked in doc/plot3d-parity-roadmap.md.

Modules§

camera
Camera: projection (intrinsic) × position/orientation (extrinsic).
interaction
Pure camera-interaction helpers — the orbit/pan drag state machines from silx silx.gui.plot3d.scene.interaction, ported off Qt so they are unit testable. The egui crate::widget::scene_widget::SceneWidget drives these from pointer events; zoom and depth-extent adjustment live on crate::core::scene3d::camera::Camera (they need its projection internals).
marching_cubes
Marching-cubes isosurface extraction — the pure, headless port of silx’s silx.math.marchingcubes (C++ mc.hpp + the 256-case lookup tables in mc_lut.cpp, driven by Cython marchingcubes.pyx).
mat4
4×4 matrix and 3-vector math for the 3D scene.
pick
CPU ray–geometry picking for the 3D scene.
plane
Plane geometry for cut planes — the pure, headless port of silx’s scene.utils.Plane plus the box/plane-intersection helpers (segmentPlaneIntersect, boxPlaneIntersect, angleBetweenVectors) and the unit-box corner/edge tables from scene.primitives.Box.