lob 0.8.0
 
Loading...
Searching...
No Matches
lob.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "lob/lob_export.hpp"

Go to the source code of this file.

Classes

struct  LobGravity
 Gravity vector. More...
 
struct  LobWind
 Wind vector. More...
 
struct  LobCoriolis
 Coriolis effect parameters. More...
 
struct  LobInput
 Structure of input parameters consumed by the solver. More...
 
struct  LobOutput
 Structure holding the output results of a ballistic calculation. More...
 
struct  LobBuilder
 Opaque builder type for constructing LobInput objects. More...
 

Macros

#define LOB_TABLE_SIZE   85
 The number of entries in a drag table.
 
#define LOB_BUILDER_BUFFER_SIZE   576
 The size in bytes of the builder buffer.
 

Typedefs

typedef uint8_t LobDragFunctionT
 Drag function type.
 
typedef uint8_t LobAtmosphereReferenceT
 Atmosphere reference type.
 
typedef uint8_t LobClockAngleT
 Clock angle positions for wind direction.
 
typedef uint8_t LobErrorT
 Error codes returned by the builder.
 

Enumerations

enum  {
  kLobDragFunctionG1 = 1 , kLobDragFunctionG2 = 2 , kLobDragFunctionG5 = 5 , kLobDragFunctionG6 = 6 ,
  kLobDragFunctionG7 = 7 , kLobDragFunctionG8 = 8
}
 
enum  { kLobAtmosphereReferenceArmyStandardMetro = 0 , kLobAtmosphereReferenceIcao }
 
enum  {
  kLobClockAngleI = 1 , kLobClockAngleII = 2 , kLobClockAngleIII = 3 , kLobClockAngleIV = 4 ,
  kLobClockAngleV = 5 , kLobClockAngleVI = 6 , kLobClockAngleVII = 7 , kLobClockAngleVIII = 8 ,
  kLobClockAngleIX = 9 , kLobClockAngleX = 10 , kLobClockAngleXI = 11 , kLobClockAngleXII = 12
}
 
enum  {
  kLobErrorNone = 0 , kLobErrorAirPressureOOR , kLobErrorAltitudeOfBarometerOOR , kLobErrorAltitudeOfFiringSiteOOR ,
  kLobErrorAltitudeOfThermometerOOR , kLobErrorAzimuthOOR , kLobErrorBallisticCoefficientOOR , kLobErrorBallisticCoefficientRequired ,
  kLobErrorBaseDiameterOOR , kLobErrorDiameterOOR , kLobErrorHumidityOOR , kLobErrorInitialVelocityRequired ,
  kLobErrorInternalError , kLobErrorLatitudeOOR , kLobErrorLengthOOR , kLobErrorMassOOR ,
  kLobErrorMaximumTimeOOR , kLobErrorMeplatDiameterOOR , kLobErrorNoseLengthOOR , kLobErrorOgiveRtROOR ,
  kLobErrorRangeAngleOOR , kLobErrorTailLengthOOR , kLobErrorWindHeadingOOR , kLobErrorZeroAngleOOR ,
  kLobErrorZeroDataRequired , kLobErrorZeroDistanceOOR , kLobErrorNotFormed
}
 

Functions

LOB_EXPORT const char * LobVersion (void)
 Gets the library version in major.minor.patch format.
 
LOB_EXPORT void LobBuilderInit (LobBuilder *builder)
 Initializes a builder to default state.
 
LOB_EXPORT void LobBuilderDestroy (LobBuilder *builder)
 Destroys a builder and releases resources.
 
LOB_EXPORT void LobBuilderCopy (LobBuilder *dst, const LobBuilder *src)
 Copies builder state from src to dst.
 
LOB_EXPORT LobBuilderLobBuilderReset (LobBuilder *builder)
 Resets a builder state by re-initializing.
 
LOB_EXPORT LobBuilderLobBuilderBallisticCoefficientPsi (LobBuilder *builder, double value)
 Sets the ballistic coefficient (Psi).
 
LOB_EXPORT LobBuilderLobBuilderBCAtmosphere (LobBuilder *builder, LobAtmosphereReferenceT type)
 Sets the atmosphere reference associated with ballistic coefficient.
 
LOB_EXPORT LobBuilderLobBuilderBCDragFunction (LobBuilder *builder, LobDragFunctionT type)
 Sets the drag function associated with ballistic coefficient.
 
LOB_EXPORT LobBuilderLobBuilderDiameterInch (LobBuilder *builder, double value)
 Sets the projectile diameter (caliber) in inches.
 
LOB_EXPORT LobBuilderLobBuilderMeplatDiameterInch (LobBuilder *builder, double value)
 Sets the projectile meplat diameter in inches.
 
LOB_EXPORT LobBuilderLobBuilderBaseDiameterInch (LobBuilder *builder, double value)
 Sets the projectile base diameter in inches.
 
LOB_EXPORT LobBuilderLobBuilderLengthInch (LobBuilder *builder, double value)
 Sets the projectile length in inches.
 
LOB_EXPORT LobBuilderLobBuilderNoseLengthInch (LobBuilder *builder, double value)
 Sets the projectile nose length in inches.
 
