Cord/crates/cord-trig/src/lib.rs

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};