Surface Sampling API (ISurfaceSampler)

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);
}