using System; using Unity.Collections; using Unity.Jobs; using UnityEngine; namespace UnityEngine.Perception.Randomization.Samplers { /// /// Generates random values from probability distributions /// public interface ISampler { /// /// Resets a sampler's state to its base random seed /// void ResetState(); /// /// Resets a sampler's state to its base random seed and then offsets said seed using an index value /// /// /// Often a the active scenario's currentIteration /// void ResetState(int index); /// /// Deterministically offsets a sampler's state when generating values within a batched job /// /// /// The current job index /// void IterateState(int batchIndex); /// /// Generate one sample /// float Sample(); /// /// Schedule a job to generate multiple samples /// NativeArray Samples(int sampleCount, out JobHandle jobHandle); } }