lob 0.11.0
Exterior ballistics library — API + technical reference
Loading...
Searching...
No Matches
lob.h
Go to the documentation of this file.
1// Copyright (c) 2025 Joel Benway
2// SPDX-License-Identifier: GPL-3.0-or-later
3// Please see end of file for extended copyright information
4
5#ifndef LOB_H
6#define LOB_H
7
8#include <stddef.h>
9#include <stdint.h>
10
11#include "lob/lob_export.hpp"
12
13#ifdef __cplusplus
14extern "C" {
15// NOLINTBEGIN
16#endif
17
19#define LOB_SPLINE_SEGMENTS 15
21#define LOB_BUILDER_BUFFER_SIZE 272
22
24typedef uint8_t LobDragFunctionT;
25enum {
32};
33
36enum {
39 1
40};
41
43typedef uint8_t LobClockAngleT;
44enum {
57};
58
60typedef uint8_t LobErrorT;
61enum {
97};
98
100typedef struct {
101 double x;
102 double y;
103} LobGravity;
104
106typedef struct {
107 double x;
108 double z;
109} LobWind;
110
112typedef struct {
113 double cos_l_sin_a;
114 double sin_l;
115 double cos_l_cos_a;
117
143
145typedef struct {
146 uint32_t range;
147 uint16_t velocity;
148 uint32_t energy;
149 double elevation;
151 double
155} LobOutput;
156
158typedef struct {
159 union {
163 } buffer;
164} LobBuilder;
165
167LOB_EXPORT extern const char* LobVersion(void);
168
170LOB_EXPORT extern void LobBuilderInit(LobBuilder* pbuilder);
173LOB_EXPORT extern void LobBuilderDestroy(LobBuilder* pbuilder);
175LOB_EXPORT extern void LobBuilderCopy(LobBuilder* dst, const LobBuilder* src);
178LOB_EXPORT extern LobBuilder* LobBuilderReset(LobBuilder* pbuilder);
179
187 LobBuilder* pbuilder, double value);
188
196 LobBuilder* pbuilder, LobAtmosphereReferenceT type);
197
208LOB_EXPORT extern LobBuilder* LobBuilderBCDragFunction(LobBuilder* pbuilder,
209 LobDragFunctionT type);
210
217LOB_EXPORT extern LobBuilder* LobBuilderDiameterInch(LobBuilder* pbuilder,
218 double value);
219
227 double value);
228
236 double value);
237
244LOB_EXPORT extern LobBuilder* LobBuilderLengthInch(LobBuilder* pbuilder,
245 double value);
246
253LOB_EXPORT extern LobBuilder* LobBuilderNoseLengthInch(LobBuilder* pbuilder,
254 double value);
255
262LOB_EXPORT extern LobBuilder* LobBuilderTailLengthInch(LobBuilder* pbuilder,
263 double value);
264
271LOB_EXPORT extern LobBuilder* LobBuilderOgiveRtR(LobBuilder* pbuilder,
272 double value);
273
291LOB_EXPORT extern LobBuilder* LobBuilderSplineFitTable(LobBuilder* pbuilder,
292 const float* pmachs,
293 const float* pdrags,
294 size_t size);
295
317 const float* pfps,
318 const float* pbcs,
319 size_t size);
320
327LOB_EXPORT extern LobBuilder* LobBuilderMassGrains(LobBuilder* pbuilder,
328 double value);
329
337 uint16_t value);
338
346 double value);
347
356 double value);
357
367LOB_EXPORT extern LobBuilder* LobBuilderZeroAngleMOA(LobBuilder* pbuilder,
368 double value);
369
377 double value);
378
388 LobBuilder* pbuilder, double value);
389
397 LobBuilder* pbuilder, double value);
398
406 double value);
407
419 LobBuilder* pbuilder, double value);
420
428 double value);
429
441 LobBuilder* pbuilder, double value);
442
450 LobBuilder* pbuilder, double value);
451
459LOB_EXPORT extern LobBuilder* LobBuilderWindHeading(LobBuilder* pbuilder,
460 LobClockAngleT value);
461
469LOB_EXPORT extern LobBuilder* LobBuilderWindHeadingDeg(LobBuilder* pbuilder,
470 double value);
471
478LOB_EXPORT extern LobBuilder* LobBuilderWindSpeedFps(LobBuilder* pbuilder,
479 double value);
480
487LOB_EXPORT extern LobBuilder* LobBuilderWindSpeedMph(LobBuilder* pbuilder,
488 double value);
489
497LOB_EXPORT extern LobBuilder* LobBuilderAzimuthDeg(LobBuilder* pbuilder,
498 double value);
499
507LOB_EXPORT extern LobBuilder* LobBuilderLatitudeDeg(LobBuilder* pbuilder,
508 double value);
509
516LOB_EXPORT extern LobBuilder* LobBuilderRangeAngleDeg(LobBuilder* pbuilder,
517 double value);
518
526LOB_EXPORT extern LobBuilder* LobBuilderMinimumSpeed(LobBuilder* pbuilder,
527 uint16_t value);
528
536LOB_EXPORT extern LobBuilder* LobBuilderMinimumEnergy(LobBuilder* pbuilder,
537 uint16_t value);
538
546LOB_EXPORT extern LobBuilder* LobBuilderMaximumTime(LobBuilder* pbuilder,
547 double value);
548
556LOB_EXPORT extern LobBuilder* LobBuilderStepSize(LobBuilder* pbuilder,
557 uint16_t value);
558
565LOB_EXPORT extern void LobBuilderBuild(LobBuilder* pbuilder,
566 LobContext* presult);
567
579LOB_EXPORT extern size_t LobSolve(const LobContext* pctx,
580 const uint32_t* pranges, LobOutput* pouts,
581 size_t size);
582
595LOB_EXPORT extern size_t LobFastInverse(const LobContext* pctx,
596 LobOutput* pouts, size_t size);
597
613LOB_EXPORT extern size_t LobSolveInverse(const LobContext* pctx,
614 const uint32_t* pranges,
615 LobOutput* pouts, size_t size);
616
621LOB_EXPORT extern double LobMoaToMil(double value);
626LOB_EXPORT extern double LobMoaToDeg(double value);
631LOB_EXPORT extern double LobMoaToIphy(double value);
639LOB_EXPORT extern double LobMoaToInch(double value, double range_ft);
640
645LOB_EXPORT extern double LobMilToMoa(double value);
650LOB_EXPORT extern double LobMilToDeg(double value);
655LOB_EXPORT extern double LobMilToIphy(double value);
663LOB_EXPORT extern double LobMilToInch(double value, double range_ft);
664
669LOB_EXPORT extern double LobDegToMoa(double value);
674LOB_EXPORT extern double LobDegToMil(double value);
675
682LOB_EXPORT extern double LobInchToMoa(double value, double range_ft);
689LOB_EXPORT extern double LobInchToMil(double value, double range_ft);
696LOB_EXPORT extern double LobInchToDeg(double value, double range_ft);
697
702LOB_EXPORT extern double LobJToFtLbs(double value);
707LOB_EXPORT extern double LobFtLbsToJ(double value);
708
713LOB_EXPORT extern double LobMToYd(double value);
718LOB_EXPORT extern double LobYdToFt(double value);
723LOB_EXPORT extern double LobMToFt(double value);
728LOB_EXPORT extern double LobFtToIn(double value);
733LOB_EXPORT extern double LobMmToIn(double value);
738LOB_EXPORT extern double LobCmToIn(double value);
743LOB_EXPORT extern double LobYdToM(double value);
748LOB_EXPORT extern double LobFtToM(double value);
753LOB_EXPORT extern double LobFtToYd(double value);
758LOB_EXPORT extern double LobInToMm(double value);
763LOB_EXPORT extern double LobInToCm(double value);
768LOB_EXPORT extern double LobInToFt(double value);
769
774LOB_EXPORT extern double LobPaToInHg(double value);
779LOB_EXPORT extern double LobMbarToInHg(double value);
784LOB_EXPORT extern double LobPsiToInHg(double value);
785
790LOB_EXPORT extern double LobLbsToGrain(double value);
795LOB_EXPORT extern double LobGToGrain(double value);
800LOB_EXPORT extern double LobKgToGrain(double value);
801
807LOB_EXPORT extern double LobKgSqMToPmsi(double value);
808
813LOB_EXPORT extern double LobFpsToMps(double value);
818LOB_EXPORT extern double LobMpsToFps(double value);
823LOB_EXPORT extern double LobKphToMph(double value);
828LOB_EXPORT extern double LobKnToMph(double value);
829
834LOB_EXPORT extern double LobMsToS(double value);
839LOB_EXPORT extern double LobUsToS(double value);
844LOB_EXPORT extern double LobSToMs(double value);
849LOB_EXPORT extern double LobSToUs(double value);
850
856LOB_EXPORT extern double LobDegCToDegF(double value);
857
858#ifdef __cplusplus
859// NOLINTEND
860}
861#endif
862
863#endif // LOB_H
864
865// This file is part of lob.
866//
867// lob is free software: you can redistribute it and/or modify it under the
868// terms of the GNU General Public License as published by the Free Software
869// Foundation, either version 3 of the License, or (at your option) any later
870// version.
871//
872// lob is distributed in the hope that it will be useful, but WITHOUT ANY
873// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
874// A PARTICULAR PURPOSE. See the GNU General Public License for more details.
875//
876// You should have received a copy of the GNU General Public License along with
877// lob. If not, see <https://www.gnu.org/licenses/>.
LobBuilder * LobBuilderAzimuthDeg(LobBuilder *pbuilder, double value)
Sets the azimuth (bearing) of the target in degrees.
double LobPaToInHg(double value)
Converts pascals to inches of mercury.
void LobBuilderInit(LobBuilder *pbuilder)
Initializes a builder to default state. No-op if pbuilder is null.
double LobInchToDeg(double value, double range_ft)
Inches of projection at a given range to degrees.
double LobMilToInch(double value, double range_ft)
Converts milliradians (MIL) to projected inches at a given range in feet.
double LobSToUs(double value)
Converts seconds to microseconds.
size_t LobSolve(const LobContext *pctx, const uint32_t *pranges, LobOutput *pouts, size_t size)
Solves the exterior ballistics problem for a given set of ranges. Results contain a forward-solution.
double LobMsToS(double value)
Converts milliseconds to seconds.
double LobInToMm(double value)
Converts inches to millimeters.
LobBuilder * LobBuilderWindSpeedFps(LobBuilder *pbuilder, double value)
Sets the wind speed in feet per second.
LobBuilder * LobBuilderTemperatureDegF(LobBuilder *pbuilder, double value)
Sets the temperature in degrees Fahrenheit.
LobBuilder * LobBuilderTailLengthInch(LobBuilder *pbuilder, double value)
Sets the projectile tail length in inches.
LobBuilder * LobBuilderOpticHeightInches(LobBuilder *pbuilder, double value)
Sets the height of the optic above the bore in inches.
#define LOB_BUILDER_BUFFER_SIZE
The size in bytes of the builder buffer.
Definition lob.h:21
double LobMoaToMil(double value)
Converts minutes of angle (MOA) to milliradians (MIL).
double LobFtToM(double value)
Converts feet to meters.
LobBuilder * LobBuilderAirPressureInHg(LobBuilder *pbuilder, double value)
Sets the air pressure in inches of mercury (inHg).
double LobMoaToDeg(double value)
Converts minutes of angle (MOA) to degrees.
LobBuilder * LobBuilderMinimumEnergy(LobBuilder *pbuilder, uint16_t value)
Sets the minimum energy threshold for the solver.
double LobYdToFt(double value)
Converts yards to feet.
LobBuilder * LobBuilderRelativeHumidityPercent(LobBuilder *pbuilder, double value)
Sets the relative humidity at the firing site in percent.
uint8_t LobClockAngleT
Clock angle positions for wind direction.
Definition lob.h:43
LobBuilder * LobBuilderDiameterInch(LobBuilder *pbuilder, double value)
Sets the projectile diameter (caliber) in inches.
LobBuilder * LobBuilderBCAtmosphere(LobBuilder *pbuilder, LobAtmosphereReferenceT type)
Sets the atmosphere reference associated with ballistic coefficient.
size_t LobFastInverse(const LobContext *pctx, LobOutput *pouts, size_t size)
Converts forward-solution output to inverse-solution adjustments.
LobBuilder * LobBuilderLengthInch(LobBuilder *pbuilder, double value)
Sets the projectile length in inches.
double LobDegToMoa(double value)
Converts degrees to minutes of angle (MOA).
LobBuilder * LobBuilderTwistInchesPerTurn(LobBuilder *pbuilder, double value)
Sets the twist rate of the barrel in inches per turn.
LobBuilder * LobBuilderBCVelocityBands(LobBuilder *pbuilder, const float *pfps, const float *pbcs, size_t size)
Loads ballistic coefficients measured at multiple velocities.
const char * LobVersion(void)
Gets the library version in major.minor.patch format.
double LobMmToIn(double value)
Converts millimeters to inches.
uint8_t LobAtmosphereReferenceT
Atmosphere reference type.
Definition lob.h:35
double LobMoaToInch(double value, double range_ft)
Converts minutes of angle (MOA) to projected inches at a given range in feet.
double LobCmToIn(double value)
Converts centimeters to inches.
double LobInToFt(double value)
Converts inches to feet.
LobBuilder * LobBuilderReset(LobBuilder *pbuilder)
Resets a builder state by re-initializing. No-op if pbuilder is null.
double LobFtToYd(double value)
Converts feet to yards.
LobBuilder * LobBuilderLatitudeDeg(LobBuilder *pbuilder, double value)
Sets the latitude of the firing location in degrees.
LobBuilder * LobBuilderBCDragFunction(LobBuilder *pbuilder, LobDragFunctionT type)
Sets the drag function associated with ballistic coefficient.
LobBuilder * LobBuilderMaximumTime(LobBuilder *pbuilder, double value)
Sets the maximum time of flight for the solver.
@ 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
double LobMilToDeg(double value)
Converts milliradians (MIL) to degrees.
LobBuilder * LobBuilderOgiveRtR(LobBuilder *pbuilder, double value)
Sets the Rt/R ratio of the projectile ogive.
@ kLobErrorDiameterOOR
Definition lob.h:74
@ kLobErrorNotFormed
Definition lob.h:87
@ kLobErrorMeplatDiameterOOR
Definition lob.h:85
@ kLobErrorMachDragTableNotMonotonic
Definition lob.h:81
@ kLobErrorBaseDiameterOOR
Definition lob.h:70
@ kLobErrorLatitudeOOR
Definition lob.h:78
@ kLobErrorInternalError
Definition lob.h:77
@ kLobErrorNoseLengthOOR
Definition lob.h:86
@ kLobErrorBallisticCoefficientOOR
Definition lob.h:68
@ kLobErrorZeroAngleOOR
Definition lob.h:92
@ kLobErrorLengthOOR
Definition lob.h:79
@ kLobErrorZeroUnreachable
Definition lob.h:95
@ kLobErrorOgiveRtROOR
Definition lob.h:88
@ kLobErrorMachDragTableTooShort
Definition lob.h:82
@ kLobErrorRangeAngleOOR
Definition lob.h:89
@ kLobErrorZeroDataRequired
Definition lob.h:93
@ kLobErrorMaximumTimeOOR
Definition lob.h:84
@ kLobErrorTailLengthOOR
Definition lob.h:90
@ kLobErrorBallisticCoefficientRequired
Definition lob.h:69
@ kLobErrorBcBandsInvalid
Definition lob.h:71
@ kLobErrorAirPressureOOR
Definition lob.h:63
@ kLobErrorInitialVelocityRequired
Definition lob.h:76
@ kLobErrorNone
Definition lob.h:62
@ kLobErrorHumidityOOR
Definition lob.h:75
@ kLobErrorAzimuthOOR
Definition lob.h:67
@ kLobErrorMassOOR
Definition lob.h:83
@ kLobErrorZeroDistanceOOR
Definition lob.h:94
@ kLobErrorWindHeadingOOR
Definition lob.h:91
@ kLobErrorAltitudeOfThermometerOOR
Definition lob.h:66
@ kLobErrorBcBandsTooShort
Definition lob.h:73
@ kLobErrorMachDragTableInvalid
Definition lob.h:80
@ kLobErrorNumberOfErrors
Definition lob.h:96
@ kLobErrorBcBandsNotMonotonic
Definition lob.h:72
@ kLobErrorAltitudeOfBarometerOOR
Definition lob.h:64
@ kLobErrorAltitudeOfFiringSiteOOR
Definition lob.h:65
double LobSToMs(double value)
Converts seconds to milliseconds.
double LobGToGrain(double value)
Converts grams to grains.
double LobMpsToFps(double value)
Converts meters per second to feet per second.
LobBuilder * LobBuilderZeroAngleMOA(LobBuilder *pbuilder, double value)
Sets the angle between the sight and launch angle used to achieve zero.
double LobJToFtLbs(double value)
Converts joules to foot-pounds.
#define LOB_SPLINE_SEGMENTS
The number of spline pieces comprising a drag function.
Definition lob.h:19
LobBuilder * LobBuilderAltitudeOfThermometerFt(LobBuilder *pbuilder, double value)
Sets the altitude of the location where temperature was taken in feet.
@ 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
double LobKphToMph(double value)
Converts kilometers per hour to miles per hour.
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
double LobFtLbsToJ(double value)
Converts foot-pounds to joules.
LobBuilder * LobBuilderSplineFitTable(LobBuilder *pbuilder, const float *pmachs, const float *pdrags, size_t size)
Loads a custom Mach vs Drag table for the projectile.
double LobKgToGrain(double value)
Converts kilograms to grains.
void LobBuilderBuild(LobBuilder *pbuilder, LobContext *presult)
Builds the LobContext object with the configured parameters.
double LobDegToMil(double value)
Converts degrees to milliradians (MIL).
LobBuilder * LobBuilderRangeAngleDeg(LobBuilder *pbuilder, double value)
Sets the range angle (inclination) to the target in degrees.
LobBuilder * LobBuilderStepSize(LobBuilder *pbuilder, uint16_t value)
Sets the step size for the numerical solver.
LobBuilder * LobBuilderZeroImpactHeightInches(LobBuilder *pbuilder, double value)
Sets the zero impact height in inches.
double LobMbarToInHg(double value)
Converts millibars to inches of mercury.
uint8_t LobErrorT
Error codes returned by the builder.
Definition lob.h:60
double LobMoaToIphy(double value)
Converts minutes of angle (MOA) to inches per hundred yards (IPHY).
double LobMilToMoa(double value)
Converts milliradians (MIL) to minutes of angle (MOA).
double LobInchToMil(double value, double range_ft)
Inches of projection at a given range to milliradians (MIL).
LobBuilder * LobBuilderBallisticCoefficientPsi(LobBuilder *pbuilder, double value)
Sets the ballistic coefficient (Psi).
double LobMToYd(double value)
Converts meters to yards.
double LobFtToIn(double value)
Converts feet to inches.
double LobInToCm(double value)
Converts inches to centimeters.
LobBuilder * LobBuilderAltitudeOfFiringSiteFt(LobBuilder *pbuilder, double value)
Sets the altitude of the firing site in feet.
double LobLbsToGrain(double value)
Converts pounds to grains.
LobBuilder * LobBuilderMinimumSpeed(LobBuilder *pbuilder, uint16_t value)
Sets the minimum speed threshold for the solver.
double LobMilToIphy(double value)
Converts milliradians (MIL) to inches per hundred yards (IPHY).
LobBuilder * LobBuilderZeroDistanceYds(LobBuilder *pbuilder, double value)
Sets the zero distance in yards.
double LobMToFt(double value)
Converts meters to feet.
LobBuilder * LobBuilderNoseLengthInch(LobBuilder *pbuilder, double value)
Sets the projectile nose length in inches.
LobBuilder * LobBuilderInitialVelocityFps(LobBuilder *pbuilder, uint16_t value)
Sets the initial velocity of the projectile in feet per second.
LobBuilder * LobBuilderMeplatDiameterInch(LobBuilder *pbuilder, double value)
Sets the projectile meplat diameter in inches.
LobBuilder * LobBuilderWindHeadingDeg(LobBuilder *pbuilder, double value)
Sets the wind heading in degrees.
LobBuilder * LobBuilderAltitudeOfBarometerFt(LobBuilder *pbuilder, double value)
Sets the altitude of the location where air pressure was taken in feet.
double LobInchToMoa(double value, double range_ft)
Inches of projection at a given range to minutes of angle (MOA).
LobBuilder * LobBuilderMassGrains(LobBuilder *pbuilder, double value)
Sets the projectile mass in grains.
size_t LobSolveInverse(const LobContext *pctx, const uint32_t *pranges, LobOutput *pouts, size_t size)
Solves the exterior ballistics problem for a given set of ranges. Results contain an inverse-solution...
double LobPsiToInHg(double value)
Converts pounds per square inch (PSI) to inches of mercury.
double LobKgSqMToPmsi(double value)
Converts kilograms per square meter to pounds mass per square inch.
LobBuilder * LobBuilderWindHeading(LobBuilder *pbuilder, LobClockAngleT value)
Sets the wind heading using a clock angle.
double LobFpsToMps(double value)
Converts feet per second to meters per second.
double LobDegCToDegF(double value)
Converts degrees celsius to degrees fahrenheit.
double LobKnToMph(double value)
Converts Knots to miles per hour.
double LobYdToM(double value)
Converts yards to meters.
void LobBuilderCopy(LobBuilder *dst, const LobBuilder *src)
Copies builder state from src to dst. No-op if either is null.
LobBuilder * LobBuilderBaseDiameterInch(LobBuilder *pbuilder, double value)
Sets the projectile base diameter in inches.
void LobBuilderDestroy(LobBuilder *pbuilder)
Destroys a builder and releases resources. No-op if pbuilder is null.
LobBuilder * LobBuilderWindSpeedMph(LobBuilder *pbuilder, double value)
Sets the wind speed in miles per hour.
double LobUsToS(double value)
Converts microseconds to seconds.
Opaque builder type for constructing LobContext objects.
Definition lob.h:158
size_t align_size
Definition lob.h:161
uint8_t buffer[272]
Definition lob.h:162
double align_double
Definition lob.h:160
Structure of parameters consumed by the solver.
Definition lob.h:123
float drags[15 *4]
Drag curve coefficients.
Definition lob.h:137
double aerodynamic_jump
Aerodynamic jump effect in Moa.
Definition lob.h:133
LobCoriolis coriolis
Coriolis effect parameters.
Definition lob.h:130
double k_lapse
Projected linear density lapse coeff.
Definition lob.h:135
LobWind wind
Wind vector.
Definition lob.h:129
double speed_of_sound
The local speed of sound in Fps.
Definition lob.h:125
double max_time
Max time of flight for solver.
Definition lob.h:136
double drag_coeff
Drag coefficient scaling factor.
Definition lob.h:124
double stability_factor
Miller stability factor.
Definition lob.h:132
LobErrorT error
Error status after build.
Definition lob.h:141
double mass
Mass of the projectile in pounds.
Definition lob.h:126
uint16_t minimum_speed
Minimum speed for solver.
Definition lob.h:139
double optic_height
Height of the optic above the bore.
Definition lob.h:127
LobGravity gravity
Gravity vector.
Definition lob.h:128
double zero_angle
Angle between sight and trajectory.
Definition lob.h:131
uint16_t velocity
Initial velocity of projectile in Fps.
Definition lob.h:138
double spindrift_factor
Spin drift factor.
Definition lob.h:134
uint16_t step_size
Solver step size in inches.
Definition lob.h:140
Coriolis effect parameters.
Definition lob.h:112
double cos_l_sin_a
2*Omega*cos(latitude)*sin(azimuth)
Definition lob.h:113
double sin_l
2*Omega*sin(latitude)
Definition lob.h:114
double cos_l_cos_a
2*Omega*cos(latitude)*cos(azimuth)
Definition lob.h:115
Gravity vector.
Definition lob.h:100
double x
Acceleration ft/s/s in the x-direction.
Definition lob.h:101
double y
Acceleration ft/s/s in the y-direction.
Definition lob.h:102
Structure holding the output results of a ballistic calculation.
Definition lob.h:145
uint32_t energy
Calculated energy in foot-pounds.
Definition lob.h:148
uint16_t velocity
Calculated velocity in feet per second.
Definition lob.h:147
uint32_t range
Associated range in feet.
Definition lob.h:146
double time_of_flight
Time of flight in seconds.
Definition lob.h:154
double elevation
Elevation change in inches (forward-solution) or MOA adjustment (inverse-solution).
Definition lob.h:149
double deflection
Windage deflection in inches (forward-solution) or MOA adjustment (inverse-solution).
Definition lob.h:152
Wind vector.
Definition lob.h:106
double x
Wind speed in fps in the x-direction.
Definition lob.h:107
double z
Wind speed in fps in the z-direction.
Definition lob.h:108