Package edu.wpi.first.units
Class PerUnit<N extends Unit,D extends Unit>
java.lang.Object
edu.wpi.first.units.Unit
edu.wpi.first.units.PerUnit<N,D>
- Type Parameters:
N
- the type of the numerator unitD
- the type of the denominator unit
- Direct Known Subclasses:
AccelerationUnit
,AngularAccelerationUnit
,AngularVelocityUnit
,FrequencyUnit
,LinearAccelerationUnit
,LinearVelocityUnit
,MomentOfInertiaUnit
,PowerUnit
,ResistanceUnit
,VelocityUnit
Generic combinatory unit type that represents the proportion of one unit to another, such as
Meters per Second or Radians per Celsius.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncombine
(N numerator, D denominator) Creates a new PerUnit unit derived from an arbitrary numerator and time denominator units.double
convertFrom
(double magnitude, PerUnit<? extends N, ? extends D> otherUnit) Converts a measurement value in terms of another unit to this unit.Gets the denominator unit.boolean
Gets the base unit of measurement that this unit is derived from.int
hashCode()
Multiplies this unit by a unit of its denominator.MutableMeasure<? extends PerUnit<N,
D>, ?, ?> mutable
(double initialMagnitude) Creates a new mutable measurement that is initialized to the given magnitude in terms of this unit.mutableNative
(double initialMagnitude) Creates a new mutable measurement of the given magnitude in terms of the ratio unit.Gets the numerator unit.of
(double magnitude) Creates a new immutable measurement of the given magnitude in terms of this unit.ofBaseUnits
(double baseUnitMagnitude) Creates a new immutable measurement of the given magnitude in terms of this unit's base unit.ofNative
(double magnitude) Creates a new immutable measurement of the given magnitude in terms of the ratio unit.ofNativeBaseUnits
(double baseUnitMagnitude) Creates a new immutable measurement of the given magnitude in terms of the ratio unit's base unit.one()
Gets a measure with a magnitude of 1.0 in terms of this unit.Combines this unit with a unit of time.Returns the reciprocal of this PerUnit.zero()
Gets a measure of zero magnitude in terms of this unit.Methods inherited from class edu.wpi.first.units.Unit
equivalent, fromBaseUnits, getConverterFromBase, getConverterToBase, isBaseUnit, name, symbol, toBaseUnits, toString
-
Constructor Details
-
PerUnit
Creates a new proportional unit derived from the ratio of one unit to another. Subclasses ofPerUnit
should use this constructor.- Parameters:
baseUnit
- the base unit. Set this to null if the unit being constructed is its own base unitnumerator
- the numerator unitdenominator
- the denominator unit
-
-
Method Details
-
combine
Creates a new PerUnit unit derived from an arbitrary numerator and time denominator units.PerUnit.combine(Volts, Meters) // possible PID constant
- Type Parameters:
N
- the type of the numerator unitD
- the type of the denominator unit- Parameters:
numerator
- the numerator unitdenominator
- the denominator for unit time- Returns:
- the combined unit
-
getBaseUnit
Description copied from class:Unit
Gets the base unit of measurement that this unit is derived from. If the unit is the base unit, the unit will be returned.NOTE: Subclasses must override this method to provide the correct return type. Failing to do say will make unit combinations that use it break at runtime!
Unit baseUnit = new Unit(null, ...); baseUnit.getBaseUnit(); // returns baseUnit Unit derivedUnit = new Unit(baseUnit, ...); derivedUnit.getBaseUnit(); // returns baseUnit
- Overrides:
getBaseUnit
in classUnit
- Returns:
- the base unit
-
numerator
Gets the numerator unit. For aPerUnit<A, B>
, this will return theA
unit.- Returns:
- the numerator unit
-
denominator
Gets the denominator unit. For aPerUnit<A, B>
, this will return theB
unit.- Returns:
- the denominator unit
-
reciprocal
Returns the reciprocal of this PerUnit.- Returns:
- the reciprocal
-
mult
Multiplies this unit by a unit of its denominator.- Parameters:
denom
- the denominator-typed unit to multiply by- Returns:
- the result
-
of
Creates a new immutable measurement of the given magnitude in terms of this unit. Implementations are strongly recommended to sharpen the return type to a unit-specific measurement implementation.Note: When called on an object of type
PerUnit
(and not a subclass!), this method will always return aPer
instance. If you want to avoid casting, useofNative(double)
that returns aPer
instance directly. -
ofBaseUnits
Creates a new immutable measurement of the given magnitude in terms of this unit's base unit. Implementations are strongly recommended to sharpen the return type to a unit-specific measurement implementation.Note: When called on an object of type
PerUnit
(and not a subclass!), this method will always return aPer
instance. If you want to avoid casting, useofNativeBaseUnits(double)
that returns aPer
instance directly.- Specified by:
ofBaseUnits
in classUnit
- Parameters:
baseUnitMagnitude
- the magnitude of the measure in terms of its base units.- Returns:
- the ratio measure
-
ofNative
Creates a new immutable measurement of the given magnitude in terms of the ratio unit. This will always return aPer
object and cannot be overridden by subclasses.- Parameters:
magnitude
- the magnitude of the measurement.- Returns:
- the measurement object
- See Also:
-
ofNativeBaseUnits
Creates a new immutable measurement of the given magnitude in terms of the ratio unit's base unit. This will always return aPer
object and cannot be overridden by subclasses.- Parameters:
baseUnitMagnitude
- the magnitude of the measure in terms of its base units.- Returns:
- the measurement object
- See Also:
-
zero
Description copied from class:Unit
Gets a measure of zero magnitude in terms of this unit. The returned object is guaranteed to be of the same type returned byUnit.of(double)
. Subclasses are encouraged to override this method to sharpen the return type. -
one
Description copied from class:Unit
Gets a measure with a magnitude of 1.0 in terms of this unit. The returned object is guaranteed to be of the same type returned byUnit.of(double)
. Subclasses are encouraged to override this method to sharpen the return type. -
mutable
Creates a new mutable measurement that is initialized to the given magnitude in terms of this unit. Implementations are strongly recommended to sharpen the return type to a unit-specific measurement implementation.Note: When called on an object of type
PerUnit
(and not a subclass!), this method will always return aMutPer
instance. -
mutableNative
Creates a new mutable measurement of the given magnitude in terms of the ratio unit. This will always return aPer
object and cannot be overridden by subclasses.- Parameters:
initialMagnitude
- the starting magnitude of the measure- Returns:
- the ratio measure
- See Also:
-
per
Description copied from class:Unit
Combines this unit with a unit of time. This often - but not always - results in a velocity. Subclasses should sharpen the return type to be unit-specific. -
convertFrom
Converts a measurement value in terms of another unit to this unit.- Parameters:
magnitude
- the magnitude of the measurement in terms of the other unitotherUnit
- the other unit- Returns:
- the value of the measurement in terms of this unit
-
equals
-
hashCode
-