The ISurfaceSampler interface abstracts terrain and mesh surface queries.
using UnityEngine;
using ByteLura.EnviroScatter.Editor.Sampling;
public interface ISurfaceSampler
{
bool SampleSurface(Vector3 rayOrigin, Vector3 rayDirection, float maxDistance, out ScatterCandidate candidate);
float GetHeightAt(float worldX, float worldZ);
Vector3 GetNormalAt(float worldX, float worldZ);
}