flatFireOffsets method

(double, double) flatFireOffsets(
  1. double time,
  2. double distanceFt,
  3. double dropFt
)

Implementation

(double vertical, double horizontal) flatFireOffsets(
  double time,
  double distanceFt,
  double dropFt,
) {
  if (isFull3d) return (0.0, 0.0);

  final horizontal =
      BallisticConstants.cEarthAngularVelocityRadS *
      distanceFt *
      sinLat *
      time;

  double vertical = 0.0;
  if (sinAz != null) {
    final verticalFactor =
        -2.0 *
        BallisticConstants.cEarthAngularVelocityRadS *
        muzzleVelocityFps *
        cosLat *
        sinAz!;
    vertical =
        dropFt * (verticalFactor / BallisticConstants.cGravityImperial);
  }

  return (vertical, horizontal);
}