pub enum GeomTransf3 {
Linear3 {
vec_xz: [f64; 3],
},
PDelta3 {
vec_xz: [f64; 3],
},
}Expand description
GeomTransf’s spatial counterpart: builds a member’s local basis and
local↔global rotation from its two end-node coordinates and an
orientation vector (vec_xz): x = normalize(pJ - pI), y = normalize(vec_xz × x), z = x × y). Unlike planar GeomTransf, this
isn’t just a behavior flag: the local-axis construction is real,
nontrivial, and shared by every spatial frame element (ElasticBeamColumn3
today; DispBeamColumn3/ForceBeamColumn3 will reuse it once they
exist), so it’s a real type rather than something each element inlines a
copy of. Verified against Xara’s LinearCrdTransf3d.
Linear3 and PDelta3 are both “cheap” per the same reasoning as
planar GeomTransf’s doc comment — full spatial corotational geometry
is not yet supported, so it is not a third variant here.
Variants§
Linear3
Small-displacement: local/global relationship fixed at the member’s original (undeformed) orientation, no correction for the effect of axial force on bending stiffness.
Fields
PDelta3
Same small-displacement geometry as Linear3, plus a linearized
geometric-stiffness correction from the current axial force in
both bending planes (a first-order P-Delta effect) — not full
corotational tracking. See ElasticBeamColumn3::geometric_stiffness
for the actual correction; this variant only selects it.
Implementations§
Trait Implementations§
Source§impl Clone for GeomTransf3
impl Clone for GeomTransf3
Source§fn clone(&self) -> GeomTransf3
fn clone(&self) -> GeomTransf3
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for GeomTransf3
Source§impl Debug for GeomTransf3
impl Debug for GeomTransf3
Source§impl PartialEq for GeomTransf3
impl PartialEq for GeomTransf3
impl StructuralPartialEq for GeomTransf3
Auto Trait Implementations§
impl Freeze for GeomTransf3
impl RefUnwindSafe for GeomTransf3
impl Send for GeomTransf3
impl Sync for GeomTransf3
impl Unpin for GeomTransf3
impl UnsafeUnpin for GeomTransf3
impl UnwindSafe for GeomTransf3
Blanket Implementations§
impl<T> Boilerplate for T
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,
impl<T, U> Imply<T> for U
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.