24#ifndef TAPROOT_BALLISTICS_HPP_
25#define TAPROOT_BALLISTICS_HPP_
29#include "modm/math/geometry/vector.hpp"
54 return s + v * dt + 0.5f * a * powf(dt, 2.0f);
82 return modm::Vector3f(
107 const modm::Vector3f &targetPosition,
108 float bulletVelocity,
111 const float pitchAxisOffset = 0);
136 const AbstractKinematicState &targetInitialState,
137 float bulletVelocity,
138 uint8_t numIterations,
141 float *projectedTravelTime,
142 const float pitchAxisOffset = 0);
Definition ballistics.cpp:29
bool findTargetProjectileIntersection(const AbstractKinematicState &targetInitialState, float bulletVelocity, uint8_t numIterations, float *turretPitch, float *turretYaw, float *projectedTravelTime, const float pitchAxisOffset)
Definition ballistics.cpp:76
bool computeTravelTime(const modm::Vector3f &targetPosition, float bulletVelocity, float *travelTime, float *turretPitch, const float pitchAxisOffset)
Definition ballistics.cpp:30
Definition ballistics.hpp:41
static float quadraticKinematicProjection(float dt, float s, float v, float a)
Definition ballistics.hpp:52
virtual modm::Vector3f projectForward(float dt) const =0
Definition ballistics.hpp:59
modm::Vector3f position
Definition ballistics.hpp:70
modm::Vector3f acceleration
Definition ballistics.hpp:72
modm::Vector3f projectForward(float dt) const override
Definition ballistics.hpp:80
modm::Vector3f velocity
Definition ballistics.hpp:71
SecondOrderKinematicState(modm::Vector3f position, modm::Vector3f velocity, modm::Vector3f acceleration)
Definition ballistics.hpp:60