4#include <marenv/marenv.h>
5#include <marenv/seafloor/SoilState.h>
9namespace marenv::seafloor
91 virtual Status ComputeRayIntersection(
const double origin[3],
const double direction[3],
double& distanceOut,
double maxSearchDistance = 100,
double startSearchDistance = -1.0,
double stepSize = 1.0,
double convergenceTolerance = 0.01);
99 static bool IsValidRay(
const double origin[3],
double directionNorm,
double maxSearchDistance);
106 static double FlatSeabedDistance(
double altitude,
const double unitDirection[3]);
Definition BathymetryField.h:25
virtual Status ComputeRayIntersection(const double origin[3], const double direction[3], double &distanceOut, double maxSearchDistance=100, double startSearchDistance=-1.0, double stepSize=1.0, double convergenceTolerance=0.01)
virtual ~BathymetryField()=default
Virtual destructor.
virtual Status GetSoilState(const double pos[3], SoilState &soilOut)=0
static double ValidTolerance(double convergenceTolerance)
The convergence tolerance ComputeRayIntersection uses: convergenceTolerance, raised to 1e-12 if small...
virtual Status ComputeSurfaceUnitNormal(const double pos[2], double unitNormalOut[3])=0
static bool IsValidRay(const double origin[3], double directionNorm, double maxSearchDistance)
True for an origin with finite coordinates, and a direction norm and a maximum search distance that C...
BathymetryField()=default
Constructor is empty.
virtual Status GetDepth(const double pos[2], double &depthOut)=0
Status
Definition marenv.h:40
Policy mixin: this type is neither copyable nor movable.
Definition marenv.h:96
Definition SoilState.h:14