LOB_EXPORT LobBuilderLobBuilderTailLengthInch (LobBuilder *builder, double value)
 Sets the projectile tail length in inches.
 
LOB_EXPORT LobBuilderLobBuilderOgiveRtR (LobBuilder *builder, double value)
 Sets the Rt/R ratio of the projectile ogive.
 
LOB_EXPORT LobBuilderLobBuilderMachVsDragTable (LobBuilder *builder, const float *pmachs, const float *pdrags, size_t size)
 Loads a custom Mach vs Drag table for the projectile.
 
LOB_EXPORT LobBuilderLobBuilderMassGrains (LobBuilder *builder, double value)
 Sets the projectile mass in grains.
 
LOB_EXPORT LobBuilderLobBuilderInitialVelocityFps (LobBuilder *builder, uint16_t value)
 Sets the initial velocity of the projectile in feet per second.
 
LOB_EXPORT LobBuilderLobBuilderOpticHeightInches (LobBuilder *builder, double value)
 Sets the height of the optic above the bore in inches.
 
LOB_EXPORT LobBuilderLobBuilderTwistInchesPerTurn (LobBuilder *builder, double value)
 Sets the twist rate of the barrel in inches per turn.
 
LOB_EXPORT LobBuilderLobBuilderZeroAngleMOA (LobBuilder *builder, double value)
 Sets the angle between the sight and launch angle used to achieve zero.
 
LOB_EXPORT LobBuilderLobBuilderZeroDistanceYds (LobBuilder *builder, double value)
 Sets the zero distance in yards.
 
LOB_EXPORT LobBuilderLobBuilderZeroImpactHeightInches (LobBuilder *builder, double value)
 Sets the zero impact height in inches.
 
LOB_EXPORT LobBuilderLobBuilderAltitudeOfFiringSiteFt (LobBuilder *builder, double value)
 Sets the altitude of the firing site in feet.
 
LOB_EXPORT LobBuilderLobBuilderAirPressureInHg (LobBuilder *builder, double value)
 Sets the air pressure in inches of mercury (inHg).
 
LOB_EXPORT LobBuilderLobBuilderAltitudeOfBarometerFt (LobBuilder *builder, double value)
 Sets the altitude of the location where air pressure was taken in feet.
 
LOB_EXPORT LobBuilderLobBuilderTemperatureDegF (LobBuilder *builder, double value)
 Sets the temperature in degrees Fahrenheit.
 
LOB_EXPORT LobBuilderLobBuilderAltitudeOfThermometerFt (LobBuilder *builder, double value)
 Sets the altitude of the location where temperature was taken in feet.
 
LOB_EXPORT LobBuilderLobBuilderRelativeHumidityPercent (LobBuilder *builder, double value)
 Sets the relative humidity at the firing site in percent.
 
LOB_EXPORT LobBuilderLobBuilderWindHeading (LobBuilder *builder, LobClockAngleT value)
 Sets the wind heading using a clock angle.
 
LOB_EXPORT LobBuilderLobBuilderWindHeadingDeg (LobBuilder *builder, double value)
 Sets the wind heading in degrees.
 
LOB_EXPORT LobBuilderLobBuilderWindSpeedFps (LobBuilder *builder, double value)
 Sets the wind speed in feet per second.
 
LOB_EXPORT LobBuilderLobBuilderWindSpeedMph (LobBuilder *builder, double value)
 Sets the wind speed in miles per hour.
 
LOB_EXPORT LobBuilderLobBuilderAzimuthDeg (LobBuilder *builder, double value)
 Sets the azimuth (bearing) of the target in degrees.
 
LOB_EXPORT LobBuilderLobBuilderLatitudeDeg (LobBuilder *builder, double value)
 Sets the latitude of the firing location in degrees.
 
LOB_EXPORT LobBuilderLobBuilderRangeAngleDeg (LobBuilder *builder, double value)
 Sets the range angle (inclination) to the target in degrees.
 
LOB_EXPORT LobBuilderLobBuilderMinimumSpeed (LobBuilder *builder, uint16_t value)
 Sets the minimum speed threshold for the solver.
 
LOB_EXPORT LobBuilderLobBuilderMinimumEnergy (LobBuilder *builder, uint16_t value)
 Sets the minimum energy threshold for the solver.
 
LOB_EXPORT LobBuilderLobBuilderMaximumTime (LobBuilder *builder, double value)
 Sets the maximum time of flight for the solver.
 
LOB_EXPORT LobBuilderLobBuilderStepSize (LobBuilder *builder, uint16_t value)
 Sets the step size for the numerical solver.
 
LOB_EXPORT LobInput LobBuilderBuild (LobBuilder *builder)
 Builds the LobInput object with the configured parameters.
 
LOB_EXPORT size_t LobSolve (const LobInput *in, const uint32_t *pranges, LobOutput *pouts, size_t size)
 Solves the exterior ballistics problem for a given set of ranges.
 
LOB_EXPORT double LobMoaToMil (double value)
 Converts minutes of angle (MOA) to milliradians (MIL).
 
LOB_EXPORT double LobMoaToDeg (double value)
 Converts minutes of angle (MOA) to degrees.
 
LOB_EXPORT double LobMoaToIphy (double value)
 Converts minutes of angle (MOA) to inches per hundred yards (IPHY).
 
