98constexpr E
ToEnum(std::underlying_type_t<E> value)
noexcept {
99 static_assert(std::is_enum<E>::value,
"ToEnum() only supports enum types");
100 return static_cast<E
>(value);
111 return static_cast<std::underlying_type_t<E>
>(value);
308 const std::array<float, N>& drags) {
604 return ::LobSolve(&in, pranges, pouts, size);
616inline size_t Solve(
const Input& in,
const std::array<uint32_t, N>& pranges,
617 std::array<Output, N>& pouts) {
618 return ::LobSolve(&in, pranges.data(), pouts.data(), N);
625inline const char*
Version() { return ::LobVersion(); }
632inline double MoaToMil(
double value) { return ::LobMoaToMil(value); }
638inline double MoaToDeg(
double value) { return ::LobMoaToDeg(value); }
644inline double MoaToIphy(
double value) { return ::LobMoaToIphy(value); }
653 return ::LobMoaToInch(value, range_ft);
661inline double MilToMoa(
double value) { return ::LobMilToMoa(value); }
667inline double MilToDeg(
double value) { return ::LobMilToDeg(value); }
673inline double MilToIphy(
double value) { return ::LobMilToIphy(value); }
682 return ::LobMilToInch(value, range_ft);
690inline double DegToMoa(
double value) { return ::LobDegToMoa(value); }
696inline double DegToMil(
double value) { return ::LobDegToMil(value); }
705 return ::LobInchToMoa(value, range_ft);
714 return ::LobInchToMil(value, range_ft);
723 return ::LobInchToDeg(value, range_ft);
731inline double JToFtLbs(
double value) { return ::LobJToFtLbs(value); }
737inline double FtLbsToJ(
double value) { return ::LobFtLbsToJ(value); }
744inline double MToYd(
double value) { return ::LobMToYd(value); }
751inline double YdToFt(
double value) { return ::LobYdToFt(value); }
757inline double MToFt(
double value) { return ::LobMToFt(value); }
763inline double FtToIn(
double value) { return ::LobFtToIn(value); }
769inline double MmToIn(
double value) { return ::LobMmToIn(value); }
775inline double CmToIn(
double value) { return ::LobCmToIn(value); }
781inline double YdToM(
double value) { return ::LobYdToM(value); }
787inline double FtToM(
double value) { return ::LobFtToM(value); }
793inline double FtToYd(
double value) { return ::LobFtToYd(value); }
799inline double InToMm(
double value) { return ::LobInToMm(value); }
805inline double InToCm(
double value) { return ::LobInToCm(value); }
811inline double InToFt(
double value) { return ::LobInToFt(value); }
818inline double PaToInHg(
double value) { return ::LobPaToInHg(value); }
824inline double MbarToInHg(
double value) { return ::LobMbarToInHg(value); }
830inline double PsiToInHg(
double value) { return ::LobPsiToInHg(value); }
837inline double LbsToGrain(
double value) { return ::LobLbsToGrain(value); }
843inline double GToGrain(
double value) { return ::LobGToGrain(value); }
849inline double KgToGrain(
double value) { return ::LobKgToGrain(value); }
856inline double KgSqMToPmsi(
double value) { return ::LobKgSqMToPmsi(value); }
863inline double FpsToMps(
double value) { return ::LobFpsToMps(value); }
869inline double MpsToFps(
double value) { return ::LobMpsToFps(value); }
875inline double KphToMph(
double value) { return ::LobKphToMph(value); }
881inline double KnToMph(
double value) { return ::LobKnToMph(value); }
888inline double MsToS(
double value) { return ::LobMsToS(value); }
894inline double UsToS(
double value) { return ::LobUsToS(value); }
900inline double SToMs(
double value) { return ::LobSToMs(value); }
906inline double SToUs(
double value) { return ::LobSToUs(value); }
913inline double DegCToDegF(
double value) { return ::LobDegCToDegF(value); }
Builder & WindHeadingDeg(double value)
Sets the wind heading in degrees.
Definition lob.hpp:474
Builder & LengthInch(double value)
Sets the projectile length in inches.
Definition lob.hpp:247
Builder & TemperatureDegF(double value)
Sets the temperature in degrees Fahrenheit.
Definition lob.hpp:428
Builder & ZeroAngleMOA(double value)
Sets the angle between the sight and launch angle used to achieve zero.
Definition lob.hpp:362
Builder & operator=(const Builder &rhs)
Copy assignment operator.
Definition lob.hpp:164
Builder & MaximumTime(double value)
Sets the maximum time of flight for the solver.
Definition lob.hpp:559
Input Build()
Builds the Input object with the configured parameters.
Definition lob.hpp:588
Builder & MassGrains(double value)
Sets the projectile mass in grains.
Definition lob.hpp:318
Builder & AzimuthDeg(double value)
Sets the azimuth (bearing) of the target in degrees.
Definition lob.hpp:505
Builder & TailLengthInch(double value)
Sets the projectile tail length in inches.
Definition lob.hpp:267
Builder & operator=(Builder &&rhs) noexcept
Move assignment operator.
Definition lob.hpp:172
Builder & InitialVelocityFps(uint16_t value)
Sets the initial velocity of the projectile in feet per second.
Definition lob.hpp:328
Builder & AltitudeOfFiringSiteFt(double value)
Sets the altitude of the firing site in feet.
Definition lob.hpp:394
Builder & MeplatDiameterInch(double value)
Sets the projectile meplat diameter in inches.
Definition lob.hpp:227
Builder & MinimumEnergy(uint16_t value)
Sets the minimum energy threshold for the solver.
Definition lob.hpp:548
Builder & BallisticCoefficientPsi(double value)
Sets the ballistic coefficient (Psi).
Definition lob.hpp:185
Builder & AirPressureInHg(double value)
Sets the air pressure in inches of mercury (inHg).
Definition lob.hpp:404
~Builder()
Destructor.
Definition lob.hpp:152
Builder & DiameterInch(double value)
Sets the projectile diameter (caliber) in inches.
Definition lob.hpp:217
Builder & WindHeading(ClockAngleT value)
Sets the wind heading using a clock angle.
Definition lob.hpp:463
Builder & MachVsDragTable(const std::array< float, N > &machs, const std::array< float, N > &drags)
Loads a custom Mach vs Drag table for the projectile.
Definition lob.hpp:307
Builder & LatitudeDeg(double value)
Sets the latitude of the firing location in degrees.
Definition lob.hpp:516
Builder & OpticHeightInches(double value)
Sets the height of the optic above the bore in inches.
Definition lob.hpp:338
Builder & BCAtmosphere(AtmosphereReferenceT type)
Sets the atmosphere reference associated with ballistic coefficient.
Definition lob.hpp:195
Builder & Reset() noexcept
Resets the builder state by re-initializing.
Definition lob.hpp:579
Builder & ZeroDistanceYds(double value)
Sets the zero distance in yards.
Definition lob.hpp:372
Builder()
Default constructor.
Definition lob.hpp:149
Builder & MinimumSpeed(uint16_t value)
Sets the minimum speed threshold for the solver.
Definition lob.hpp:537
Builder & RangeAngleDeg(double value)
Sets the range angle (inclination) to the target in degrees.
Definition lob.hpp:526
Builder(const Builder &other)
Definition lob.hpp:154
Builder & WindSpeedMph(double value)
Sets the wind speed in miles per hour.
Definition lob.hpp:494
Builder & BCDragFunction(DragFunctionT type)
Sets the drag function associated with ballistic coefficient.
Definition lob.hpp:206
Builder & ZeroImpactHeightInches(double value)
Sets the zero impact height in inches.
Definition lob.hpp:384
Builder(Builder &&other) noexcept
Definition lob.hpp:158
Builder & NoseLengthInch(double value)
Sets the projectile nose length in inches.
Definition lob.hpp:257
Builder & AltitudeOfBarometerFt(double value)
Sets the altitude of the location where air pressure was taken in feet.
Definition lob.hpp:418
Builder & OgiveRtR(double value)
Sets the Rt/R ratio of the projectile ogive.
Definition lob.hpp:277
Builder & TwistInchesPerTurn(double value)
Sets the twist rate of the barrel in inches per turn.
Definition lob.hpp:349
Builder & WindSpeedFps(double value)
Sets the wind speed in feet per second.
Definition lob.hpp:484
Builder & StepSize(uint16_t value)
Sets the step size for the numerical solver.
Definition lob.hpp:570
Builder & MachVsDragTable(const float *pmachs, const float *pdrags, size_t size)
Loads a custom Mach vs Drag table for the projectile.
Definition lob.hpp:291
Builder & BaseDiameterInch(double value)
Sets the projectile base diameter in inches.
Definition lob.hpp:237
Builder & RelativeHumidityPercent(double value)
Sets the relative humidity at the firing site in percent.
Definition lob.hpp:452
Builder & AltitudeOfThermometerFt(double value)
Sets the altitude of the location where temperature was taken in feet.
Definition lob.hpp:442
LOB_EXPORT LobBuilder * LobBuilderNoseLengthInch(LobBuilder *builder, double value)
Sets the projectile nose length in inches.
LOB_EXPORT LobBuilder * LobBuilderWindSpeedMph(LobBuilder *builder, double value)
Sets the wind speed in miles per hour.
LOB_EXPORT LobBuilder * LobBuilderLengthInch(LobBuilder *builder, double value)
Sets the projectile length in inches.
LOB_EXPORT LobBuilder * LobBuilderWindSpeedFps(LobBuilder *builder, double value)
Sets the wind speed in feet per second.
LOB_EXPORT LobBuilder * LobBuilderTemperatureDegF(LobBuilder *builder, double value)
Sets the temperature in degrees Fahrenheit.
LOB_EXPORT LobBuilder * LobBuilderDiameterInch(LobBuilder *builder, double value)
Sets the projectile diameter (caliber) in inches.
#define LOB_BUILDER_BUFFER_SIZE
The size in bytes of the builder buffer.
Definition lob.h:21
LOB_EXPORT LobBuilder * LobBuilderBallisticCoefficientPsi(LobBuilder *builder, double value)
Sets the ballistic coefficient (Psi).
LOB_EXPORT void LobBuilderInit(LobBuilder *builder)
Initializes a builder to default state.
LOB_EXPORT LobBuilder * LobBuilderAltitudeOfThermometerFt(LobBuilder *builder, double value)
Sets the altitude of the location where temperature was taken in feet.
LOB_EXPORT LobBuilder * LobBuilderLatitudeDeg(LobBuilder *builder, double value)
Sets the latitude of the firing location in degrees.
LOB_EXPORT LobBuilder * LobBuilderMinimumEnergy(LobBuilder *builder, uint16_t value)
Sets the minimum energy threshold for the solver.
LOB_EXPORT LobBuilder * LobBuilderOgiveRtR(LobBuilder *builder, double value)
Sets the Rt/R ratio of the projectile ogive.
uint8_t LobClockAngleT
Clock angle positions for wind direction.
Definition lob.h:43
LOB_EXPORT LobBuilder * LobBuilderAirPressureInHg(LobBuilder *builder, double value)
Sets the air pressure in inches of mercury (inHg).
LOB_EXPORT LobBuilder * LobBuilderMinimumSpeed(LobBuilder *builder, uint16_t value)
Sets the minimum speed threshold for the solver.
uint8_t LobAtmosphereReferenceT
Atmosphere reference type.
Definition lob.h:35
LOB_EXPORT void LobBuilderDestroy(LobBuilder *builder)
Destroys a builder and releases resources.
LOB_EXPORT LobBuilder * LobBuilderZeroAngleMOA(LobBuilder *builder, double value)
Sets the angle between the sight and launch angle used to achieve zero.
LOB_EXPORT LobBuilder * LobBuilderMeplatDiameterInch(LobBuilder *builder, double value)
Sets the projectile meplat diameter in inches.
@ kLobDragFunctionG2
G2 drag function.
Definition lob.h:27
@ kLobDragFunctionG1
G1 drag function.
Definition lob.h:26
@ kLobDragFunctionG7
G7 drag function.
Definition lob.h:30
@ kLobDragFunctionG6
G6 drag function.
Definition lob.h:29
@ kLobDragFunctionG8
G8 drag function.
Definition lob.h:31
@ kLobDragFunctionG5
G5 drag function.
Definition lob.h:28
#define LOB_TABLE_SIZE
The number of entries in a drag table.
Definition lob.h:19
LOB_EXPORT LobBuilder * LobBuilderReset(LobBuilder *builder)
Resets a builder state by re-initializing.
@ kLobErrorDiameterOOR
Definition lob.h:71
@ kLobErrorNotFormed
Definition lob.h:88
@ kLobErrorMeplatDiameterOOR
Definition lob.h:79
@ kLobErrorBaseDiameterOOR
Definition lob.h:70
@ kLobErrorLatitudeOOR
Definition lob.h:75
@ kLobErrorInternalError
Definition lob.h:74
@ kLobErrorNoseLengthOOR
Definition lob.h:80
@ kLobErrorBallisticCoefficientOOR
Definition lob.h:68
@ kLobErrorZeroAngleOOR
Definition lob.h:85
@ kLobErrorLengthOOR
Definition lob.h:76
@ kLobErrorOgiveRtROOR
Definition lob.h:81
@ kLobErrorRangeAngleOOR
Definition lob.h:82
@ kLobErrorZeroDataRequired
Definition lob.h:86
@ kLobErrorMaximumTimeOOR
Definition lob.h:78
@ kLobErrorTailLengthOOR
Definition lob.h:83
@ kLobErrorBallisticCoefficientRequired
Definition lob.h:69
@ kLobErrorAirPressureOOR
Definition lob.h:63
@ kLobErrorInitialVelocityRequired
Definition lob.h:73
@ kLobErrorNone
Definition lob.h:62
@ kLobErrorHumidityOOR
Definition lob.h:72
@ kLobErrorAzimuthOOR
Definition lob.h:67
@ kLobErrorMassOOR
Definition lob.h:77
@ kLobErrorZeroDistanceOOR
Definition lob.h:87
@ kLobErrorWindHeadingOOR
Definition lob.h:84
@ kLobErrorAltitudeOfThermometerOOR
Definition lob.h:66
@ kLobErrorAltitudeOfBarometerOOR
Definition lob.h:64
@ kLobErrorAltitudeOfFiringSiteOOR
Definition lob.h:65
LOB_EXPORT LobBuilder * LobBuilderZeroImpactHeightInches(LobBuilder *builder, double value)
Sets the zero impact height in inches.
@ kLobClockAngleVIII
eight o'clock
Definition lob.h:52
@ kLobClockAngleIV
four o'clock
Definition lob.h:48
@ kLobClockAngleV
five o'clock
Definition lob.h:49
@ kLobClockAngleI
one o'clock
Definition lob.h:45
@ kLobClockAngleVI
six o'clock
Definition lob.h:50
@ kLobClockAngleXI
eleven o'clock
Definition lob.h:55
@ kLobClockAngleVII
seven o'clock
Definition lob.h:51
@ kLobClockAngleII
two o'clock
Definition lob.h:46
@ kLobClockAngleIII
three o'clock
Definition lob.h:47
@ kLobClockAngleXII
twelve o'clock
Definition lob.h:56
@ kLobClockAngleX
ten o'clock
Definition lob.h:54
@ kLobClockAngleIX
nine o'clock
Definition lob.h:53
LOB_EXPORT LobBuilder * LobBuilderWindHeading(LobBuilder *builder, LobClockAngleT value)
Sets the wind heading using a clock angle.
uint8_t LobDragFunctionT
Drag function type.
Definition lob.h:24
@ kLobAtmosphereReferenceArmyStandardMetro
Army Standard Metro.
Definition lob.h:37
@ kLobAtmosphereReferenceIcao
International Civil Aviation Organization (ICAO)
Definition lob.h:38
LOB_EXPORT LobBuilder * LobBuilderOpticHeightInches(LobBuilder *builder, double value)
Sets the height of the optic above the bore in inches.
LOB_EXPORT LobBuilder * LobBuilderStepSize(LobBuilder *builder, uint16_t value)
Sets the step size for the numerical solver.
LOB_EXPORT LobBuilder * LobBuilderMaximumTime(LobBuilder *builder, double value)
Sets the maximum time of flight for the solver.
LOB_EXPORT LobBuilder * LobBuilderInitialVelocityFps(LobBuilder *builder, uint16_t value)
Sets the initial velocity of the projectile in feet per second.
uint8_t LobErrorT
Error codes returned by the builder.
Definition lob.h:60
LOB_EXPORT LobBuilder * LobBuilderTwistInchesPerTurn(LobBuilder *builder, double value)
Sets the twist rate of the barrel in inches per turn.
LOB_EXPORT LobBuilder * LobBuilderTailLengthInch(LobBuilder *builder, double value)
Sets the projectile tail length in inches.
LOB_EXPORT LobBuilder * LobBuilderAltitudeOfBarometerFt(LobBuilder *builder, double value)
Sets the altitude of the location where air pressure was taken in feet.
LOB_EXPORT LobBuilder * LobBuilderZeroDistanceYds(LobBuilder *builder, double value)
Sets the zero distance in yards.
LOB_EXPORT LobBuilder * LobBuilderRelativeHumidityPercent(LobBuilder *builder, double value)
Sets the relative humidity at the firing site in percent.
LOB_EXPORT LobBuilder * LobBuilderMachVsDragTable(LobBuilder *builder, const float *pmachs, const float *pdrags, size_t size)
Loads a custom Mach vs Drag table for the projectile.
LOB_EXPORT LobBuilder * LobBuilderBaseDiameterInch(LobBuilder *builder, double value)
Sets the projectile base diameter in inches.
LOB_EXPORT LobBuilder * LobBuilderWindHeadingDeg(LobBuilder *builder, double value)
Sets the wind heading in degrees.
LOB_EXPORT void LobBuilderCopy(LobBuilder *dst, const LobBuilder *src)
Copies builder state from src to dst.
LOB_EXPORT LobBuilder * LobBuilderAltitudeOfFiringSiteFt(LobBuilder *builder, double value)
Sets the altitude of the firing site in feet.
LOB_EXPORT LobBuilder * LobBuilderRangeAngleDeg(LobBuilder *builder, double value)
Sets the range angle (inclination) to the target in degrees.
LOB_EXPORT LobBuilder * LobBuilderBCAtmosphere(LobBuilder *builder, LobAtmosphereReferenceT type)
Sets the atmosphere reference associated with ballistic coefficient.
LOB_EXPORT LobBuilder * LobBuilderBCDragFunction(LobBuilder *builder, LobDragFunctionT type)
Sets the drag function associated with ballistic coefficient.
LOB_EXPORT LobBuilder * LobBuilderAzimuthDeg(LobBuilder *builder, double value)
Sets the azimuth (bearing) of the target in degrees.
LOB_EXPORT LobBuilder * LobBuilderMassGrains(LobBuilder *builder, double value)
Sets the projectile mass in grains.
double MilToDeg(double value)
Converts milliradians (MIL) to degrees.
Definition lob.hpp:667
double InToMm(double value)
Converts inches to millimeters.
Definition lob.hpp:799
double YdToFt(double value)
Converts yards to feet.
Definition lob.hpp:751
double GToGrain(double value)
Converts grams to grains.
Definition lob.hpp:843
bool operator==(::LobErrorT a, ErrorT b) noexcept
Definition lob.hpp:130
double MoaToMil(double value)
Converts minutes of angle (MOA) to milliradians (MIL).
Definition lob.hpp:632
double KgToGrain(double value)
Converts kilograms to grains.
Definition lob.hpp:849
double KnToMph(double value)
Converts Knots to miles per hour.
Definition lob.hpp:881
double DegCToDegF(double value)
Converts degrees celsius to degrees fahrenheit.
Definition lob.hpp:913
double KgSqMToPmsi(double value)
Converts kilograms per square meter to pounds mass per square inch.
Definition lob.hpp:856
double JToFtLbs(double value)
Converts joules to foot-pounds.
Definition lob.hpp:731
AtmosphereReferenceT
Enumerates the supported atmosphere reference types.
Definition lob.hpp:32
@ kArmyStandardMetro
Army Standard Metro.
Definition lob.hpp:33
@ kIcao
International Civil Aviation Organization (ICAO)
Definition lob.hpp:36
double KphToMph(double value)
Converts kilometers per hour to miles per hour.
Definition lob.hpp:875
double LbsToGrain(double value)
Converts pounds to grains.
Definition lob.hpp:837
double PsiToInHg(double value)
Converts pounds per square inch (PSI) to inches of mercury.
Definition lob.hpp:830
double PaToInHg(double value)
Converts pascals to inches of mercury.
Definition lob.hpp:818
::LobCoriolis Coriolis
Coriolis effect parameters. See LobCoriolis for member details.
Definition lob.hpp:119
double CmToIn(double value)
Converts centimeters to inches.
Definition lob.hpp:775
double MToYd(double value)
Converts meters to yards.
Definition lob.hpp:744
::LobOutput Output
Structure holding output results. See LobOutput for member details.
Definition lob.hpp:128
double MmToIn(double value)
Converts millimeters to inches.
Definition lob.hpp:769
double MbarToInHg(double value)
Converts millibars to inches of mercury.
Definition lob.hpp:824
double MoaToDeg(double value)
Converts minutes of angle (MOA) to degrees.
Definition lob.hpp:638
::LobGravity Gravity
Gravity vector. See LobGravity for member details.
Definition lob.hpp:115
double FtToYd(double value)
Converts feet to yards.
Definition lob.hpp:793
double MilToIphy(double value)
Converts milliradians (MIL) to inches per hundred yards (IPHY).
Definition lob.hpp:673
double MpsToFps(double value)
Converts meters per second to feet per second.
Definition lob.hpp:869
ErrorT
Error codes returned by the builder.
Definition lob.hpp:61
@ kOgiveRtROOR
Definition lob.hpp:81
@ kBaseDiameterOOR
Definition lob.hpp:70
@ kMeplatDiameterOOR
Definition lob.hpp:79
@ kZeroDistanceOOR
Definition lob.hpp:87
@ kAzimuthOOR
Definition lob.hpp:67
@ kNotFormed
Definition lob.hpp:88
@ kBallisticCoefficientOOR
Definition lob.hpp:68
@ kNone
Definition lob.hpp:62
@ kTailLengthOOR
Definition lob.hpp:83
@ kMaximumTimeOOR
Definition lob.hpp:78
@ kAltitudeOfBarometerOOR
Definition lob.hpp:64
@ kHumidityOOR
Definition lob.hpp:72
@ kWindHeadingOOR
Definition lob.hpp:84
@ kInitialVelocityRequired
Definition lob.hpp:73
@ kDiameterOOR
Definition lob.hpp:71
@ kLengthOOR
Definition lob.hpp:76
@ kAltitudeOfThermometerOOR
Definition lob.hpp:66
@ kAltitudeOfFiringSiteOOR
Definition lob.hpp:65
@ kBallisticCoefficientRequired
Definition lob.hpp:69
@ kNoseLengthOOR
Definition lob.hpp:80
@ kMassOOR
Definition lob.hpp:77
@ kZeroDataRequired
Definition lob.hpp:86
@ kZeroAngleOOR
Definition lob.hpp:85
@ kRangeAngleOOR
Definition lob.hpp:82
@ kAirPressureOOR
Definition lob.hpp:63
@ kLatitudeOOR
Definition lob.hpp:75
@ kInternalError
Definition lob.hpp:74
double InToCm(double value)
Converts inches to centimeters.
Definition lob.hpp:805
double MoaToInch(double value, double range_ft)
Converts minutes of angle (MOA) to projected inches at a given range in feet.
Definition lob.hpp:652
double InchToMil(double value, double range_ft)
Inches of projection at a given range to milliradians (MIL).
Definition lob.hpp:713
double FtToM(double value)
Converts feet to meters.
Definition lob.hpp:787
::LobInput Input
Structure of input parameters consumed by the solver.
Definition lob.hpp:125
ClockAngleT
Enumerates clock angle positions.
Definition lob.hpp:45
@ kX
ten o'clock
Definition lob.hpp:55
@ kI
one o'clock
Definition lob.hpp:46
@ kXI
eleven o'clock
Definition lob.hpp:56
@ kVII
seven o'clock
Definition lob.hpp:52
@ kVIII
eight o'clock
Definition lob.hpp:53
@ kV
five o'clock
Definition lob.hpp:50
@ kVI
six o'clock
Definition lob.hpp:51
@ kIV
four o'clock
Definition lob.hpp:49
@ kIII
three o'clock
Definition lob.hpp:48
@ kIX
nine o'clock
Definition lob.hpp:54
@ kXII
twelve o'clock
Definition lob.hpp:57
@ kII
two o'clock
Definition lob.hpp:47
double DegToMil(double value)
Converts degrees to milliradians (MIL).
Definition lob.hpp:696
double MilToMoa(double value)
Converts milliradians (MIL) to minutes of angle (MOA).
Definition lob.hpp:661
DragFunctionT
Enumerates the supported drag functions.
Definition lob.hpp:22
@ kG2
G2 drag function.
Definition lob.hpp:24
@ kG5
G5 drag function.
Definition lob.hpp:25
@ kG1
G1 drag function.
Definition lob.hpp:23
@ kG8
G8 drag function.
Definition lob.hpp:28
@ kG7
G7 drag function.
Definition lob.hpp:27
@ kG6
G6 drag function.
Definition lob.hpp:26
double InToFt(double value)
Converts inches to feet.
Definition lob.hpp:811
double FtToIn(double value)
Converts feet to inches.
Definition lob.hpp:763
constexpr E ToEnum(std::underlying_type_t< E > value) noexcept
Converts an integer value to an enum class.
Definition lob.hpp:98
double FtLbsToJ(double value)
Converts foot-pounds to joules.
Definition lob.hpp:737
bool operator!=(::LobErrorT a, ErrorT b) noexcept
Definition lob.hpp:133
double SToUs(double value)
Converts seconds to microseconds.
Definition lob.hpp:906
double InchToMoa(double value, double range_ft)
Inches of projection at a given range to minutes of angle (MOA).
Definition lob.hpp:704
double MsToS(double value)
Converts milliseconds to seconds.
Definition lob.hpp:888
constexpr size_t kLobTableSize
The size of a drag table.
Definition lob.hpp:17
double YdToM(double value)
Converts yards to meters.
Definition lob.hpp:781
size_t Solve(const Input &in, const uint32_t *pranges, Output *pouts, size_t size)
Solves the exterior ballistics problem for a given set of ranges.
Definition lob.hpp:602
double MilToInch(double value, double range_ft)
Converts milliradians (MIL) to projected inches at a given range in feet.
Definition lob.hpp:681
constexpr std::underlying_type_t< E > ToUnderlying(E value) noexcept
Converts an enum class value to its underlying integer type.
Definition lob.hpp:110
double InchToDeg(double value, double range_ft)
Inches of projection at a given range to degrees.
Definition lob.hpp:722
const char * Version()
Gets the library version in major.minor.patch format.
Definition lob.hpp:625
constexpr size_t kLobBuilderBufferSize
The size in bytes of the builder buffer.
Definition lob.hpp:19
double SToMs(double value)
Converts seconds to milliseconds.
Definition lob.hpp:900
double UsToS(double value)
Converts microseconds to seconds.
Definition lob.hpp:894
double MoaToIphy(double value)
Converts minutes of angle (MOA) to inches per hundred yards (IPHY).
Definition lob.hpp:644
::LobWind Wind
Wind vector. See LobWind for member details.
Definition lob.hpp:117
double MToFt(double value)
Converts meters to feet.
Definition lob.hpp:757
double FpsToMps(double value)
Converts feet per second to meters per second.
Definition lob.hpp:863
double DegToMoa(double value)
Converts degrees to minutes of angle (MOA).
Definition lob.hpp:690
Opaque builder type for constructing LobInput objects.
Definition lob.h:146
Coriolis effect parameters.
Definition lob.h:104
Gravity vector.
Definition lob.h:92
Structure holding the output results of a ballistic calculation.
Definition lob.h:136
Wind vector.
Definition lob.h:98