TransitionConditionalProperties Class

A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.

  • The symmetry condition creates a relationship among the following 4 quantities:

** curvature0 = curvature (i.e. 1/radius) at start ** curvature1 = curvature (i.e. 1/radius) at end ** sweepRadians = signed turning angle from start to end ** arcLength = length of curve

  • The relationship is the equation

** sweepRadians = arcLength * average Curvature = arcLength * 0.5 * (curvature0 + curvature1)

  • That is, regardless of any curvature properties other than symmetry, specifying any 3 of the quantities fully determines the remaining one.

Methods

Name Description
constructor(radius0: undefined | number, radius1: undefined | number, bearing0: undefined | Angle, bearing1: undefined | Angle, arcLength: undefined | number): TransitionConditionalProperties capture numeric or undefined values  
applyScaleFactor(a: number): void Apply a NONZERO scale factor to all distances.  
clone(): TransitionConditionalProperties clone with all properties (i.e.  
getIsValidCompleteSet(): boolean Return true if all components are defined and agree equationally.  
isAlmostEqual(other?: TransitionConditionalProperties): boolean Test if this and other have matching numeric and undefined members.  
numDefinedProperties(): number return the number of defined values among the 5 properties.  
tryResolveAnySingleUnknown(): boolean Examine which properties are defined and compute the (single) undefined.  
areAlmostEqual(a: undefined | TransitionConditionalProperties, b: undefined | TransitionConditionalProperties): boolean Static    

Properties

Name Type Description
bearing0 undefined | Angle bearing at start, measured from x towards y  
bearing1 undefined | Angle bearing at end, measured from x towards y  
curveLength undefined | number curve length  
radius0 undefined | number radius (or 0 at start)  
radius1 undefined | number radius (or 0) at end  

Defined in

Last Updated: 30 November, 2023