1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// devela/src/geom/dir/_.rs
//
// public
//!
//! This module distinguishes angular, component-based,
//! and region-relative forms of direction.
//!
//! ```text
//! Angle
//! ├── interpreted by ──> AngleDirection
//! └── classified by ──> AngleKind
//!
//! Orientation<T, D> component-based spatial direction
//!
//! Boundary1d
//! Boundary2d discrete side or face of a bounded region
//! Boundary3d
//! ```
//!
//! [`Angle`] represents a fraction of a full rotation without committing its
//! stored value to degrees or radians. [`AngleDirection`] describes rotational
//! sign, while [`AngleKind`] classifies the normalized turn as full, acute,
//! right, obtuse, straight, or reflex.
//!
//! [`Orientation`] represents a direction through dimensional components,
//! without an absolute position or inherent magnitude. Orientations are
//! commonly normalized, but the type does not enforce normalization.
//!
//! [`Boundary1d`], [`Boundary2d`], and [`Boundary3d`] identify sides or faces
//! relative to a bounded region. They are discrete labels and do not imply
//! movement, distance, or a free-standing directional vector.
//!
//! One-, two-, and three-dimensional orientation aliases are provided together
//! with the [`ori!`] construction macro.
//!
//! # Boundaries
//!
//! - Positions, distances, extents, regions, and strides belong to [`geom::metric`].
//! - Coordinate frames and transformations belong to [`geom::affine`].
//! - Concrete geometric objects belong to [`geom::fig`].
//!
//! They define no navigation policy, object-facing state,
//! global coordinate frame, zero-angle axis, or transform pipeline.
//!
//! [`geom::fig`]: crate::geom::fig
//! [`geom::affine`]: crate::geom::affine
//! [`geom::metric`]: crate::geom::metric
//
cratemods_in!
cratemods_out!