4#include <marenv/marenv.h>
8namespace marenv::seafloor
103 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);
111 static bool IsValidRay(
const double origin[3],
double directionNorm,
double maxSearchDistance);
118 static double FlatSeabedDistance(
double altitude,
const double unitDirection[3]);
Definition BathymetryField.h:24
virtual Status GetSeabedSigma(const double pos[3], double &sigmaOut)=0
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.
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
virtual Status GetSeabedRho(const double pos[3], double &rhoOut)=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
virtual Status GetSeabedTau(const double pos[3], double &tauOut)=0
Status
Definition marenv.h:40
Policy mixin: this type is neither copyable nor movable.
Definition marenv.h:96