LOB_EXPORT double LobMoaToInch (double value, double range_ft)
 Converts minutes of angle (MOA) to projected inches at a given range in feet.
 
LOB_EXPORT double LobMilToMoa (double value)
 Converts milliradians (MIL) to minutes of angle (MOA).
 
LOB_EXPORT double LobMilToDeg (double value)
 Converts milliradians (MIL) to degrees.
 
LOB_EXPORT double LobMilToIphy (double value)
 Converts milliradians (MIL) to inches per hundred yards (IPHY).
 
LOB_EXPORT double LobMilToInch (double value, double range_ft)
 Converts milliradians (MIL) to projected inches at a given range in feet.
 
LOB_EXPORT double LobDegToMoa (double value)
 Converts degrees to minutes of angle (MOA).
 
LOB_EXPORT double LobDegToMil (double value)
 Converts degrees to milliradians (MIL).
 
LOB_EXPORT double LobInchToMoa (double value, double range_ft)
 Inches of projection at a given range to minutes of angle (MOA).
 
LOB_EXPORT double LobInchToMil (double value, double range_ft)
 Inches of projection at a given range to milliradians (MIL).
 
LOB_EXPORT double LobInchToDeg (double value, double range_ft)
 Inches of projection at a given range to degrees.
 
LOB_EXPORT double LobJToFtLbs (double value)
 Converts joules to foot-pounds.
 
LOB_EXPORT double LobFtLbsToJ (double value)
 Converts foot-pounds to joules.
 
LOB_EXPORT double LobMToYd (double value)
 Converts meters to yards.
 
LOB_EXPORT double LobYdToFt (double value)
 Converts yards to feet.
 
LOB_EXPORT double LobMToFt (double value)
 Converts meters to feet.
 
LOB_EXPORT double LobFtToIn (double value)
 Converts feet to inches.
 
LOB_EXPORT double LobMmToIn (double value)
 Converts millimeters to inches.
 
LOB_EXPORT double LobCmToIn (double value)
 Converts centimeters to inches.
 
LOB_EXPORT double LobYdToM (double value)
 Converts yards to meters.
 
LOB_EXPORT double LobFtToM (double value)
 Converts feet to meters.
 
LOB_EXPORT double LobFtToYd (double value)
 Converts feet to yards.
 
LOB_EXPORT double LobInToMm (double value)
 Converts inches to millimeters.
 
LOB_EXPORT double LobInToCm (double value)
 Converts inches to centimeters.
 
LOB_EXPORT double LobInToFt (double value)
 Converts inches to feet.
 
LOB_EXPORT double LobPaToInHg (double value)
 Converts pascals to inches of mercury.
 
LOB_EXPORT double LobMbarToInHg (double value)
 Converts millibars to inches of mercury.
 
LOB_EXPORT double LobPsiToInHg (double value)
 Converts pounds per square inch (PSI) to inches of mercury.
 
LOB_EXPORT double LobLbsToGrain (double value)
 Converts pounds to grains.
 
LOB_EXPORT double LobGToGrain (double value)
 Converts grams to grains.
 
LOB_EXPORT double LobKgToGrain (double value)
 Converts kilograms to grains.
 
LOB_EXPORT double LobKgSqMToPmsi (double value)
 Converts kilograms per square meter to pounds mass per square inch.
 
LOB_EXPORT double LobFpsToMps (double value)
 Converts feet per second to meters per second.
 
LOB_EXPORT double LobMpsToFps (double value)
 Converts meters per second to feet per second.
 
LOB_EXPORT double LobKphToMph (double value)
 Converts kilometers per hour to miles per hour.
 
LOB_EXPORT double LobKnToMph (double value)
 Converts Knots to miles per hour.
 
LOB_EXPORT double LobMsToS (double value)
 Converts milliseconds to seconds.
 
LOB_EXPORT double LobUsToS (double value)
 Converts microseconds to seconds.
 
LOB_EXPORT double LobSToMs (double value)
 Converts seconds to milliseconds.
 
LOB_EXPORT double LobSToUs (double value)
 Converts seconds to microseconds.
 
LOB_EXPORT double LobDegCToDegF (double value)
 Converts degrees celsius to degrees fahrenheit.
 

Macro Definition Documentation

◆ LOB_BUILDER_BUFFER_SIZE

#define LOB_BUILDER_BUFFER_SIZE   576

The size in bytes of the builder buffer.

◆ LOB_TABLE_SIZE

#define LOB_TABLE_SIZE   85

The number of entries in a drag table.

Typedef Documentation

◆ LobAtmosphereReferenceT

typedef uint8_t LobAtmosphereReferenceT

Atmosphere reference type.

◆ LobClockAngleT

typedef uint8_t LobClockAngleT

Clock angle positions for wind direction.

◆ LobDragFunctionT

typedef uint8_t LobDragFunctionT

Drag function type.

◆ LobErrorT

typedef uint8_t LobErrorT

Error codes returned by the builder.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kLobClockAngleI 

one o'clock

kLobClockAngleII 

two o'clock

kLobClockAngleIII 

three o'clock

kLobClockAngleIV 

four o'clock

kLobClockAngleV 

five o'clock

kLobClockAngleVI 

six o'clock

