public Vector3 Gradient(Vector3 pos) { if (ClampFunction(pos)) { return(Vector3.Zero); } return(UnderlyingScalarField.Gradient(pos)); }
public double Value(Vector3 pos) { if (ClampFunction(pos)) { return(0); } return(UnderlyingScalarField.Value(pos)); }
public override bool IsOnManifold(Vector3 point) => Math.Abs(UnderlyingScalarField.Value(point) - PotentialValue) <= MathConstants.DoubleEqualityTolerance;
public override Vector3 PerpVector(Vector3 pointOnSurface) => UnderlyingScalarField.Gradient(pointOnSurface);
public override Vector3 MapToManifold(Vector3 point) => UnderlyingScalarField.GradientTraversal(point, PotentialValue, Tolerance);
public IVectorField ToVectorField() { return(new ClampedVectorField(UnderlyingScalarField.ToVectorField(), ClampFunction)); }