using System.Text; using UnityEngine; using UnityEngine.Experimental.TerrainAPI; namespace Gaia { public delegate void ResetBrush(); public interface IBrushUIGroup { /// /// The normalized size of the brush. /// float brushSize { get; } /// /// The rotation of the brush (in degrees). /// float brushRotation { get; } /// /// The normalized strength of the brush when applied. /// float brushStrength { get; } /// /// The spacing used when applying certain brushes. /// float brushSpacing { get; } string validationMessage { get; set; } /// /// Are we allowed to paint with this brush? /// bool allowPaint { get; } bool InvertStrength { get; } bool isInUse { get; } //FilterStackView brushMaskFilterStackView { get; } //FilterStack brushMaskFilterStack { get; } Terrain terrainUnderCursor { get; } bool isRaycastHitUnderCursorValid { get; } RaycastHit raycastHitUnderCursor { get; } //void OnInspectorGUI(Terrain terrain, IOnInspectorGUI editContext); //void OnEnterToolMode(); //void OnExitToolMode(); //void OnPaint(Terrain terrain, IOnPaint editContext); //void OnSceneGUI2D(Terrain terrain, IOnSceneGUI editContext); // void OnSceneGUI(Terrain terrain, IOnSceneGUI editContext); //void AppendBrushInfo(Terrain terrain, IOnSceneGUI editContext, StringBuilder builder); //RenderTexture GetBrushMask(FilterContext fc, RenderTexture heightContext); /// /// Scatters the brush around the specified UV on the specified terrain. If the scattered UV leaves /// the current terrain then the terrain AND UV are modified for the terrain the UV is now over. /// /// The terrain the scattered UV co-ordinate is actually on. /// The UV co-ordinate passed in transformed into the UV co-ordinate relative to the scattered terrain. /// "true" if we scattered to a terrain, "false" if we fell off ALL terrains. bool ScatterBrushStamp(ref Terrain terrain, ref Vector2 uv); //bool ModifierActive(BrushModifierKey k); } }