map_scatter/
lib.rs

1#![forbid(unsafe_code)]
2//! map_scatter: Rule-based object scattering with field-graph evaluation and sampling.
3//!
4//! Modules:
5//! - fieldgraph: author, compile, and evaluate scalar field DAGs (incl. textures and EDT normalization)
6//! - sampling: candidate generation (jitter grid, Poisson disk)
7//! - scatter: plans, layers, runner, selection, overlays, events
8//!
9//! For examples and docs, see README and docs.rs.
10pub mod error;
11pub mod fieldgraph;
12pub mod sampling;
13pub mod scatter;
14
15/// Convenient re-exports for common types. Import with `use map_scatter::prelude::*;`.
16pub mod prelude {
17    pub use crate::error::{Error, Result};
18    pub use crate::fieldgraph::cache::FieldProgramCache;
19    pub use crate::fieldgraph::compiler::{CompileOptions, FieldGraphCompiler};
20    pub use crate::fieldgraph::spec::{FieldGraphSpec, FieldSemantics};
21    pub use crate::fieldgraph::{NodeSpec, Texture, TextureChannel, TextureRegistry};
22    pub use crate::sampling::{
23        BestCandidateSampling, ClusteredSampling, FibonacciLatticeSampling, HaltonSampling,
24        HexJitterGridSampling, JitterGridSampling, PoissonDiskSampling, PositionSampling,
25        StratifiedMultiJitterSampling, UniformRandomSampling,
26    };
27    pub use crate::scatter::events::{
28        AsEventSink, EventSink, FnSink, KindEvaluationLite, MultiSink, OverlaySummary,
29        ScatterEvent, VecSink,
30    };
31    pub use crate::scatter::overlay::OverlayTexture;
32    pub use crate::scatter::plan::{Layer, Plan, SelectionStrategy};
33    pub use crate::scatter::runner::{
34        run_layer, run_plan, Placement, RunConfig, RunResult, ScatterRunner,
35    };
36    pub use crate::scatter::selection::{pick_highest_probability, pick_weighted_random};
37    pub use crate::scatter::{Kind, KindId};
38}