Skip to content

API Overview

Marcus Ackre Medina edited this page Sep 13, 2026 · 1 revision

API Overview

The Distance struct

MarcusMedina.Units.Distance.Distance — a readonly struct implementing IComparable<Distance> and IEquatable<Distance>. Internally stores everything as meters via the Meters property (double).

public Distance(double meters)
public double Meters { get; }

ToString() renders as "{value} m" using invariant culture.

Every creation method below has both an int and a double overload. Factors are the exact multipliers used in source to convert to meters.

MarcusMedina.Units.Distance.Metric

Unit Create Convert back Factor (→ m)
Nanometer Nanometers() ToNanometers() 1e-9
Micrometer Micrometers() ToMicrometers() 1e-6
Millimeter Millimeters() ToMillimeters() 0.001
Centimeter Centimeters() ToCentimeters() 0.01
Decimeter Decimeters() ToDecimeters() 0.1
Meter Meters() ToMeters() 1
Decameter Decameters() ToDecameters() 10
Hectometer Hectometers() ToHectometers() 100
Kilometer Kilometers() ToKilometers() 1,000
Myriameter Myriameters() ToMyriameters() 10,000

MarcusMedina.Units.Distance.US

US survey units, based on the US survey foot (1200/3937 m ≈ 0.3048006 m — slightly different from the international foot):

Unit Create Convert back Factor (→ m)
Survey foot SurveyFeet() ToSurveyFeet() 1200/3937 ≈ 0.3048006
Survey mile SurveyMiles() ToSurveyMiles() 5280 × 1200/3937 ≈ 1609.347
US rod UsRods() ToUsRods() 16.5 × 1200/3937 ≈ 5.02921
US chain UsChains() ToUsChains() 66 × 1200/3937 ≈ 20.11684

MarcusMedina.Units.Distance.British

Unit Create Convert back Factor (→ m)
Inch Inches() ToInches() 0.0254
Foot Feet() ToFeet() 0.3048
Yard Yards() ToYards() 0.9144
Mile Miles() ToMiles() 1609.344
Nautical mile NauticalMiles() ToNauticalMiles() 1852

MarcusMedina.Units.Distance.BritishOld

Unit Create Convert back Factor (→ m)
Link Links() ToLinks() 0.201168
Rod (25 links) Rods() ToRods() 5.0292
Chain (4 rods) Chains() ToChains() 20.1168
Furlong (10 chains) Furlongs() ToFurlongs() 201.168
League (3 miles) Leagues() ToLeagues() 4828.032
Fathom (6 feet) Fathoms() ToFathoms() 1.8288
Cable (1/10 nautical mile) Cables() ToCables() 185.2

MarcusMedina.Units.Distance.Swedish

Unit Create Convert back Factor (→ m)
Mil (modern, since 1889) Mil() ToMil() 10,000

MarcusMedina.Units.Distance.SwedishOld

Based on the Rhenish foot (before 1855):

Unit Create Convert back Factor (→ m)
Tum (1/12 fot) Tum() ToTum() 0.026154
Fot Fot() ToFot() 0.31385
Kvart (6 tum, ½ fot) Kvart() ToKvart() 0.1569
Aln (2 fot) Alnar() ToAlnar() 0.6277
Famn (3 alnar) Famnar() ToFamnar() 1.8831
Ref (¼ old mil) Ref() ToRef() 2672
Old Swedish mile (landmil, pre-1889) SwedishMiles() ToSwedishMiles() 10,688

MarcusMedina.Units.Distance.Astronomical

Unit Create Convert back Factor (→ m)
Light-second LightSeconds() ToLightSeconds() 299,792,458
Light-minute LightMinutes() ToLightMinutes() 17,987,547,480
Light-hour LightHours() ToLightHours() 1,079,252,848,800
Light-day LightDays() ToLightDays() 25,902,068,371,200
Light-year LightYears() ToLightYears() 9,460,730,472,580,800
Astronomical unit (AU) AstronomicalUnits() ToAstronomicalUnits() 149,597,870,700
Parsec Parsecs() ToParsecs() 3.085677581e16
Kiloparsec Kiloparsecs() ToKiloparsecs() 3.085677581e19
Megaparsec Megaparsecs() ToMegaparsecs() 3.085677581e22
Gigaparsec Gigaparsecs() ToGigaparsecs() 3.085677581e25

This namespace also has ToKesselRun(this Distance d) — see Advanced Usage.

MarcusMedina.Units.Distance.Microscopic

Unit Create Convert back Factor (→ m)
Ångström Angstroms() ToAngstroms() 1e-10
Picometer Picometers() ToPicometers() 1e-12
Femtometer Femtometers() ToFemtometers() 1e-15
Attometer Attometers() ToAttometers() 1e-18
Bohr radius BohrRadii() ToBohrRadii() 5.29177210903e-11
Planck length PlanckLengths() ToPlanckLengths() 1.616255e-35

Operators (defined on Distance)

Operator Signature Behavior
==, != Distance, Distance Value equality on Meters
<, >, <=, >= Distance, Distance Compares Meters
+ Distance + Distance Adds Meters
- Distance - Distance Subtracts Meters
* Distance * double Scales Meters by a factor
/ Distance / double Divides Meters by a divisor, returns Distance
/ Distance / Distance Divides Meters by Meters, returns double (ratio)

No enums are defined in this package.