RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
VelocityUnit.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.Velocity;
8
19public final class VelocityUnit<D extends Unit> extends PerUnit<D, TimeUnit> {
20 @SuppressWarnings("rawtypes")
22 new CombinatoryUnitCache<>(VelocityUnit::new);
23
24 @SuppressWarnings("unchecked")
25 VelocityUnit(D numerator, TimeUnit denominator) {
26 super(
27 numerator.isBaseUnit() && denominator.isBaseUnit()
28 ? null
29 : combine((D) numerator.getBaseUnit(), denominator.getBaseUnit()),
32 }
33
34 VelocityUnit(
35 VelocityUnit<D> baseUnit,
36 UnaryFunction toBaseConverter,
37 UnaryFunction fromBaseConverter,
38 String name,
39 String symbol) {
40 super(baseUnit, toBaseConverter, fromBaseConverter, name, symbol);
41 }
42
51 @SuppressWarnings("unchecked")
52 public static <D extends Unit> VelocityUnit<D> combine(D unit, TimeUnit period) {
53 return cache.combine(unit, period);
54 }
55
56 @Override
58 return (VelocityUnit<D>) super.getBaseUnit();
59 }
60
66 public D getUnit() {
67 return numerator();
68 }
69
76 return denominator();
77 }
78
79 @Override
80 public Velocity<D> of(double magnitude) {
81 return new Velocity<>(magnitude, toBaseUnits(magnitude), this);
82 }
83
84 @Override
85 public Velocity<D> ofBaseUnits(double baseUnitMagnitude) {
86 return new Velocity<>(fromBaseUnits(baseUnitMagnitude), baseUnitMagnitude, this);
87 }
88
89 @Override
90 @SuppressWarnings("unchecked")
91 public Velocity<D> zero() {
92 return (Velocity<D>) super.zero();
93 }
94
95 @Override
96 @SuppressWarnings("unchecked")
97 public Velocity<D> one() {
98 return (Velocity<D>) super.one();
99 }
100
107 @Override
109 return AccelerationUnit.combine(this, period);
110 }
111
119 public <U extends Unit> PerUnit<VelocityUnit<D>, U> per(U other) {
120 return PerUnit.combine(this, other);
121 }
122
130 public double convertFrom(double magnitude, VelocityUnit<? extends D> otherUnit) {
131 return fromBaseUnits(otherUnit.toBaseUnits(magnitude));
132 }
133}
static< D extends Unit > AccelerationUnit< D > combine(VelocityUnit< D > velocity, TimeUnit period)
CombinatoryUnitCache(BiFunction<? super A, ? super B, ? extends Out > constructor)
static< N extends Unit, D extends Unit > PerUnit< N, D > combine(N numerator, D denominator)
Definition PerUnit.java:93
Measure<? extends PerUnit< N, D > > zero()
Definition PerUnit.java:212
Measure<? extends PerUnit< N, D > > one()
Definition PerUnit.java:218
boolean isBaseUnit()
Definition Unit.java:146
AccelerationUnit< D > per(TimeUnit period)
static< D extends Unit > VelocityUnit< D > combine(D unit, TimeUnit period)
double convertFrom(double magnitude, VelocityUnit<? extends D > otherUnit)