kLobClockAngleVII 

seven o'clock

kLobClockAngleVIII 

eight o'clock

kLobClockAngleIX 

nine o'clock

kLobClockAngleX 

ten o'clock

kLobClockAngleXI 

eleven o'clock

kLobClockAngleXII 

twelve o'clock

◆ anonymous enum

anonymous enum
Enumerator
kLobAtmosphereReferenceArmyStandardMetro 

Army Standard Metro.

kLobAtmosphereReferenceIcao 

International Civil Aviation Organization (ICAO)

◆ anonymous enum

anonymous enum
Enumerator
kLobDragFunctionG1 

G1 drag function.

kLobDragFunctionG2 

G2 drag function.

kLobDragFunctionG5 

G5 drag function.

kLobDragFunctionG6 

G6 drag function.

kLobDragFunctionG7 

G7 drag function.

kLobDragFunctionG8 

G8 drag function.

◆ anonymous enum

anonymous enum
Enumerator
kLobErrorNone 
kLobErrorAirPressureOOR 
kLobErrorAltitudeOfBarometerOOR 
kLobErrorAltitudeOfFiringSiteOOR 
kLobErrorAltitudeOfThermometerOOR 
kLobErrorAzimuthOOR 
kLobErrorBallisticCoefficientOOR 
kLobErrorBallisticCoefficientRequired 
kLobErrorBaseDiameterOOR 
kLobErrorDiameterOOR 
kLobErrorHumidityOOR 
kLobErrorInitialVelocityRequired 
kLobErrorInternalError 
kLobErrorLatitudeOOR 
kLobErrorLengthOOR 
kLobErrorMassOOR 
kLobErrorMaximumTimeOOR 
kLobErrorMeplatDiameterOOR 
kLobErrorNoseLengthOOR 
kLobErrorOgiveRtROOR 
kLobErrorRangeAngleOOR 
kLobErrorTailLengthOOR 
kLobErrorWindHeadingOOR 
kLobErrorZeroAngleOOR 
kLobErrorZeroDataRequired 
kLobErrorZeroDistanceOOR 
kLobErrorNotFormed 

Function Documentation

◆ LobBuilderAirPressureInHg()

LOB_EXPORT LobBuilder * LobBuilderAirPressureInHg ( LobBuilder * builder,
double value )
extern

Sets the air pressure in inches of mercury (inHg).

Parameters
builderPointer to the builder.
valueThe air pressure in inHg.
Returns
Pointer to the builder.

◆ LobBuilderAltitudeOfBarometerFt()

LOB_EXPORT LobBuilder * LobBuilderAltitudeOfBarometerFt ( LobBuilder * builder,
double value )
extern

Sets the altitude of the location where air pressure was taken in feet.

Note
This only has an effect if the air pressure was taken from a site other than the firing site with a different altitude such as a nearby weather station.
Parameters
builderPointer to the builder.
valueThe altitude in feet.
Returns
Pointer to the builder.

◆ LobBuilderAltitudeOfFiringSiteFt()

LOB_EXPORT LobBuilder * LobBuilderAltitudeOfFiringSiteFt ( LobBuilder * builder,
double value )
extern

Sets the altitude of the firing site in feet.

Parameters
builderPointer to the builder.
valueThe altitude in feet.
Returns
Pointer to the builder.

◆ LobBuilderAltitudeOfThermometerFt()

LOB_EXPORT LobBuilder * LobBuilderAltitudeOfThermometerFt ( LobBuilder * builder,
double value )
extern

Sets the altitude of the location where temperature was taken in feet.

Note
This only has an effect if the temperature was taken from a site other than the firing site with a different altitude such as a nearby weather station.
Parameters
builderPointer to the builder.
valueThe altitude in feet.
Returns
Pointer to the builder.

◆ LobBuilderAzimuthDeg()

LOB_EXPORT LobBuilder * LobBuilderAzimuthDeg ( LobBuilder * builder,
double value )
extern

Sets the azimuth (bearing) of the target in degrees.

Note
Used for making coriolis effect corrections.
Parameters
builderPointer to the builder.
valueThe azimuth in degrees.
Returns
Pointer to the builder.

◆ LobBuilderBallisticCoefficientPsi()

LOB_EXPORT LobBuilder * LobBuilderBallisticCoefficientPsi ( LobBuilder * builder,
double value )
extern

Sets the ballistic coefficient (Psi).

Parameters
builderPointer to the builder.
valueThe ballistic coefficient value.
Returns
Pointer to the builder.

◆ LobBuilderBaseDiameterInch()

LOB_EXPORT LobBuilder * LobBuilderBaseDiameterInch ( LobBuilder * builder,
double value )
extern

Sets the projectile base diameter in inches.

Parameters
builderPointer to the builder.
valueThe base diameter in inches.
Returns
Pointer to the builder.

◆ LobBuilderBCAtmosphere()

LOB_EXPORT LobBuilder * LobBuilderBCAtmosphere ( LobBuilder * builder,
LobAtmosphereReferenceT type )
extern

Sets the atmosphere reference associated with ballistic coefficient.

Parameters
builderPointer to the builder.
typeThe atmosphere reference type.
Returns
Pointer to the builder.

◆ LobBuilderBCDragFunction()

