pub trait Bounded<T: TangentBundle<P, V>, P: Point, V: Euclidean>:
TangentBundle<P, V>
+ From<T>
+ AsRef<T> {
// Required method
fn sdf(&self, v: &V) -> V::F;
}Expand description
Restricts the domain of Chart::to_local to some subset
defined by a signed distance function in the tangent space
at each point on a TangentBundle.
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl Bounded<So3<Coords<R64, 3>>, So3<Coords<R64, 3>>, Coords<R64, 3>> for So3Cover
Radius of the geodesic-ball domains of So3Cover.
The 60 nodes are the icosahedral rotation group I ≅ A₅ ⊂ SO(3) — the
image of the 120 icosian unit quaternions (the vertices of the 600-cell)
under the double cover S³ → SO(3). In the bi-invariant metric
d = |identity_log| (half the rotation angle; diameter π/2), the
pairwise distances realised between nodes are exactly
π/5 ≈ 0.628, π/3 ≈ 1.047, 2π/5 ≈ 1.257, π/2 ≈ 1.571and the covering radius of the node set is ≈ 0.3857 (the circumradius of a cell of the 600-cell). The radius ρ = 0.42 is chosen so that:
- covering: ρ > 0.3857, so the 60 open balls cover SO(3);
- goodness: ρ < π/4, the convexity radius of SO(3) ≅ RP³, so every ball is geodesically convex and all intersections of balls are convex, hence contractible or empty — an open good cover;
- faithful 1-skeleton: two equal balls overlap iff their centres are closer than 2ρ = 0.84, which separates π/5 from π/3 with a wide margin on both sides — the nerve’s edges are exactly the 600-cell’s edges (mod ±1), and the computation is robust to floating-point error;
- faithful 2-skeleton: every triangle of the overlap graph is an equilateral triangle of side π/5 with spherical circumradius ≈ 0.365 < ρ, so all three balls genuinely share a point — mutual pairwise overlap coincides with triple intersection, and the triangles of the nerve are exactly the 600-cell’s 2-faces (mod ±1).
The nerve of this cover is therefore the hemi-600-cell: the classical vertex-transitive 60-vertex triangulation of RP³ with f-vector (60, 360, 600, 300), obtained from the boundary complex of the 600-cell by identifying antipodes. By the nerve theorem the nerve is homotopy equivalent to SO(3), and π₁ computed from its 2-skeleton is ⟨x | x²⟩ ≅ Z/2Z.