OverviewΒΆ
This page summarizes the primary classes for this project and how they fit together at runtime.
Core WorkflowΒΆ
Calculator
: High-level entry point to compute trajectories. Accepts aShot
(scene) and returns aHitResult
with trajectory rows and helpers.Shot
: Details a shooting scenario βAmmo
,Atmo
,Weapon
,Wind
, and angles (look/slant, relative, cant).HitResult
: Wrapper for accessing and displaying calculated results, including a list ofTrajectoryData
(which are detailed characteristics of points on the ballistic trajectory).
Projectile & EnvironmentΒΆ
classDiagram
class Shot {
look_angle
relative_angle
}
class Ammo {
mv
temp_modifier
}
class Atmo {
altitude
temperature
pressure
humidity
}
class Wind
class Weapon {
zero_elevation
sight_height
twist
}
class DragModel
class Sight
Shot o-- Ammo
Shot o-- Atmo
Shot o-- "0..n" Wind
Shot o-- "0..1" Weapon
Ammo o-- DragModel
Weapon o-- "0..1" Sight
The classes that comprise a Shot
:
Ammo
: Wraps muzzle velocity, including optional powder temperature sensitivity, together with a DragModel.DragModel
: Physical details of a projectile, including aerodynamic drag as a function of velocity. (Drag is typically modelled via Ballistic Coefficient and standard drag tables β G1, G7, etc.)
Atmo
: Standard or custom atmosphere.Wind
: Piecewise-constant winds by distance.Weapon
: Gun specifications (sight height, rifle twist rate, zero elevation,Sight
details).
EnginesΒΆ
Calculation engines implement different algorithms for integration and targeting. All inherit from BaseIntegrationEngine
.