31 explicit SeafloorForces(std::shared_ptr<marenv::seafloor::BathymetryField> bathymetrybroker);
43 seabed::ContactLoad<double>
Sphere(
const seabed::Sphere& sphere,
const double pos[3],
const double vel[3])
override;
45 seabed::NodePairLoad<double>
CableElement(
double diameter,
const double posA[3],
const double posB[3],
const double velA[3],
const double velB[3])
override;
47 seabed::ContactLoad<double>
RigidCylinder(
const seabed::Cylinder& cylinder,
const seabed::RigidMotion<double>& motion)
override;
49 seabed::ContactLoad<double>
Plate(
const seabed::Polygon& polygon,
const seabed::RigidMotion<double>& motion)
override;
51 seabed::ContactLoad<double>
TrawlDoor(
const seabed::TrawlDoorShape& door,
const seabed::RigidMotion<double>& motion)
override;
53 seabed::ContactLoad<double>
AnchorShank(
const seabed::AnchorShank& shank,
const seabed::RigidMotion<double>& motion)
override;
62 auto Evaluate(
const double pos[3],
const Law& law);
69 void WarnOnceNoSeabedDepth(
const double pos[3],
marenv::Status status);
71 seabed::SeabedModel m_model;
73 std::atomic<bool> m_warned{
false};
75 std::shared_ptr<marenv::seafloor::BathymetryField> m_bathymetry;
std::function< void(const std::string &)> WarningSink
Receives the one warning of a run about a contact point with no seabed depth.
Definition SeafloorForces.h:34