LOB_EXPORT LobBuilder * LobBuilderBCDragFunction ( LobBuilder * builder,
LobDragFunctionT type )
extern

Sets the drag function associated with ballistic coefficient.

Parameters
builderPointer to the builder.
typeThe drag function type.
Returns
Pointer to the builder.

◆ LobBuilderBuild()

LOB_EXPORT LobInput LobBuilderBuild ( LobBuilder * builder)
extern

Builds the LobInput object with the configured parameters.

Parameters
builderPointer to the builder.
Returns
The constructed LobInput object.

◆ LobBuilderCopy()

LOB_EXPORT void LobBuilderCopy ( LobBuilder * dst,
const LobBuilder * src )
extern

Copies builder state from src to dst.

◆ LobBuilderDestroy()

LOB_EXPORT void LobBuilderDestroy ( LobBuilder * builder)
extern

Destroys a builder and releases resources.

◆ LobBuilderDiameterInch()

LOB_EXPORT LobBuilder * LobBuilderDiameterInch ( LobBuilder * builder,
double value )
extern

Sets the projectile diameter (caliber) in inches.

Parameters
builderPointer to the builder.
valueThe diameter in inches.
Returns
Pointer to the builder.

◆ LobBuilderInit()

LOB_EXPORT void LobBuilderInit ( LobBuilder * builder)
extern

Initializes a builder to default state.

◆ LobBuilderInitialVelocityFps()

LOB_EXPORT LobBuilder * LobBuilderInitialVelocityFps ( LobBuilder * builder,
uint16_t value )
extern

Sets the initial velocity of the projectile in feet per second.

Parameters
builderPointer to the builder.
valueThe initial velocity in fps.
Returns
Pointer to the builder.

◆ LobBuilderLatitudeDeg()

LOB_EXPORT LobBuilder * LobBuilderLatitudeDeg ( LobBuilder * builder,
double value )
extern

Sets the latitude of the firing location in degrees.

Note
Used for making coriolis effect corrections.
Parameters
builderPointer to the builder.
valueThe latitude in degrees.
Returns
Pointer to the builder.

◆ LobBuilderLengthInch()

LOB_EXPORT LobBuilder * LobBuilderLengthInch ( LobBuilder * builder,
double value )
extern

Sets the projectile length in inches.

Parameters
builderPointer to the builder.
valueThe length in inches.
Returns
Pointer to the builder.

◆ LobBuilderMachVsDragTable()

LOB_EXPORT LobBuilder * LobBuilderMachVsDragTable ( LobBuilder * builder,
const float * pmachs,
const float * pdrags,
size_t size )
extern

Loads a custom Mach vs Drag table for the projectile.

Note
This is a direct alternative to using a ballistic coefficient and a reference drag function.
Parameters
builderPointer to the builder.
pmachsPointer to an array of mach values.
pdragsPointer to an array of associated drag values.
sizeThe number of mach-drag pairs in the table.
Returns
Pointer to the builder.

◆ LobBuilderMassGrains()

LOB_EXPORT LobBuilder * LobBuilderMassGrains ( LobBuilder * builder,
double value )
extern

Sets the projectile mass in grains.

Parameters
builderPointer to the builder.
valueThe mass in grains.
Returns
Pointer to the builder.

◆ LobBuilderMaximumTime()

LOB_EXPORT LobBuilder * LobBuilderMaximumTime ( LobBuilder * builder,
double value )
extern

Sets the maximum time of flight for the solver.

Parameters
builderPointer to the builder.
valueThe maximum time in seconds after which the solver will stop calculations.
Returns
Pointer to the builder.

◆ LobBuilderMeplatDiameterInch()

LOB_EXPORT LobBuilder * LobBuilderMeplatDiameterInch ( LobBuilder * builder,
double value )
extern

Sets the projectile meplat diameter in inches.

Parameters
builderPointer to the builder.
valueThe meplat in inches.
Returns
Pointer to the builder.

◆ LobBuilderMinimumEnergy()

LOB_EXPORT LobBuilder * LobBuilderMinimumEnergy ( LobBuilder * builder,
uint16_t value )
extern

Sets the minimum energy threshold for the solver.

Parameters
builderPointer to the builder.
valueThe minimum energy in foot-pounds (ft*lbf) at which the solver will stop calculations.
Returns
Pointer to the builder.

◆ LobBuilderMinimumSpeed()

LOB_EXPORT LobBuilder * LobBuilderMinimumSpeed ( LobBuilder * builder,
uint16_t value )
extern

Sets the minimum speed threshold for the solver.

Parameters
builderPointer to the builder.
valueThe minimum speed in feet per second (fps) at which the solver will stop calculations.
Returns
Pointer to the builder.

◆ LobBuilderNoseLengthInch()

LOB_EXPORT LobBuilder * LobBuilderNoseLengthInch ( LobBuilder * builder,
double value )
extern

Sets the projectile nose length in inches.

Parameters
builderPointer to the builder.
valueThe nose length in inches.
Returns
Pointer to the builder.

◆ LobBuilderOgiveRtR()

LOB_EXPORT LobBuilder * LobBuilderOgiveRtR ( LobBuilder * builder,
double value )
extern

Sets the Rt/R ratio of the projectile ogive.

