using UnityEngine;
namespace UnityEditor.TerrainTools
{
///
/// An interface that represent the brush terrain caching system.
///
public interface IBrushTerrainCache
{
///
/// Handles the locking of the terrain cursor in it's current position.
///
/// This method is commonly used when utilizing shortcuts.
/// Whether the cursor is visible within the scene. When the value is true the cursor is visible.
///
void LockTerrainUnderCursor(bool cursorVisible);
///
/// Handles unlocking of the terrain cursor.
///
///
void UnlockTerrainUnderCursor();
///
/// Checks if the cursor is currently locked and can not be updated.
///
bool canUpdateTerrainUnderCursor { get; }
///
/// Gets and sets the terrain in focus.
///
Terrain terrainUnderCursor { get; }
///
/// Gets and sets the value associated to whether there is a raycast hit detecting a terrain under the cursor.
///
bool isRaycastHitUnderCursorValid { get; }
///
/// Gets and sets the raycast hit that was under the cursor's position.
///
RaycastHit raycastHitUnderCursor { get; }
}
}