25 lines
889 B
Rust
25 lines
889 B
Rust
//! Trigonometric intermediate representation for SDF geometry.
|
|
//!
|
|
//! `TrigGraph` is the universal IR that all geometry compiles to — a DAG of
|
|
//! pure trigonometric, arithmetic, and comparison operations. From here it
|
|
//! can be evaluated as f64, compiled to WGSL shaders, or lowered to CORDIC
|
|
//! shift-and-add instructions.
|
|
//!
|
|
//! # Key types
|
|
//! - [`TrigGraph`] — the DAG container
|
|
//! - [`TrigOp`] — individual operations (sin, cos, add, min, ...)
|
|
//! - [`NodeId`] — u32 index into the graph
|
|
//! - [`SdfBuilder`](lower::SdfBuilder) — language-agnostic scene construction API
|
|
|
|
pub mod ir;
|
|
pub mod eval;
|
|
pub mod lower;
|
|
pub mod traverse;
|
|
pub mod optimize;
|
|
pub mod parallel;
|
|
|
|
pub use ir::{TrigGraph, TrigOp, NodeId};
|
|
pub use traverse::{TraversalMode, EvalBounds, EvalResult};
|
|
pub use optimize::optimize;
|
|
pub use parallel::{ParallelClass, Subtree, find_independent_subtrees};
|