Parameters
builderPointer to the builder.
valueThe Rt/R ratio.
Returns
Pointer to the builder.

◆ LobBuilderOpticHeightInches()

LOB_EXPORT LobBuilder * LobBuilderOpticHeightInches ( LobBuilder * builder,
double value )
extern

Sets the height of the optic above the bore in inches.

Parameters
builderPointer to the builder.
valueThe optic height in inches.
Returns
Pointer to the builder.

◆ LobBuilderRangeAngleDeg()

LOB_EXPORT LobBuilder * LobBuilderRangeAngleDeg ( LobBuilder * builder,
double value )
extern

Sets the range angle (inclination) to the target in degrees.

Parameters
builderPointer to the builder.
valueThe range angle in degrees.
Returns
Pointer to the builder.

◆ LobBuilderRelativeHumidityPercent()

LOB_EXPORT LobBuilder * LobBuilderRelativeHumidityPercent ( LobBuilder * builder,
double value )
extern

Sets the relative humidity at the firing site in percent.

Parameters
builderPointer to the builder.
valueThe relative humidity in percent.
Returns
Pointer to the builder.

◆ LobBuilderReset()

LOB_EXPORT LobBuilder * LobBuilderReset ( LobBuilder * builder)
extern

Resets a builder state by re-initializing.

◆ LobBuilderStepSize()

LOB_EXPORT LobBuilder * LobBuilderStepSize ( LobBuilder * builder,
uint16_t value )
extern

Sets the step size for the numerical solver.

Note
If set to zero the solver will use a variable step.
Parameters
builderPointer to the builder.
valueThe time step size in microseconds used by the solver.
Returns
Pointer to the builder.

◆ LobBuilderTailLengthInch()

LOB_EXPORT LobBuilder * LobBuilderTailLengthInch ( LobBuilder * builder,
double value )
extern

Sets the projectile tail length in inches.

Parameters
builderPointer to the builder.
valueThe tail length in inches.
Returns
Pointer to the builder.

◆ LobBuilderTemperatureDegF()

LOB_EXPORT LobBuilder * LobBuilderTemperatureDegF ( LobBuilder * builder,
double value )
extern

Sets the temperature in degrees Fahrenheit.

Parameters
builderPointer to the builder.
valueThe temperature in degrees F.
Returns
Pointer to the builder.

◆ LobBuilderTwistInchesPerTurn()

LOB_EXPORT LobBuilder * LobBuilderTwistInchesPerTurn ( LobBuilder * builder,
double value )
extern

Sets the twist rate of the barrel in inches per turn.

Note
Used to calculate adjustments for spin drift and aerodynamic jump.
Parameters
builderPointer to the builder.
valueThe twist rate in inches per turn.
Returns
Pointer to the builder.

◆ LobBuilderWindHeading()

LOB_EXPORT LobBuilder * LobBuilderWindHeading ( LobBuilder * builder,
LobClockAngleT value )
extern

Sets the wind heading using a clock angle.

Note
Twelve O'Clock is pure tailwind, Six O'Clock is a pure headwind.
Parameters
builderPointer to the builder.
valueThe wind heading as a clock angle.
Returns
Pointer to the builder.

◆ LobBuilderWindHeadingDeg()

LOB_EXPORT LobBuilder * LobBuilderWindHeadingDeg ( LobBuilder * builder,
double value )
extern

Sets the wind heading in degrees.

Note
0 is pure tailwind, 180 is pure headwind.
Parameters
builderPointer to the builder.
valueThe wind heading in degrees.
Returns
Pointer to the builder.

◆ LobBuilderWindSpeedFps()

LOB_EXPORT LobBuilder * LobBuilderWindSpeedFps ( LobBuilder * builder,
double value )
extern

Sets the wind speed in feet per second.

Parameters
builderPointer to the builder.
valueThe wind speed in fps.
Returns
Pointer to the builder.

◆ LobBuilderWindSpeedMph()

LOB_EXPORT LobBuilder * LobBuilderWindSpeedMph ( LobBuilder * builder,
double value )
extern

Sets the wind speed in miles per hour.

Parameters
builderPointer to the builder.
valueThe wind speed in mph.
Returns
Pointer to the builder.

◆ LobBuilderZeroAngleMOA()

LOB_EXPORT LobBuilder * LobBuilderZeroAngleMOA ( LobBuilder * builder,
double value )
extern

Sets the angle between the sight and launch angle used to achieve zero.

Note
This is a portable zero value useful when firing conditions differ from zeroing conditions.
Parameters
builderPointer to the builder.
valueThe zero angle in MOA.
Returns
Pointer to the builder.

◆ LobBuilderZeroDistanceYds()

LOB_EXPORT LobBuilder * LobBuilderZeroDistanceYds ( LobBuilder * builder,
double value )
extern

Sets the zero distance in yards.

Parameters
builderPointer to the builder.
valueThe zero distance in yards.
Returns
Pointer to the builder.

◆ LobBuilderZeroImpactHeightInches()

LOB_EXPORT LobBuilder * LobBuilderZeroImpactHeightInches ( LobBuilder * builder,
double value )
extern

Sets the zero impact height in inches.

