RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
LinearMomentumUnit.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.LinearMomentum;
8
10public final class LinearMomentumUnit extends MultUnit<MassUnit, LinearVelocityUnit> {
12 cache = new CombinatoryUnitCache<>(LinearMomentumUnit::new);
13
14 LinearMomentumUnit(MassUnit unit, LinearVelocityUnit linearVelocityUnit) {
15 super(
16 unit.isBaseUnit() && linearVelocityUnit.isBaseUnit()
17 ? null
18 : combine(unit.getBaseUnit(), linearVelocityUnit.getBaseUnit()),
19 unit,
20 linearVelocityUnit);
21 }
22
23 LinearMomentumUnit(
24 MultUnit<MassUnit, LinearVelocityUnit> baseUnit,
25 UnaryFunction toBaseConverter,
26 UnaryFunction fromBaseConverter,
27 String name,
28 String symbol) {
29 super(baseUnit, toBaseConverter, fromBaseConverter, name, symbol);
30 }
31
39 public static LinearMomentumUnit combine(MassUnit mass, LinearVelocityUnit velocity) {
40 return cache.combine(mass, velocity);
41 }
42
43 @Override
45 return (LinearMomentumUnit) super.getBaseUnit();
46 }
47
48 @Override
49 public LinearMomentum of(double magnitude) {
50 return new LinearMomentum(magnitude, toBaseUnits(magnitude), this);
51 }
52
53 @Override
54 public LinearMomentum ofBaseUnits(double baseUnitMagnitude) {
55 return new LinearMomentum(fromBaseUnits(baseUnitMagnitude), baseUnitMagnitude, this);
56 }
57
58 @Override
59 public LinearMomentum zero() {
60 return (LinearMomentum) super.zero();
61 }
62
63 @Override
64 public LinearMomentum one() {
65 return (LinearMomentum) super.one();
66 }
67
68 @Override
69 public VelocityUnit<LinearMomentumUnit> per(TimeUnit time) {
70 return VelocityUnit.combine(this, time);
71 }
72
80 public <U extends Unit> PerUnit<LinearMomentumUnit, U> per(U other) {
81 return PerUnit.combine(this, other);
82 }
83
91 public double convertFrom(double magnitude, LinearMomentumUnit otherUnit) {
92 return fromBaseUnits(otherUnit.toBaseUnits(magnitude));
93 }
94
102 return AngularMomentumUnit.combine(this, distance);
103 }
104}
static AngularMomentumUnit combine(LinearMomentumUnit linear, DistanceUnit distance)
CombinatoryUnitCache(BiFunction<? super A, ? super B, ? extends Out > constructor)
AngularMomentumUnit mult(DistanceUnit distance)
double convertFrom(double magnitude, LinearMomentumUnit otherUnit)
static LinearMomentumUnit combine(MassUnit mass, LinearVelocityUnit velocity)
Measure<? extends MultUnit< A, B > > zero()
boolean isBaseUnit()
Definition Unit.java:146