RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
ForceUnit.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.Force;
8
10public final class ForceUnit extends MultUnit<MassUnit, LinearAccelerationUnit> {
12 new CombinatoryUnitCache<>(ForceUnit::new);
13
14 ForceUnit(MassUnit mass, LinearAccelerationUnit acceleration) {
15 super(
16 mass.isBaseUnit() && acceleration.isBaseUnit()
17 ? null
18 : combine(mass.getBaseUnit(), acceleration.getBaseUnit()),
19 mass,
20 acceleration);
21 }
22
23 ForceUnit(
24 ForceUnit 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 ForceUnit combine(MassUnit mass, LinearAccelerationUnit acceleration) {
40 return cache.combine(mass, acceleration);
41 }
42
43 @Override
44 public ForceUnit getBaseUnit() {
45 return (ForceUnit) super.getBaseUnit();
46 }
47
55 return TorqueUnit.combine(distance, this);
56 }
57
58 // TODO: Add a multAsEnergy equivalent
59
60 @Override
61 public Force of(double magnitude) {
62 return new Force(magnitude, toBaseUnits(magnitude), this);
63 }
64
65 @Override
66 public Force ofBaseUnits(double baseUnitMagnitude) {
67 return new Force(toBaseUnits(baseUnitMagnitude), baseUnitMagnitude, this);
68 }
69
70 @Override
71 public Force zero() {
72 return (Force) super.zero();
73 }
74
75 @Override
76 public Force one() {
77 return (Force) super.one();
78 }
79
80 @Override
81 public VelocityUnit<ForceUnit> per(TimeUnit time) {
82 return VelocityUnit.combine(this, time);
83 }
84
92 public <U extends Unit> PerUnit<ForceUnit, U> per(U other) {
93 return PerUnit.combine(this, other);
94 }
95
103 public double convertFrom(double magnitude, ForceUnit otherUnit) {
104 return fromBaseUnits(otherUnit.toBaseUnits(magnitude));
105 }
106}
CombinatoryUnitCache(BiFunction<? super A, ? super B, ? extends Out > constructor)
TorqueUnit multAsTorque(DistanceUnit distance)
double convertFrom(double magnitude, ForceUnit otherUnit)
static ForceUnit combine(MassUnit mass, LinearAccelerationUnit acceleration)
static TorqueUnit combine(DistanceUnit distance, ForceUnit force)
boolean isBaseUnit()
Definition Unit.java:146