Skip to main content

volren_core/
lib.rs

1//! Core data types, math, camera, transfer functions, and interaction for volren-rs.
2//!
3//! This crate has **no GPU dependency** and can be used in headless pipelines.
4//! See `volren-gpu` for the wgpu-based renderer that consumes these types.
5
6#![deny(missing_docs)]
7#![deny(unsafe_code)]
8#![warn(clippy::all)]
9#![allow(clippy::pedantic)]
10
11pub mod camera;
12pub mod interaction;
13pub mod math;
14pub mod picking;
15pub mod render_params;
16pub mod reslice;
17pub mod transfer_function;
18pub mod volume;
19pub mod window_level;
20
21// Top-level re-exports for ergonomic use.
22pub use camera::{Camera, Projection};
23pub use interaction::{
24    InteractionContext, InteractionResult, InteractionStyle, Key, KeyEvent, Modifiers, MouseButton,
25    MouseEvent, MouseEventKind,
26};
27pub use math::aabb::Aabb;
28pub use picking::{PickResult, Ray};
29pub use render_params::{BlendMode, ClipPlane, Interpolation, ShadingParams, VolumeRenderParams};
30pub use reslice::{SlicePlane, ThickSlabMode, ThickSlabParams};
31pub use transfer_function::{
32    ColorSpace, ColorTransferFunction, OpacityTransferFunction, TransferFunction2D,
33    TransferFunction2DRegion, TransferFunctionLut,
34};
35pub use volume::{DynVolume, Scalar, Volume, VolumeError, VolumeInfo};
36pub use window_level::WindowLevel;