pub struct OrigamiAnalysis;Expand description
Analysis tools for folded origami surfaces.
Computes geometric properties such as Gaussian curvature (angle deficit at vertices) and the effective Poisson’s ratio of the tessellation.
Implementations§
Source§impl OrigamiAnalysis
impl OrigamiAnalysis
Sourcepub fn angle_deficit(sector_angles: &[f64]) -> f64
pub fn angle_deficit(sector_angles: &[f64]) -> f64
Compute the angle deficit (discrete Gaussian curvature) at a vertex, given the sector angles (in radians) of the faces meeting at that vertex.
For a flat sheet the deficit is 0; a cone tip has a positive deficit.
Sourcepub fn kawasaki_residual(sector_angles: &[f64]) -> f64
pub fn kawasaki_residual(sector_angles: &[f64]) -> f64
Check Kawasaki’s theorem for a crease pattern at an interior vertex.
For flat-foldability the alternating sum of sector angles must equal π. Returns the residual (should be ≈ 0 for a flat-foldable vertex).
Sourcepub fn maekawa_valid(mountain_count: usize, valley_count: usize) -> bool
pub fn maekawa_valid(mountain_count: usize, valley_count: usize) -> bool
Check Maekawa’s theorem: at an interior vertex the number of mountain folds and valley folds must differ by exactly 2.
Sourcepub fn miura_poisson_ratio(alpha: f64, theta: f64) -> f64
pub fn miura_poisson_ratio(alpha: f64, theta: f64) -> f64
Compute the effective in-plane Poisson’s ratio of a Miura-ori sheet.
Uses the analytical closed form for the Miura-ori.
Sourcepub fn fold_bending_energy(k: f64, length: f64, theta: f64) -> f64
pub fn fold_bending_energy(k: f64, length: f64, theta: f64) -> f64
Estimate the bending energy of a fold line given fold angle and panel stiffness.
k is the rotational stiffness per unit length (N·m/m), length is the
crease length (m), theta is the fold angle (radians).
Trait Implementations§
Source§impl Clone for OrigamiAnalysis
impl Clone for OrigamiAnalysis
Source§fn clone(&self) -> OrigamiAnalysis
fn clone(&self) -> OrigamiAnalysis
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for OrigamiAnalysis
impl RefUnwindSafe for OrigamiAnalysis
impl Send for OrigamiAnalysis
impl Sync for OrigamiAnalysis
impl Unpin for OrigamiAnalysis
impl UnsafeUnpin for OrigamiAnalysis
impl UnwindSafe for OrigamiAnalysis
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.