1#ifndef PolyplateEnvironmentForces_h
2#define PolyplateEnvironmentForces_h
5#include "PolyplateSpec.h"
7#include <fhsim_environment/EnvironmentProvider.h>
8#include <marenv/marenv.h>
19constexpr int kSplitPolygonCapacity = 9 * kMaxPolyplatePoints;
21using PolygonBuffer = std::array<double, kSplitPolygonCapacity>;
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);
constexpr double seawaterDensity
Ocean water density.
Definition marenv.h:20