Note
This would be used if zeroing three inches high at 100 yards for example.
Parameters
builderPointer to the builder.
valueThe zero impact height in inches.
Returns
Pointer to the builder.

◆ LobCmToIn()

LOB_EXPORT double LobCmToIn ( double value)
extern

Converts centimeters to inches.

Parameters
valueLength in centimeters.
Returns
Equivalent length in inches.

◆ LobDegCToDegF()

LOB_EXPORT double LobDegCToDegF ( double value)
extern

Converts degrees celsius to degrees fahrenheit.

Parameters
valueTemperature in degrees celsius.
Returns
Equivalent temperature in degrees fahrenheit.

◆ LobDegToMil()

LOB_EXPORT double LobDegToMil ( double value)
extern

Converts degrees to milliradians (MIL).

Parameters
valueAngle in degrees.
Returns
Equivalent angle in MIL.

◆ LobDegToMoa()

LOB_EXPORT double LobDegToMoa ( double value)
extern

Converts degrees to minutes of angle (MOA).

Parameters
valueAngle in degrees.
Returns
Equivalent angle in MOA.

◆ LobFpsToMps()

LOB_EXPORT double LobFpsToMps ( double value)
extern

Converts feet per second to meters per second.

Parameters
valueSpeed in feet per second.
Returns
Equivalent speed in meters per second.

◆ LobFtLbsToJ()

LOB_EXPORT double LobFtLbsToJ ( double value)
extern

Converts foot-pounds to joules.

Parameters
valueEnergy in foot-pounds.
Returns
Equivalent energy in joules.

◆ LobFtToIn()

LOB_EXPORT double LobFtToIn ( double value)
extern

Converts feet to inches.

Parameters
valueLength in feet.
Returns
Equivalent length in inches.

◆ LobFtToM()

LOB_EXPORT double LobFtToM ( double value)
extern

Converts feet to meters.

Parameters
valueLength in feet.
Returns
Equivalent length in meters.

◆ LobFtToYd()

LOB_EXPORT double LobFtToYd ( double value)
extern

Converts feet to yards.

Parameters
valueLength in feet.
Returns
Equivalent length in yards.

◆ LobGToGrain()

LOB_EXPORT double LobGToGrain ( double value)
extern

Converts grams to grains.

Parameters
valueMass in grams.
Returns
Equivalent mass in grains.

◆ LobInchToDeg()

LOB_EXPORT double LobInchToDeg ( double value,
double range_ft )
extern

Inches of projection at a given range to degrees.

Parameters
valueProjected inches.
range_ftRange in feet.
Returns
Equivalent angle in degrees.

◆ LobInchToMil()

LOB_EXPORT double LobInchToMil ( double value,
double range_ft )
extern

Inches of projection at a given range to milliradians (MIL).

Parameters
valueProjected inches.
range_ftRange in feet.
Returns
Equivalent angle in MIL.

◆ LobInchToMoa()

LOB_EXPORT double LobInchToMoa ( double value,
double range_ft )
extern

Inches of projection at a given range to minutes of angle (MOA).

Parameters
valueProjected inches.
range_ftRange in feet.
Returns
Equivalent angle in MOA.

◆ LobInToCm()

LOB_EXPORT double LobInToCm ( double value)
extern

Converts inches to centimeters.

Parameters
valueLength in inches.
Returns
Equivalent length in centimeters.

◆ LobInToFt()

LOB_EXPORT double LobInToFt ( double value)
extern

Converts inches to feet.

Parameters
valueLength in inches.
Returns
Equivalent length in feet.

◆ LobInToMm()

LOB_EXPORT double LobInToMm ( double value)
extern

Converts inches to millimeters.

Parameters
valueLength in inches.
Returns
Equivalent length in millimeters.

◆ LobJToFtLbs()

LOB_EXPORT double LobJToFtLbs ( double value)
extern

Converts joules to foot-pounds.

Parameters
valueEnergy in joules.
Returns
Equivalent energy in foot-pounds.

◆ LobKgSqMToPmsi()

LOB_EXPORT double LobKgSqMToPmsi ( double value)
extern

Converts kilograms per square meter to pounds mass per square inch.

Parameters
valueSectional density in Kg/m^2.
Returns
Equivalent sectional density in lb/in^2.

◆ LobKgToGrain()

LOB_EXPORT double LobKgToGrain ( double value)
extern

Converts kilograms to grains.

Parameters
valueMass in kilograms.
Returns
Equivalent mass in grains.

◆ LobKnToMph()

LOB_EXPORT double LobKnToMph ( double value)
extern

Converts Knots to miles per hour.

Parameters
valueSpeed in Knots.
Returns
Equivalent speed in miles per hour.

◆ LobKphToMph()

LOB_EXPORT double LobKphToMph ( double value)
extern

Converts kilometers per hour to miles per hour.

Parameters
valueSpeed in kilometers per hour.
Returns
Equivalent speed in miles per hour.

◆ LobLbsToGrain()

LOB_EXPORT double LobLbsToGrain ( double value)
extern

Converts pounds to grains.

Parameters
valueMass in pounds.
Returns
Equivalent mass in grains.

◆ LobMbarToInHg()

LOB_EXPORT double LobMbarToInHg ( double value)
extern

Converts millibars to inches of mercury.

