RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
PowerUnit.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 static org.wpilib.units.Units.Joules;
8import static org.wpilib.units.Units.Seconds;
9
10import org.wpilib.units.measure.Power;
11
21public final class PowerUnit extends PerUnit<EnergyUnit, TimeUnit> {
23 new CombinatoryUnitCache<>(PowerUnit::new);
24
25 PowerUnit(EnergyUnit energy, TimeUnit time) {
26 super(
27 energy.isBaseUnit() && time.isBaseUnit()
28 ? null
29 : combine(energy.getBaseUnit(), time.getBaseUnit()),
30 energy,
31 time);
32 }
33
34 PowerUnit(
35 PowerUnit baseUnit,
36 UnaryFunction toBaseConverter,
37 UnaryFunction fromBaseConverter,
38 String name,
39 String symbol) {
40 super(baseUnit, toBaseConverter, fromBaseConverter, name, symbol);
41 }
42
50 public static PowerUnit combine(EnergyUnit energy, TimeUnit period) {
51 return cache.combine(energy, period);
52 }
53
61 public static PowerUnit combine(VoltageUnit voltage, CurrentUnit current) {
62 return combine(
63 new EnergyUnit(
64 Joules,
65 voltage.toBaseUnits(1) * current.toBaseUnits(1),
66 voltage.name() + "-" + current.name(),
67 voltage.symbol() + "*" + current.symbol()),
68 Seconds);
69 }
70
78 public static PowerUnit combine(CurrentUnit current, VoltageUnit voltage) {
79 return combine(voltage, current);
80 }
81
89 public static PowerUnit combine(AngularVelocityUnit angularVelocity, TorqueUnit torque) {
90 return combine(
91 new EnergyUnit(Joules, angularVelocity.toBaseUnits(1) * torque.toBaseUnits(1), "", ""),
92 Seconds);
93 }
94
102 public static PowerUnit combine(TorqueUnit torque, AngularVelocityUnit angularVelocity) {
103 return combine(angularVelocity, torque);
104 }
105
106 @Override
107 public PowerUnit getBaseUnit() {
108 return (PowerUnit) super.getBaseUnit();
109 }
110
111 @Override
112 public Power of(double magnitude) {
113 return new Power(magnitude, toBaseUnits(magnitude), this);
114 }
115
116 @Override
117 public Power ofBaseUnits(double baseUnitMagnitude) {
118 return new Power(fromBaseUnits(baseUnitMagnitude), baseUnitMagnitude, this);
119 }
120
121 @Override
122 public Power zero() {
123 return (Power) super.zero();
124 }
125
126 @Override
127 public Power one() {
128 return (Power) super.one();
129 }
130
131 @Override
132 public VelocityUnit<PowerUnit> per(TimeUnit time) {
133 return VelocityUnit.combine(this, time);
134 }
135
143 public <U extends Unit> PerUnit<PowerUnit, U> per(U other) {
144 return PerUnit.combine(this, other);
145 }
146
154 public double convertFrom(double magnitude, PowerUnit otherUnit) {
155 return fromBaseUnits(otherUnit.toBaseUnits(magnitude));
156 }
157}
CombinatoryUnitCache(BiFunction<? super A, ? super B, ? extends Out > constructor)
Measure<? extends PerUnit< N, D > > zero()
Definition PerUnit.java:212
static PowerUnit combine(AngularVelocityUnit angularVelocity, TorqueUnit torque)
static PowerUnit combine(EnergyUnit energy, TimeUnit period)
static PowerUnit combine(VoltageUnit voltage, CurrentUnit current)
static PowerUnit combine(TorqueUnit torque, AngularVelocityUnit angularVelocity)
double convertFrom(double magnitude, PowerUnit otherUnit)
static PowerUnit combine(CurrentUnit current, VoltageUnit voltage)
double toBaseUnits(double valueInNativeUnits)
Definition Unit.java:166
boolean isBaseUnit()
Definition Unit.java:146