FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
PolyplateEnvironmentForces.h
1#ifndef PolyplateEnvironmentForces_h
2#define PolyplateEnvironmentForces_h
3
4#include "CRigidBody.h"
5#include "PolyplateSpec.h"
6
7#include <fhsim_environment/EnvironmentProvider.h>
8#include <marenv/marenv.h>
9
10#include <array>
11#include <vector>
12
13namespace rigidbody
14{
15namespace soilforces
16{
19constexpr int kSplitPolygonCapacity = 9 * kMaxPolyplatePoints;
21using PolygonBuffer = std::array<double, kSplitPolygonCapacity>;
22
26void SplitPolygon(int n, const double* x, const double* y, double* xOut, double* yOut, int& n1, int& n2, double ax, double ay, double a);
28vec6 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);
30vec6 CalcBuoyancyPolyplate(const vec3& r, const quat& q, environment::EnvironmentProvider* environment, double time, const PolyplateSpec& plateSpec, double waterDensity = marenv::seawaterDensity);
31
32
33} // namespace soilforces
34} // namespace rigidbody
35
36#endif
constexpr double seawaterDensity
Ocean water density.
Definition marenv.h:20