mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Unit objects now have a reference to the base unit from which they're derived. Constructing a unit object without specifying a base unit implicitly signifies that it's its own base unit, eg new Angle(null, 1, "Radian", "rad") would be the base angle unit of radians, while new Angle(Radians, 2 * PI, "Rotation", "R") would be a new angle unit based on radians. This fixes much of the hacky code surrounding the derived unit types Velocity, Per, and Mult, but is a breaking change for any user code that defines custom unit classes or uses the anonymous unit type.
30 lines
970 B
Java
30 lines
970 B
Java
// Copyright (c) FIRST and other WPILib contributors.
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
package edu.wpi.first.units;
|
|
|
|
/**
|
|
* Unit of energy dimension.
|
|
*
|
|
* <p>This is the base type for units of energy dimension. It is also used to specify the dimension
|
|
* for {@link Measure}: <code>Measure<Energy></code>.
|
|
*
|
|
* <p>Actual units (such as {@link Units#Joules} and {@link Units#Kilojoules}) can be found in the
|
|
* {@link Units} class.
|
|
*/
|
|
public class Energy extends Unit<Energy> {
|
|
Energy(
|
|
Energy baseUnit,
|
|
UnaryFunction toBaseConverter,
|
|
UnaryFunction fromBaseConverter,
|
|
String name,
|
|
String symbol) {
|
|
super(baseUnit, toBaseConverter, fromBaseConverter, name, symbol);
|
|
}
|
|
|
|
Energy(Energy baseUnit, double baseUnitEquivalent, String name, String symbol) {
|
|
super(baseUnit, baseUnitEquivalent, name, symbol);
|
|
}
|
|
}
|