Skip to main content

roxlap_core/
lib.rs

1//! roxlap engine core.
2//!
3//! A pure-Rust port of Ken Silverman's Voxlap voxel engine. See
4//! `PORTING-RUST.md` at the workspace root for the substage roadmap.
5//!
6//! Stage R3 lands the public [`Engine`] / [`Camera`] surface with a
7//! sky-fill stub renderer. R4 replaces the stub with the full
8//! opticast + grouscan algorithm.
9
10mod camera;
11pub mod camera_math;
12pub(crate) mod column_walk;
13pub mod drawtile;
14mod engine;
15// `equivec` (voxlap's normal table) moved to roxlap-formats so kv6
16// model builders can fill per-voxel `dir` without a circular dep;
17// re-exported here so in-crate `crate::equivec::…` paths (the sprite
18// `kv6colmul` build) keep resolving.
19pub(crate) use roxlap_formats::equivec;
20pub(crate) mod fixed;
21pub mod gline;
22pub mod grid_view;
23pub(crate) mod grouscan;
24pub mod kfa_draw;
25pub mod meltsphere;
26pub mod opticast;
27pub mod opticast_prelude;
28pub(crate) mod projection;
29pub(crate) mod ptfaces16;
30pub mod rasterizer;
31pub mod ray_aabb;
32pub(crate) mod ray_step;
33pub mod scalar_rasterizer;
34pub(crate) mod scan_loops;
35pub mod sky;
36pub mod sprite;
37pub mod world_lighting;
38pub mod world_query;
39
40pub use camera::Camera;
41pub use engine::{Engine, LightSrc, DEFAULT_KV6COL};
42pub use grid_view::{ChunkGrid, GridView};
43pub use opticast::{opticast, OpticastOutcome, OpticastSettings};
44pub use world_lighting::{
45    apply_lighting_with_cache, update_lighting, update_lighting_chunk, EstNormCache,
46};