Skip to main content

tilezz/analysis/
mod.rs

1//! Analysis layer: enumeration and classification of structure built on
2//! top of [`crate::geom`] primitives.
3//!
4//! Where `geom` provides the data shapes for tiles, patches, and
5//! boundary glues (`Rat`, `Snake`, `TileSet`, `GrowingPatch`,
6//! `glue_raw_angles`), the analysis layer asks **questions** about those
7//! shapes -- enumerating legal glues, classifying vertex configurations,
8//! finding fixed points of boundary subsequences, growing patches up to
9//! a maximum size.
10//!
11//! Modules:
12//!
13//! - [`matchfinder`]: legal-glue enumeration (`MatchFinder`, `BpSeed`)
14//!   -- the operational layer that bridges raw cyclic RC matching
15//!   (`stringmatch::BitParallelMatcher`) and geometric validation
16//!   (Snake / glue / junction checks).
17//! - [`matchtypes`]: catalog layer above `MatchFinder`
18//!   (`MatchTypeIndex`) -- pre-computes the full match enumeration
19//!   for a fixed tileset and indexes it for O(1) lookup.
20//! - [`vertextypes`]: BFS over open-vertex configurations of a tileset
21//!   (`OpenVertexTypeIndex`, `Collection`).
22//! - [`neighborhood`]: corona / phase-2 classification of local tile
23//!   neighborhoods (`NeighborhoodIndex`, `NtKind`, `Collection`).
24//! - [`patch_enum`]: layer-BFS enumeration of all distinct patches of a
25//!   tileset up to a given size.
26//! - [`seq_explorer`]: fixed-point enumeration of cyclic boundary
27//!   subsequences reachable from a tileset.
28
29pub mod matchfinder;
30pub mod matchtypes;
31pub mod neighborhood;
32pub mod patch_enum;
33pub mod seq_explorer;
34pub mod vertextypes;