#[non_exhaustive]pub struct BankedSection {
pub point: Point3,
pub tangent: Vec3,
pub lateral: Vec3,
pub up: Vec3,
pub cant: Scalar,
pub bank_angle: Scalar,
pub roll: Scalar,
pub pivot: Scalar,
pub grade: Scalar,
pub rail_head_distance: Scalar,
}Expand description
The section of a banked curve at one station.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.point: Point3The rotation point: the centreline point raised by the pivot.
tangent: Vec3Unit tangent of the banked curve.
lateral: Vec3Unit lateral axis, square to the tangent, towards the left rail head.
up: Vec3Unit section up, tangent x lateral.
cant: ScalarCant D: the left rail head above the right, as the law states it.
bank_angle: ScalarNominal bank angle psi = asin(D / b), radians.
roll: ScalarThe roll about the tangent the convention gives, radians: psi
itself for a rotation about the tangent.
pivot: ScalarElevation of the rotation point above the profile.
grade: ScalarGrade of the banked curve, dz/dd: the profile’s plus the pivot’s
rate.
rail_head_distance: ScalarRail-head distance b.
Implementations§
Source§impl BankedSection
impl BankedSection
Sourcepub fn frame(&self) -> Frame3
pub fn frame(&self) -> Frame3
The section as a frame, in the curve-evaluation contract’s layout:
x the tangent, y the section up, z = x x y (to the right).
Sourcepub fn rail_heads(&self) -> (Point3, Point3)
pub fn rail_heads(&self) -> (Point3, Point3)
Left and right rail heads, b / 2 either side of the rotation point
along the lateral axis.