namespace UnityEngine.XR.Content.Rendering
{
    /// 
    /// Specifies how a material is applied to renderer for highlighting
    /// 
    public enum MaterialHighlightMode
    {
        /// Adds a new material to the renderers materials array
        Layer,
        /// Replace the renderers materials with materials
        Replace,
    }
    /// 
    /// Identifies a script as one that can apply a highlight to renderers
    /// 
    public interface IMaterialHighlight
    {
        /// 
        /// How a new material will be applied to the renderer's material array.
        /// 
        MaterialHighlightMode highlightMode { get; set; }
        /// 
        /// Material to use for highlighting
        /// 
        Material highlightMaterial { get; }
        /// 
        /// Used to set up any initial values or materials
        /// 
        void Initialize();
        /// 
        /// Used to remove any persistent objects
        /// 
        void Deinitialize();
        /// 
        /// Raised when a highlight operations has completed
        /// 
        void OnHighlight();
        /// 
        /// Raised when a un-highlight operations has completed
        /// 
        /// A requested delay to transition out the highlight
        float OnUnhighlight();
    }
}