Skip to content

Commit ae8294e

Browse files
committed
add jerk units
1 parent cbf14a7 commit ae8294e

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

src/main/kotlin/org/team4099/lib/units/Derivatives.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ typealias Velocity<K> = Fraction<K, Second>
1212

1313
typealias Acceleration<K> = Fraction<Velocity<K>, Second>
1414

15+
typealias Jerk<K> = Fraction<Acceleration<K>, Second>
16+
1517
typealias LinearVelocity = Value<Velocity<Meter>>
1618

1719
typealias AngularVelocity = Value<Velocity<Radian>>
@@ -20,6 +22,10 @@ typealias LinearAcceleration = Value<Acceleration<Meter>>
2022

2123
typealias AngularAcceleration = Value<Acceleration<Radian>>
2224

25+
typealias LinearJerk = Value<Jerk<Meter>>
26+
27+
typealias AngularJerk = Value<Jerk<Radian>>
28+
2329
inline val <K : UnitKey> Value<K>.perSecond
2430
get() = Value<Velocity<K>>(value)
2531

@@ -73,3 +79,27 @@ inline val AngularAcceleration.inRotationsPerSecondPerSecond: Double
7379

7480
inline val AngularAcceleration.inRotationsPerMinutePerMinute: Double
7581
get() = value * SECONDS_PER_MINUTE * SECONDS_PER_MINUTE / (2 * PI)
82+
83+
inline val LinearJerk.inMetersPerSecondPerSecondPerSecond: Double
84+
get() = value
85+
86+
inline val LinearJerk.inFeetPerSecondPerSecondPerSecond: Double
87+
get() = value / METERS_PER_FOOT
88+
89+
inline val LinearJerk.inFeetPerMinutePerSecondPerSecond: Double
90+
get() = inFeetPerSecondPerSecondPerSecond * SECONDS_PER_MINUTE
91+
92+
inline val LinearJerk.inInchesPerSecondPerSecondPerSecond: Double
93+
get() = value / METERS_PER_INCH
94+
95+
inline val AngularJerk.inRadiansPerSecondPerSecondPerSecond: Double
96+
get() = value
97+
98+
inline val AngularJerk.inDegreesPerSecondPerSecondPerSecond: Double
99+
get() = Math.toDegrees(value)
100+
101+
inline val AngularJerk.inRotationsPerSecondPerSecondPerSecond: Double
102+
get() = value / (2 * PI)
103+
104+
inline val AngularJerk.inRotationsPerMinutePerMinutePerMinute: Double
105+
get() = value * SECONDS_PER_MINUTE * SECONDS_PER_MINUTE * SECONDS_PER_MINUTE / (2 * PI)

0 commit comments

Comments
 (0)