static void RebuildTexture(NoiseVolume noiseVolume)
        {
            noiseVolume.RebuildTexture();
            if (coroutine != null)
            {
                coroutine.stop();
            }

            coroutine = EditorCoroutine.Start(CompletionWait(noiseVolume));
        }
        static void CancelGeneration(NoiseVolume noiseVolume)
        {
            if (coroutine != null)
            {
                coroutine.stop();
            }

            coroutine = null;

            noiseVolume.ClearThreads();
        }
        static IEnumerator CompletionWait(NoiseVolume noiseVolume)
        {
            var routine = noiseVolume.CompletionWait();

            while (routine.MoveNext())
            {
                yield return(null);
            }

            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();

            coroutine.stop();
            coroutine = null;
        }