summaryrefslogtreecommitdiffstats
path: root/include/ballistics.h
blob: 7ba4248968a83c7f14ed40eebbae592f78995ac9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef ACE_BALLISTICS_H
#define ACE_BALLISTICS_H

#include "context.h"
#include "drag_model.h"

double atmospheric_correction(double ballistic_coefficient,
                              double temperature,
                              double pressure,
                              double relative_humidity,
                              AtmosphereModel atmosphere_model);

double calculate_air_density(double temperature,
							 double pressure,
							 double relative_humidity);

double retard(DragFunction drag_function,
			  double ballistic_coefficient,
			  double velocity,
			  double temperature);

typedef struct RangeCardRecord RangeCardRecord;
struct RangeCardRecord {
	size_t n;
	double range;
	double elevation;
	Windage windage;
	double lead;
	double time_of_flight;
	double bullet_speed;
	double kinetic_energy;
};
typedef struct RangeCard RangeCard;
struct RangeCard {
	RangeCardRecord *card;
	size_t records;
};

#endif