lob 0.8.0
 
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_TABLE_SIZE 85
21#define LOB_BUILDER_BUFFER_SIZE 576
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 {
89};
90
92typedef struct {
93 double x;
94 double y;
96
98typedef struct {
99 double x;
100 double z;
101} LobWind;
102
104typedef struct {
105 double cos_l_sin_a;
106 double sin_l;
107 double cos_l_cos_a;
109
134
136typedef struct {
137 uint32_t range;
138 uint16_t velocity;
139 uint32_t energy;
140 double elevation;
141 double deflection;
143} LobOutput;
144
146typedef struct {
147 union {
152 } buffer;
153} LobBuilder;
154
156LOB_EXPORT extern const char* LobVersion(void);
157
159LOB_EXPORT extern void LobBuilderInit(LobBuilder* builder);
161LOB_EXPORT extern void LobBuilderDestroy(LobBuilder* builder);
163LOB_EXPORT extern void LobBuilderCopy(LobBuilder* dst, const LobBuilder* src);
165LOB_EXPORT extern LobBuilder* LobBuilderReset(LobBuilder* builder);
166
174 LobBuilder* builder, double value);
175
183 LobBuilder* builder, LobAtmosphereReferenceT type);
184
192 LobDragFunctionT type);
193
200LOB_EXPORT extern LobBuilder* LobBuilderDiameterInch(LobBuilder* builder,
201 double value);
202
210 double value);
211
219 double value);
220
227LOB_EXPORT extern LobBuilder* LobBuilderLengthInch(LobBuilder* builder,
228 double value);
229
237 double value);
238
246 double value);
247
254LOB_EXPORT extern LobBuilder* LobBuilderOgiveRtR(LobBuilder* builder,
255 double value);
256
268 const float* pmachs,
269 const float* pdrags,
270 size_t size);
271
278LOB_EXPORT extern LobBuilder* LobBuilderMassGrains(LobBuilder* builder,
279 double value);
280
288 uint16_t value);
289
297 double value);
298
307 double value);
308
318LOB_EXPORT extern LobBuilder* LobBuilderZeroAngleMOA(LobBuilder* builder,
319 double value);
320
328 double value);
329
339 LobBuilder* builder, double value);
340
348 LobBuilder* builder, double value);
349
357 double value);
358
370 LobBuilder* builder, double value);
371
379 double value);
380
392 LobBuilder* builder, double value);
393
401 LobBuilder* builder, double value);
402
410LOB_EXPORT extern LobBuilder* LobBuilderWindHeading(LobBuilder* builder,
411 LobClockAngleT value);
412
421 double value);
422
429LOB_EXPORT extern LobBuilder* LobBuilderWindSpeedFps(LobBuilder* builder,
430 double value);
431
438LOB_EXPORT extern LobBuilder* LobBuilderWindSpeedMph(LobBuilder* builder,
439 double value);
440
448LOB_EXPORT extern LobBuilder* LobBuilderAzimuthDeg(LobBuilder* builder,
449 double value);
450
458LOB_EXPORT extern LobBuilder* LobBuilderLatitudeDeg(LobBuilder* builder,
459 double value);
460
468 double value);
469
477LOB_EXPORT extern LobBuilder* LobBuilderMinimumSpeed(LobBuilder* builder,
478 uint16_t value);
479
488 uint16_t value);
489
497LOB_EXPORT extern LobBuilder* LobBuilderMaximumTime(LobBuilder* builder,
498 double value);
499
507LOB_EXPORT extern LobBuilder* LobBuilderStepSize(LobBuilder* builder,
508 uint16_t value);
509
515LOB_EXPORT extern LobInput LobBuilderBuild(LobBuilder* builder);
516
525LOB_EXPORT extern size_t LobSolve(const LobInput* in, const uint32_t* pranges,
526 LobOutput* pouts, size_t size);
527
532LOB_EXPORT extern double LobMoaToMil(double value);
537LOB_EXPORT extern double LobMoaToDeg(double value);
542LOB_EXPORT extern double LobMoaToIphy(double value);
550LOB_EXPORT extern double LobMoaToInch(double value, double range_ft);
551
556LOB_EXPORT extern double LobMilToMoa(double value);
561LOB_EXPORT extern double LobMilToDeg(double value);
566LOB_EXPORT extern double LobMilToIphy(double value);
574LOB_EXPORT extern double LobMilToInch(double value, double range_ft);
575
580LOB_EXPORT extern double LobDegToMoa(double value);
585LOB_EXPORT extern double LobDegToMil(double value);
586
593LOB_EXPORT extern double LobInchToMoa(double value, double range_ft);
600LOB_EXPORT extern double LobInchToMil(double value, double range_ft);
607LOB_EXPORT extern double LobInchToDeg(double value, double range_ft);
608
613LOB_EXPORT extern double LobJToFtLbs(double value);
618LOB_EXPORT extern double LobFtLbsToJ(double value);
619
624LOB_EXPORT extern double LobMToYd(double value);
629LOB_EXPORT extern double LobYdToFt(double value);
634LOB_EXPORT extern double LobMToFt(double value);
639LOB_EXPORT extern double LobFtToIn(double value);
644LOB_EXPORT extern double LobMmToIn(double value);
649LOB_EXPORT extern double LobCmToIn(double value);
654LOB_EXPORT extern double LobYdToM(double value);
659LOB_EXPORT extern double LobFtToM(double value);
664LOB_EXPORT extern double LobFtToYd(double value);
669LOB_EXPORT extern double LobInToMm(double value);
674LOB_EXPORT extern double LobInToCm(double value);
679LOB_EXPORT extern double LobInToFt(double value);
680
685LOB_EXPORT extern double LobPaToInHg(double value);
690LOB_EXPORT extern double LobMbarToInHg(double value);
695LOB_EXPORT extern double LobPsiToInHg(double value);
696
701LOB_EXPORT extern double LobLbsToGrain(double value);
706LOB_EXPORT extern double LobGToGrain(double value);
711LOB_EXPORT extern double LobKgToGrain(double value);
712
718LOB_EXPORT extern double LobKgSqMToPmsi(double value);
719
724LOB_EXPORT extern double LobFpsToMps(double value);
729LOB_EXPORT extern double LobMpsToFps(double value);
734LOB_EXPORT extern double LobKphToMph(double value);
739LOB_EXPORT extern double LobKnToMph(double value);
740
745LOB_EXPORT extern double LobMsToS(double value);
750LOB_EXPORT extern double LobUsToS(double value);
755LOB_EXPORT extern double LobSToMs(double value);
760LOB_EXPORT extern double LobSToUs(double value);
761
767LOB_EXPORT extern double LobDegCToDegF(double value);
768
769#ifdef __cplusplus
770// NOLINTEND
771}
772#endif
773
774#endif // LOB_H
775
776// This file is part of lob.
777//
778// lob is free software: you can redistribute it and/or modify it under the
779// terms of the GNU General Public License as published by the Free Software
780// Foundation, either version 3 of the License, or (at your option) any later
781// version.
782//
783// lob is distributed in the hope that it will be useful, but WITHOUT ANY
784// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
785// A PARTICULAR PURPOSE. See the GNU General Public License for more details.
786//
787// You should have received a copy of the GNU General Public License along with
788// lob. If not, see <https://www.gnu.org/licenses/>.
LOB_EXPORT double LobKgSqMToPmsi(double value)
Converts kilograms per square meter to pounds mass per square inch.
LOB_EXPORT double LobFtToIn(double value)
Converts feet to inches.
LOB_EXPORT double LobPaToInHg(double value)
Converts pascals to inches of mercury.
LOB_EXPORT double LobMoaToMil(double value)
Converts minutes of angle (MOA) to milliradians (MIL).
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 double LobJToFtLbs(double value)
Converts joules to foot-pounds.
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 double LobInToMm(double value)
Converts inches to millimeters.
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 double LobMoaToDeg(double value)
Converts minutes of angle (MOA) to degrees.
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 double LobInchToMil(double value, double range_ft)
Inches of projection at a given range to milliradians (MIL).
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 double LobMpsToFps(double value)
Converts meters per second to feet per second.
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 double LobMmToIn(double value)
Converts millimeters to inches.
LOB_EXPORT LobBuilder * LobBuilderMinimumSpeed(LobBuilder *builder, uint16_t value)
Sets the minimum speed threshold for the solver.
LOB_EXPORT double LobFpsToMps(double value)
Converts feet per second to meters per second.
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 double LobCmToIn(double value)
Converts centimeters to inches.
LOB_EXPORT double LobMbarToInHg(double value)
Converts millibars to inches of mercury.
LOB_EXPORT double LobYdToM(double value)
Converts yards to meters.
LOB_EXPORT LobBuilder * LobBuilderMeplatDiameterInch(LobBuilder *builder, double value)
Sets the projectile meplat diameter in inches.
LOB_EXPORT double LobInToFt(double value)
Converts inches to feet.
LOB_EXPORT double LobInToCm(double value)
Converts inches to centimeters.
@ 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.
LOB_EXPORT double LobPsiToInHg(double value)
Converts pounds per square inch (PSI) to inches of mercury.
@ 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 double LobKgToGrain(double value)
Converts kilograms to grains.
LOB_EXPORT double LobInchToDeg(double value, double range_ft)
Inches of projection at a given range to degrees.
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
LOB_EXPORT double LobKnToMph(double value)
Converts Knots to miles per hour.
@ 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 double LobDegCToDegF(double value)
Converts degrees celsius to degrees fahrenheit.
LOB_EXPORT LobBuilder * LobBuilderStepSize(LobBuilder *builder, uint16_t value)
Sets the step size for the numerical solver.
LOB_EXPORT double LobFtToYd(double value)
Converts feet to yards.
LOB_EXPORT double LobGToGrain(double value)
Converts grams to grains.
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 const char * LobVersion(void)
Gets the library version in major.minor.patch format.
LOB_EXPORT double LobMoaToIphy(double value)
Converts minutes of angle (MOA) to inches per hundred yards (IPHY).
LOB_EXPORT double LobLbsToGrain(double value)
Converts pounds to grains.
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 double LobFtLbsToJ(double value)
Converts foot-pounds to joules.
LOB_EXPORT double LobKphToMph(double value)
Converts kilometers per hour to miles per hour.
LOB_EXPORT LobBuilder * LobBuilderAltitudeOfBarometerFt(LobBuilder *builder, double value)
Sets the altitude of the location where air pressure was taken in feet.
LOB_EXPORT double LobMsToS(double value)
Converts milliseconds to seconds.
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 double LobSToMs(double value)
Converts seconds to milliseconds.
LOB_EXPORT LobBuilder * LobBuilderBaseDiameterInch(LobBuilder *builder, double value)
Sets the projectile base diameter in inches.
LOB_EXPORT LobInput LobBuilderBuild(LobBuilder *builder)
Builds the LobInput object with the configured parameters.
LOB_EXPORT double LobYdToFt(double value)
Converts yards to feet.
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 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 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 double LobMToYd(double value)
Converts meters to yards.
LOB_EXPORT double LobSToUs(double value)
Converts seconds to microseconds.
LOB_EXPORT double LobInchToMoa(double value, double range_ft)
Inches of projection at a given range to minutes of angle (MOA).
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 double LobMilToMoa(double value)
Converts milliradians (MIL) to minutes of angle (MOA).
LOB_EXPORT LobBuilder * LobBuilderBCDragFunction(LobBuilder *builder, LobDragFunctionT type)
Sets the drag function associated with ballistic coefficient.
LOB_EXPORT double LobDegToMoa(double value)
Converts degrees to minutes of angle (MOA).
LOB_EXPORT double LobFtToM(double value)
Converts feet to meters.
LOB_EXPORT double LobMilToInch(double value, double range_ft)
Converts milliradians (MIL) to projected inches at a given range in feet.
LOB_EXPORT LobBuilder * LobBuilderAzimuthDeg(LobBuilder *builder, double value)
Sets the azimuth (bearing) of the target in degrees.
LOB_EXPORT double LobMilToDeg(double value)
Converts milliradians (MIL) to degrees.
LOB_EXPORT double LobUsToS(double value)
Converts microseconds to seconds.
LOB_EXPORT LobBuilder * LobBuilderMassGrains(LobBuilder *builder, double value)
Sets the projectile mass in grains.
LOB_EXPORT double LobDegToMil(double value)
Converts degrees to milliradians (MIL).
LOB_EXPORT double LobMilToIphy(double value)
Converts milliradians (MIL) to inches per hundred yards (IPHY).
LOB_EXPORT double LobMToFt(double value)
Converts meters to feet.
Opaque builder type for constructing LobInput objects.
Definition lob.h:146
uint8_t buffer[LOB_BUILDER_BUFFER_SIZE]
Definition lob.h:151
size_t align_size
Definition lob.h:150
LobInput align_input
Definition lob.h:148
double align_double
Definition lob.h:149
Coriolis effect parameters.
Definition lob.h:104
double cos_l_sin_a
2*Omega*cos(latitude)*sin(azimuth)
Definition lob.h:105
double sin_l
2*Omega*sin(latitude)
Definition lob.h:106
double cos_l_cos_a
2*Omega*cos(latitude)*cos(azimuth)
Definition lob.h:107
Gravity vector.
Definition lob.h:92
double x
Acceleration ft/s/s in the x-direction.
Definition lob.h:93
double y
Acceleration ft/s/s in the y-direction.
Definition lob.h:94
Structure of input parameters consumed by the solver.
Definition lob.h:115
double zero_angle
Angle between sight and trajectory.
Definition lob.h:125
uint16_t velocity
Initial velocity of projectile in Fps.
Definition lob.h:119
LobGravity gravity
Gravity vector.
Definition lob.h:122
LobCoriolis coriolis
Coriolis effect parameters.
Definition lob.h:124
double aerodynamic_jump
Aerodynamic jump effect in Moa.
Definition lob.h:127
uint16_t step_size
Step size for solver.
Definition lob.h:131
double mass
Mass of the projectile in pounds.
Definition lob.h:120
double table_coefficient
Used to scale the drag table.
Definition lob.h:117
double stability_factor
Miller stability factor.
Definition lob.h:126
LobWind wind
Wind vector.
Definition lob.h:123
double optic_height
Height of the optic above the bore.
Definition lob.h:121
LobErrorT error
Builder error field.
Definition lob.h:132
uint16_t minimum_speed
Minimum speed for solver.
Definition lob.h:129
double max_time
Max time of flight for solver.
Definition lob.h:130
double spindrift_factor
Spin drift factor.
Definition lob.h:128
uint16_t drags[LOB_TABLE_SIZE]
The drag table.
Definition lob.h:116
double speed_of_sound
The local speed of sound in Fps.
Definition lob.h:118
Structure holding the output results of a ballistic calculation.
Definition lob.h:136
uint32_t energy
Calculated energy in foot-pounds.
Definition lob.h:139
uint16_t velocity
Calculated velocity in feet per second.
Definition lob.h:138
uint32_t range
Associated range in yards.
Definition lob.h:137
double time_of_flight
Time of flight in seconds.
Definition lob.h:142
double elevation
Calculated elevation change in inches.
Definition lob.h:140
double deflection
Calculated windage deflection in inches.
Definition lob.h:141
Wind vector.
Definition lob.h:98
double x
Wind speed in fps in the x-direction.
Definition lob.h:99
double z
Wind speed in fps in the z-direction.
Definition lob.h:100