FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
PolyplateEnvironmentForces.h
1#ifndef PolyplateEnvironmentForces_h
2#define PolyplateEnvironmentForces_h
3
9#include "CRigidBody.h"
10#include "PolyplateSpec.h"
11
12#include <fhsim_environment/EnvironmentProvider.h>
13#include <marenv/marenv.h>
14
15#include <array>
16#include <vector>
17
18namespace rigidbody
19{
20namespace soilforces
21{
24constexpr int kSplitPolygonCapacity = 9 * kMaxPolyplatePoints;
26using PolygonBuffer = std::array<double, kSplitPolygonCapacity>;
27
31void SplitPolygon(int n, const double* x, const double* y, double* xOut, double* yOut, int& n1, int& n2, double ax, double ay, double a);
33vec6 CalcHydroforcesPolyplate(const vec6& dX, const vec3& r, const quat& q, environment::EnvironmentProvider* environment, double time, const double* states, const PolyplateSpec& plateSpec, double waterDensity = marenv::seawaterDensity);
35vec6 CalcBuoyancyPolyplate(const vec3& r, const quat& q, environment::EnvironmentProvider* environment, double time, const PolyplateSpec& plateSpec, double waterDensity = marenv::seawaterDensity);
36
37
38} // namespace soilforces
39} // namespace rigidbody
40
41#endif
constexpr double seawaterDensity
Ocean water density [kg/m^3].
Definition marenv.h:20