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;