RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
AccelerationUnit.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.Acceleration;
8
21public final class AccelerationUnit<D extends Unit> extends PerUnit<VelocityUnit<D>, TimeUnit> {
22 @SuppressWarnings({"rawtypes", "unchecked"})
24 new CombinatoryUnitCache<>(AccelerationUnit::new);
25
26 AccelerationUnit(VelocityUnit<D> velocity, TimeUnit period) {
27 super(
28 velocity.isBaseUnit() && period.isBaseUnit()
29 ? null
30 : combine(velocity.getBaseUnit(), period.getBaseUnit()),
31 velocity,
32 period);
33 }
34
35 AccelerationUnit(
36 AccelerationUnit<D> baseUnit,
37 UnaryFunction toBaseConverter,
38 UnaryFunction fromBaseConverter,
39 String name,
40 String symbol) {
41 super(baseUnit, toBaseConverter, fromBaseConverter, name, symbol);
42 }
43
44 @Override
45 public Acceleration<D> of(double magnitude) {
46 return new Acceleration<>(magnitude, toBaseUnits(magnitude), this);
47 }
48
49 @Override
50 public Acceleration<D> ofBaseUnits(double baseUnitMagnitude) {
51 return new Acceleration<>(fromBaseUnits(baseUnitMagnitude), baseUnitMagnitude, this);
52 }
53
54 @Override
55 @SuppressWarnings({"unchecked", "rawtypes"})
56 public Acceleration<D> zero() {
57 return (Acceleration<D>) (Acceleration) super.zero();
58 }
59
60 @Override
61 @SuppressWarnings({"unchecked", "rawtypes"})
62 public Acceleration<D> one() {
63 return (Acceleration<D>) (Acceleration) super.one();
64 }
65
66 @Override
68 return VelocityUnit.combine(this, time);
69 }
70
78 public <U extends Unit> PerUnit<AccelerationUnit<D>, U> per(U other) {
79 return PerUnit.combine(this, other);
80 }
81
89 public double convertFrom(double magnitude, AccelerationUnit<D> otherUnit) {
90 return fromBaseUnits(otherUnit.toBaseUnits(magnitude));
91 }
92
101 @SuppressWarnings("unchecked")
102 public static <D extends Unit> AccelerationUnit<D> combine(
103 VelocityUnit<D> velocity, TimeUnit period) {
104 return cache.combine(velocity, period);
105 }
106}
static< D extends Unit > AccelerationUnit< D > combine(VelocityUnit< D > velocity, TimeUnit period)
double convertFrom(double magnitude, AccelerationUnit< D > otherUnit)
boolean isBaseUnit()
Definition Unit.java:146
static< D extends Unit > VelocityUnit< D > combine(D unit, TimeUnit period)