using UnityEngine;
using UnityEngine.TerrainTools;
namespace UnityEditor.TerrainTools
{
///
/// An interface that represent the controller for smoothing the brush.
///
public interface IBrushSmoothController
{
///
/// Checks if the smooth controller is active.
///
bool active { get; }
///
/// Gets and sets the smooth kernel size.
///
int kernelSize { get; set; }
///
/// Defines data when the brush is selected.
///
void OnEnterToolMode();
///
/// Defines data when the brush is deselected.
///
void OnExitToolMode();
///
/// Triggers events to render objects and displays within Scene view.
///
/// The terrain in focus.
/// The editcontext to reference.
void OnSceneGUI(Terrain terrain, IOnSceneGUI editContext);
///
///
///
/// The terrain in focus.
/// The editcontext to reference.
void OnInspectorGUI(Terrain terrain, IOnInspectorGUI editContext);
///
/// Triggers events when painting on a terrain.
///
/// The terrain in focus.
/// The editcontext to reference.
/// The brush's size.
/// The brush's rotation.
/// The brush's strength.
/// The brush's UV.
/// Returns true when the painting process is successful. Otherwise, returns false.
bool OnPaint(Terrain terrain, IOnPaint editContext, float brushSize, float brushRotation, float brushStrength, Vector2 uv);
}
}