RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
AngularMomentumUnit.java
1// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
4
5package org.wpilib.units;
6
7import org.wpilib.units.measure.AngularMomentum;
8
13public final class AngularMomentumUnit extends MultUnit<LinearMomentumUnit, DistanceUnit> {
15 cache = new CombinatoryUnitCache<>(AngularMomentumUnit::new);
16
17 AngularMomentumUnit(LinearMomentumUnit momentumUnit, DistanceUnit distanceUnit) {
18 super(
19 momentumUnit.isBaseUnit() && distanceUnit.isBaseUnit()
20 ? null
21 : combine(momentumUnit.getBaseUnit(), distanceUnit.getBaseUnit()),
22 momentumUnit,
23 distanceUnit);
24 }
25
26 AngularMomentumUnit(
27 AngularMomentumUnit baseUnit,
28 UnaryFunction toBaseConverter,
29 UnaryFunction fromBaseConverter,
30 String name,
31 String symbol) {
32 super(baseUnit, toBaseConverter, fromBaseConverter, name, symbol);
33 }
34
42 public static AngularMomentumUnit combine(LinearMomentumUnit linear, DistanceUnit distance) {
43 return cache.combine(linear, distance);
44 }
45
46 @Override
48 return (AngularMomentumUnit) super.getBaseUnit();
49 }
50
51 @Override
52 public AngularMomentum of(double magnitude) {
53 return new AngularMomentum(magnitude, toBaseUnits(magnitude), this);
54 }
55
56 @Override
57 public AngularMomentum ofBaseUnits(double baseUnitMagnitude) {
58 return new AngularMomentum(fromBaseUnits(baseUnitMagnitude), baseUnitMagnitude, this);
59 }
60
61 @Override
62 public AngularMomentum zero() {
63 return (AngularMomentum) super.zero();
64 }
65
66 @Override
67 public AngularMomentum one() {
68 return (AngularMomentum) super.one();
69 }
70
71 @Override
72 public VelocityUnit<AngularMomentumUnit> per(TimeUnit time) {
73 return VelocityUnit.combine(this, time);
74 }
75
83 return MomentOfInertiaUnit.combine(this, omega);
84 }
85
93 public <U extends Unit> PerUnit<AngularMomentumUnit, U> per(U other) {
94 return PerUnit.combine(this, other);
95 }
96
104 public double convertFrom(double magnitude, AngularMomentumUnit otherUnit) {
105 return fromBaseUnits(otherUnit.toBaseUnits(magnitude));
106 }
107}
static AngularMomentumUnit combine(LinearMomentumUnit linear, DistanceUnit distance)
MomentOfInertiaUnit per(AngularVelocityUnit omega)
double convertFrom(double magnitude, AngularMomentumUnit otherUnit)
CombinatoryUnitCache(BiFunction<? super A, ? super B, ? extends Out > constructor)
static MomentOfInertiaUnit combine(AngularMomentumUnit momentumUnit, AngularVelocityUnit velocityUnit)
static< N extends Unit, D extends Unit > PerUnit< N, D > combine(N numerator, D denominator)
Definition PerUnit.java:93
boolean isBaseUnit()
Definition Unit.java:146