mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Add predefined measurement classes
This commit is contained in:
parent
9f84664b05
commit
ea074469c1
2 changed files with 336 additions and 5 deletions
|
@ -79,6 +79,338 @@ extern "C" {
|
|||
|
||||
@end
|
||||
|
||||
// Predefined....
|
||||
@interface NSUnitAcceleration : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - metersPerSecondSquared
|
||||
*/
|
||||
|
||||
- (NSUnitAcceleration *)metersPerSecondSquared;
|
||||
- (NSUnitAcceleration *)gravity;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitAngle : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - degrees
|
||||
*/
|
||||
|
||||
- (NSUnitAngle *)degrees;
|
||||
- (NSUnitAngle *)arcMinutes;
|
||||
- (NSUnitAngle *)arcSeconds;
|
||||
- (NSUnitAngle *)radians;
|
||||
- (NSUnitAngle *)gradians;
|
||||
- (NSUnitAngle *)revolutions;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitArea : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - squareMeters
|
||||
*/
|
||||
|
||||
- (NSUnitArea *)squareMegameters;
|
||||
- (NSUnitArea *)squareKilometers;
|
||||
- (NSUnitArea *)squareMeters;
|
||||
- (NSUnitArea *)squareCentimeters;
|
||||
- (NSUnitArea *)squareMillimeters;
|
||||
- (NSUnitArea *)squareMicrometers;
|
||||
- (NSUnitArea *)squareNanometers;
|
||||
- (NSUnitArea *)squareInches;
|
||||
- (NSUnitArea *)squareFeet;
|
||||
- (NSUnitArea *)squareYards;
|
||||
- (NSUnitArea *)squareMiles;
|
||||
- (NSUnitArea *)acres;
|
||||
- (NSUnitArea *)ares;
|
||||
- (NSUnitArea *)hectares;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitConcentrationMass : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - gramsPerLiter
|
||||
*/
|
||||
|
||||
- (NSUnitConcentrationMass *)gramsPerLiter;
|
||||
- (NSUnitConcentrationMass *)milligramsPerDeciliter;
|
||||
|
||||
+ (NSUnitConcentrationMass *)millimolesPerLiterWithGramsPerMole:(double)gramsPerMole;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitDispersion : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - partsPerMillion
|
||||
*/
|
||||
- (NSUnitDispersion *)partsPerMillion;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitDuration : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - seconds
|
||||
*/
|
||||
|
||||
- (NSUnitDuration *)seconds;
|
||||
- (NSUnitDuration *)minutes;
|
||||
- (NSUnitDuration *)hours;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitElectricCharge : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - coulombs
|
||||
*/
|
||||
|
||||
- (NSUnitElectricCharge *)coulombs;
|
||||
- (NSUnitElectricCharge *)megaampereHours;
|
||||
- (NSUnitElectricCharge *)kiloampereHours;
|
||||
- (NSUnitElectricCharge *)ampereHours;
|
||||
- (NSUnitElectricCharge *)milliampereHours;
|
||||
- (NSUnitElectricCharge *)microampereHours;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitElectricCurrent : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - amperes
|
||||
*/
|
||||
|
||||
- (NSUnitElectricCurrent *)megaamperes;
|
||||
- (NSUnitElectricCurrent *)kiloamperes;
|
||||
- (NSUnitElectricCurrent *)amperes;
|
||||
- (NSUnitElectricCurrent *)milliamperes;
|
||||
- (NSUnitElectricCurrent *)microamperes;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitElectricPotentialDifference : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - volts
|
||||
*/
|
||||
|
||||
- (NSUnitElectricPotentialDifference *)megavolts;
|
||||
- (NSUnitElectricPotentialDifference *)kilovolts;
|
||||
- (NSUnitElectricPotentialDifference *)volts;
|
||||
- (NSUnitElectricPotentialDifference *)millivolts;
|
||||
- (NSUnitElectricPotentialDifference *)microvolts;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitElectricResistance : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - ohms
|
||||
*/
|
||||
|
||||
- (NSUnitElectricResistance *)megaohms;
|
||||
- (NSUnitElectricResistance *)kiloohms;
|
||||
- (NSUnitElectricResistance *)ohms;
|
||||
- (NSUnitElectricResistance *)milliohms;
|
||||
- (NSUnitElectricResistance *)microohms;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitEnergy : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - joules
|
||||
*/
|
||||
|
||||
- (NSUnitEnergy *)kilojoules;
|
||||
- (NSUnitEnergy *)joules;
|
||||
- (NSUnitEnergy *)kilocalories;
|
||||
- (NSUnitEnergy *)calories;
|
||||
- (NSUnitEnergy *)kilowattHours;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitFrequency : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - hertz
|
||||
*/
|
||||
|
||||
- (NSUnitFrequency *)terahertz;
|
||||
- (NSUnitFrequency *)gigahertz;
|
||||
- (NSUnitFrequency *)megahertz;
|
||||
- (NSUnitFrequency *)kilohertz;
|
||||
- (NSUnitFrequency *)hertz;
|
||||
- (NSUnitFrequency *)millihertz;
|
||||
- (NSUnitFrequency *)microhertz;
|
||||
- (NSUnitFrequency *)nanohertz;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitFuelEfficiency : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - litersPer100Kilometers
|
||||
*/
|
||||
|
||||
- (NSUnitFuelEfficiency *)litersPer100Kilometers;
|
||||
- (NSUnitFuelEfficiency *)milesPerImperialGallon;
|
||||
- (NSUnitFuelEfficiency *)milesPerGallon;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitLength : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - meters
|
||||
*/
|
||||
|
||||
- (NSUnitLength *)megameters;
|
||||
- (NSUnitLength *)kilometers;
|
||||
- (NSUnitLength *)hectometers;
|
||||
- (NSUnitLength *)decameters;
|
||||
- (NSUnitLength *)meters;
|
||||
- (NSUnitLength *)decimeters;
|
||||
- (NSUnitLength *)centimeters;
|
||||
- (NSUnitLength *)millimeters;
|
||||
- (NSUnitLength *)micrometers;
|
||||
- (NSUnitLength *)nanometers;
|
||||
- (NSUnitLength *)picometers;
|
||||
- (NSUnitLength *)inches;
|
||||
- (NSUnitLength *)feet;
|
||||
- (NSUnitLength *)yards;
|
||||
- (NSUnitLength *)miles;
|
||||
- (NSUnitLength *)scandinavianMiles;
|
||||
- (NSUnitLength *)lightyears;
|
||||
- (NSUnitLength *)nauticalMiles;
|
||||
- (NSUnitLength *)fathoms;
|
||||
- (NSUnitLength *)furlongs;
|
||||
- (NSUnitLength *)astronomicalUnits;
|
||||
- (NSUnitLength *)parsecs;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitIlluminance : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - lux
|
||||
*/
|
||||
|
||||
- (NSUnitIlluminance *)lux;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitMass : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - kilograms
|
||||
*/
|
||||
|
||||
- (NSUnitMass *)kilograms;
|
||||
- (NSUnitMass *)grams;
|
||||
- (NSUnitMass *)decigrams;
|
||||
- (NSUnitMass *)centigrams;
|
||||
- (NSUnitMass *)milligrams;
|
||||
- (NSUnitMass *)micrograms;
|
||||
- (NSUnitMass *)nanograms;
|
||||
- (NSUnitMass *)picograms;
|
||||
- (NSUnitMass *)ounces;
|
||||
- (NSUnitMass *)poundsMass;
|
||||
- (NSUnitMass *)stones;
|
||||
- (NSUnitMass *)metricTons;
|
||||
- (NSUnitMass *)shortTons;
|
||||
- (NSUnitMass *)carats;
|
||||
- (NSUnitMass *)ouncesTroy;
|
||||
- (NSUnitMass *)slugs;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitPower : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - watts
|
||||
*/
|
||||
|
||||
- (NSUnitPower *)terawatts;
|
||||
- (NSUnitPower *)gigawatts;
|
||||
- (NSUnitPower *)megawatts;
|
||||
- (NSUnitPower *)kilowatts;
|
||||
- (NSUnitPower *)watts;
|
||||
- (NSUnitPower *)milliwatts;
|
||||
- (NSUnitPower *)microwatts;
|
||||
- (NSUnitPower *)nanowatts;
|
||||
- (NSUnitPower *)picowatts;
|
||||
- (NSUnitPower *)femtowatts;
|
||||
- (NSUnitPower *)horsepower;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitPressure : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - newtonsPerMetersSquared (equivalent to 1 pascal)
|
||||
*/
|
||||
|
||||
- (NSUnitPressure *)newtonsPerMetersSquared;
|
||||
- (NSUnitPressure *)gigapascals;
|
||||
- (NSUnitPressure *)megapascals;
|
||||
- (NSUnitPressure *)kilopascals;
|
||||
- (NSUnitPressure *)hectopascals;
|
||||
- (NSUnitPressure *)inchesOfMercury;
|
||||
- (NSUnitPressure *)bars;
|
||||
- (NSUnitPressure *)millibars;
|
||||
- (NSUnitPressure *)millimetersOfMercury;
|
||||
- (NSUnitPressure *)poundsForcePerSquareInch;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitSpeed : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - metersPerSecond
|
||||
*/
|
||||
|
||||
- (NSUnitSpeed *)metersPerSecond;
|
||||
- (NSUnitSpeed *)kilometersPerHour;
|
||||
- (NSUnitSpeed *)milesPerHour;
|
||||
- (NSUnitSpeed *)knots;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitTemperature : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - kelvin
|
||||
*/
|
||||
- (NSUnitTemperature *)kelvin;
|
||||
- (NSUnitTemperature *)celsius;
|
||||
- (NSUnitTemperature *)fahrenheit;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@interface NSUnitVolume : NSDimension <NSSecureCoding>
|
||||
/*
|
||||
Base unit - liters
|
||||
*/
|
||||
|
||||
- (NSUnitVolume *)megaliters;
|
||||
- (NSUnitVolume *)kiloliters;
|
||||
- (NSUnitVolume *)liters;
|
||||
- (NSUnitVolume *)deciliters;
|
||||
- (NSUnitVolume *)centiliters;
|
||||
- (NSUnitVolume *)milliliters;
|
||||
- (NSUnitVolume *)cubicKilometers;
|
||||
- (NSUnitVolume *)cubicMeters;
|
||||
- (NSUnitVolume *)cubicDecimeters;
|
||||
- (NSUnitVolume *)cubicCentimeters;
|
||||
- (NSUnitVolume *)cubicMillimeters;
|
||||
- (NSUnitVolume *)cubicInches;
|
||||
- (NSUnitVolume *)cubicFeet;
|
||||
- (NSUnitVolume *)cubicYards;
|
||||
- (NSUnitVolume *)cubicMiles;
|
||||
- (NSUnitVolume *)acreFeet;
|
||||
- (NSUnitVolume *)bushels;
|
||||
- (NSUnitVolume *)teaspoons;
|
||||
- (NSUnitVolume *)tablespoons;
|
||||
- (NSUnitVolume *)fluidOunces;
|
||||
- (NSUnitVolume *)cups;
|
||||
- (NSUnitVolume *)pints;
|
||||
- (NSUnitVolume *)quarts;
|
||||
- (NSUnitVolume *)gallons;
|
||||
- (NSUnitVolume *)imperialTeaspoons;
|
||||
- (NSUnitVolume *)imperialTablespoons;
|
||||
- (NSUnitVolume *)imperialFluidOunces;
|
||||
- (NSUnitVolume *)imperialPints;
|
||||
- (NSUnitVolume *)imperialQuarts;
|
||||
- (NSUnitVolume *)imperialGallons;
|
||||
- (NSUnitVolume *)metricCups;
|
||||
|
||||
@end
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
|
|
@ -24,7 +24,9 @@
|
|||
|
||||
#include <Foundation/NSUnit.h>
|
||||
#include <Foundation/NSArchiver.h>
|
||||
#include <Foundation/NSKeyedArchiver.h>
|
||||
|
||||
// Abstract conversion...
|
||||
@implementation NSUnitConverter
|
||||
- (double)baseUnitValueFromValue:(double)value
|
||||
{
|
||||
|
@ -37,9 +39,8 @@
|
|||
}
|
||||
@end
|
||||
|
||||
|
||||
// Linear conversion...
|
||||
@implementation NSUnitConverterLinear
|
||||
|
||||
- (instancetype) initWithCoefficient: (double)coefficient
|
||||
{
|
||||
self = [super init];
|
||||
|
@ -103,7 +104,7 @@
|
|||
}
|
||||
@end
|
||||
|
||||
|
||||
// Abstract unit...
|
||||
@implementation NSUnit
|
||||
+ (instancetype)new
|
||||
{
|
||||
|
@ -170,7 +171,6 @@
|
|||
|
||||
// Dimension using units....
|
||||
@implementation NSDimension
|
||||
|
||||
- (NSUnitConverter *) converter
|
||||
{
|
||||
return _converter;
|
||||
|
@ -185,6 +185,5 @@
|
|||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
|
Loading…
Reference in a new issue