using System;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
namespace UnityEngine.Perception.Randomization.Samplers
{
///
/// Generates random values from probability distributions
///
public interface ISampler
{
uint seed { get; set; }
FloatRange range { get; set; }
///
/// Returns a duplicate sampler with an iterated seed
///
///
/// Offset value is often a the active scenario's currentIteration or framesSinceInitialization.
///
ISampler CopyAndIterate(int index);
///
/// Generate one sample
///
float NextSample();
///
/// Schedule a job to generate multiple samples
///
NativeArray Samples(int sampleCount, out JobHandle jobHandle);
}
}