FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
NetAccelerationLimit.h
1
3#pragma once
4
5#include <cmath>
6
13inline void LimitAccelerationMagnitude(double acceleration[3], double maxAcceleration)
14{
15 const double magnitude = std::sqrt(acceleration[0] * acceleration[0] + acceleration[1] * acceleration[1] + acceleration[2] * acceleration[2]);
16 if (magnitude > maxAcceleration) {
17 const double scale = maxAcceleration / magnitude;
18 for (int index = 0; index < 3; index++) {
19 acceleration[index] *= scale;
20 }
21 }
22}