Parameters
valuePressure in millibars.
Returns
Equivalent pressure in inches of mercury.

◆ LobMilToDeg()

LOB_EXPORT double LobMilToDeg ( double value)
extern

Converts milliradians (MIL) to degrees.

Parameters
valueAngle in MIL.
Returns
Equivalent angle in degrees.

◆ LobMilToInch()

LOB_EXPORT double LobMilToInch ( double value,
double range_ft )
extern

Converts milliradians (MIL) to projected inches at a given range in feet.

Parameters
valueAngle in MIL.
range_ftRange in feet.
Returns
Equivalent projected inches.

◆ LobMilToIphy()

LOB_EXPORT double LobMilToIphy ( double value)
extern

Converts milliradians (MIL) to inches per hundred yards (IPHY).

Parameters
valueAngle in MIL.
Returns
Equivalent angle in IPHY.

◆ LobMilToMoa()

LOB_EXPORT double LobMilToMoa ( double value)
extern

Converts milliradians (MIL) to minutes of angle (MOA).

Parameters
valueAngle in MIL.
Returns
Equivalent angle in MOA.

◆ LobMmToIn()

LOB_EXPORT double LobMmToIn ( double value)
extern

Converts millimeters to inches.

Parameters
valueLength in millimeters.
Returns
Equivalent length in inches.

◆ LobMoaToDeg()

LOB_EXPORT double LobMoaToDeg ( double value)
extern

Converts minutes of angle (MOA) to degrees.

Parameters
valueAngle in MOA.
Returns
Equivalent angle in degrees.

◆ LobMoaToInch()

LOB_EXPORT double LobMoaToInch ( double value,
double range_ft )
extern

Converts minutes of angle (MOA) to projected inches at a given range in feet.

Parameters
valueAngle in MOA.
range_ftRange in feet.
Returns
Equivalent projected inches.

◆ LobMoaToIphy()

LOB_EXPORT double LobMoaToIphy ( double value)
extern

Converts minutes of angle (MOA) to inches per hundred yards (IPHY).

Parameters
valueAngle in MOA.
Returns
Equivalent angle in IPHY.

◆ LobMoaToMil()

LOB_EXPORT double LobMoaToMil ( double value)
extern

Converts minutes of angle (MOA) to milliradians (MIL).

Parameters
valueAngle in MOA.
Returns
Equivalent angle in MIL.

◆ LobMpsToFps()

LOB_EXPORT double LobMpsToFps ( double value)
extern

Converts meters per second to feet per second.

Parameters
valueSpeed in meters per second.
Returns
Equivalent speed in feet per second.

◆ LobMsToS()

LOB_EXPORT double LobMsToS ( double value)
extern

Converts milliseconds to seconds.

Parameters
valueTime in milliseconds.
Returns
Equivalent time in seconds.

◆ LobMToFt()

LOB_EXPORT double LobMToFt ( double value)
extern

Converts meters to feet.

Parameters
valueLength in meters.
Returns
Equivalent length in feet.

◆ LobMToYd()

LOB_EXPORT double LobMToYd ( double value)
extern

Converts meters to yards.

Parameters
valueLength in meters.
Returns
Equivalent length in yards.

◆ LobPaToInHg()

LOB_EXPORT double LobPaToInHg ( double value)
extern

Converts pascals to inches of mercury.

Parameters
valuePressure in pascals.
Returns
Equivalent pressure in inches of mercury.

◆ LobPsiToInHg()

LOB_EXPORT double LobPsiToInHg ( double value)
extern

Converts pounds per square inch (PSI) to inches of mercury.

Parameters
valuePressure in PSI.
Returns
Equivalent pressure in inches of mercury.

◆ LobSolve()

LOB_EXPORT size_t LobSolve ( const LobInput * in,
const uint32_t * pranges,
LobOutput * pouts,
size_t size )
extern

Solves the exterior ballistics problem for a given set of ranges.

Parameters
inPointer to input parameters for the calculation.
prangesPointer to an array of ranges (in feet) to solve for.
poutsPointer to an array where the output results will be stored.
sizeThe number of ranges to solve for.
Returns
The number of successful solutions.

◆ LobSToMs()

LOB_EXPORT double LobSToMs ( double value)
extern

Converts seconds to milliseconds.

Parameters
valueTime in seconds.
Returns
Equivalent time in milliseconds.

◆ LobSToUs()

LOB_EXPORT double LobSToUs ( double value)
extern

Converts seconds to microseconds.

Parameters
valueTime in seconds.
Returns
Equivalent time in microseconds.

◆ LobUsToS()

LOB_EXPORT double LobUsToS ( double value)
extern

Converts microseconds to seconds.

Parameters
valueTime in microseconds.
Returns
Equivalent time in seconds.

◆ LobVersion()

LOB_EXPORT const char * LobVersion ( void )
extern

Gets the library version in major.minor.patch format.

◆ LobYdToFt()

LOB_EXPORT double LobYdToFt ( double value)
extern

Converts yards to feet.

Parameters
valueLength in yards.
Returns
Equivalent length in feet.

◆ LobYdToM()

LOB_EXPORT double LobYdToM ( double value)
extern

Converts yards to meters.

Parameters
valueLength in yards.
Returns
Equivalent length in meters.