| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.ObjectModel;
- using System.Collections.Generic;
- namespace HighlightingSystem
- {
- [AddComponentMenu("Highlighting System/Highlighting Renderer", 2)]
- public class HighlightingRenderer : HighlightingBase
- {
- #region Static Fields
- static public readonly List<HighlightingPreset> defaultPresets = new List<HighlightingPreset>()
- {
- new HighlightingPreset() { name = "Default", fillAlpha = 0f, downsampleFactor = 4, iterations = 2, blurMinSpread = 0.65f, blurSpread = 0.25f, blurIntensity = 0.3f, blurDirections = BlurDirections.Diagonal },
- new HighlightingPreset() { name = "Wide", fillAlpha = 0f, downsampleFactor = 4, iterations = 4, blurMinSpread = 0.65f, blurSpread = 0.25f, blurIntensity = 0.3f, blurDirections = BlurDirections.Diagonal },
- new HighlightingPreset() { name = "Strong", fillAlpha = 0f, downsampleFactor = 4, iterations = 2, blurMinSpread = 0.5f, blurSpread = 0.15f, blurIntensity = 0.325f, blurDirections = BlurDirections.Diagonal },
- new HighlightingPreset() { name = "Speed", fillAlpha = 0f, downsampleFactor = 4, iterations = 1, blurMinSpread = 0.75f, blurSpread = 0f, blurIntensity = 0.35f, blurDirections = BlurDirections.Diagonal },
- new HighlightingPreset() { name = "Quality", fillAlpha = 0f, downsampleFactor = 2, iterations = 3, blurMinSpread = 0.5f, blurSpread = 0.5f, blurIntensity = 0.28f, blurDirections = BlurDirections.Diagonal },
- new HighlightingPreset() { name = "Solid 1px", fillAlpha = 0f, downsampleFactor = 1, iterations = 1, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All },
- new HighlightingPreset() { name = "Solid 2px", fillAlpha = 0f, downsampleFactor = 1, iterations = 2, blurMinSpread = 1f, blurSpread = 0f, blurIntensity = 1f, blurDirections = BlurDirections.All }
- };
- #endregion
- #region Public Fields
- public ReadOnlyCollection<HighlightingPreset> presets
- {
- get
- {
- if (_presetsReadonly == null)
- {
- _presetsReadonly = _presets.AsReadOnly();
- }
- return _presetsReadonly;
- }
- }
- #endregion
- #region Private Fields
- [SerializeField]
- private List<HighlightingPreset> _presets = new List<HighlightingPreset>(defaultPresets);
- private ReadOnlyCollection<HighlightingPreset> _presetsReadonly;
- #endregion
- #region Public Methods
- // Get stored preset by name
- public bool GetPreset(string name, out HighlightingPreset preset)
- {
- for (int i = 0; i < _presets.Count; i++)
- {
- HighlightingPreset p = _presets[i];
- if (p.name == name)
- {
- preset = p;
- return true;
- }
- }
- preset = new HighlightingPreset();
- return false;
- }
- // Add (store) preset
- public bool AddPreset(HighlightingPreset preset, bool overwrite)
- {
- for (int i = 0; i < _presets.Count; i++)
- {
- HighlightingPreset p = _presets[i];
- if (p.name == preset.name)
- {
- if (overwrite)
- {
- _presets[i] = preset;
- return true;
- }
- else
- {
- return false;
- }
- }
- }
- _presets.Add(preset);
- return true;
- }
- // Find stored preset by name and remove it
- public bool RemovePreset(string name)
- {
- for (int i = 0; i < _presets.Count; i++)
- {
- HighlightingPreset p = _presets[i];
- if (p.name == name)
- {
- _presets.RemoveAt(i);
- return true;
- }
- }
- return false;
- }
- // Find stored preset by name and apply it's settings
- public bool LoadPreset(string name)
- {
- HighlightingPreset preset;
- if (GetPreset(name, out preset))
- {
- ApplyPreset(preset);
- }
- return false;
- }
- // Apply preset settings
- public void ApplyPreset(HighlightingPreset preset)
- {
- downsampleFactor = preset.downsampleFactor;
- iterations = preset.iterations;
- blurMinSpread = preset.blurMinSpread;
- blurSpread = preset.blurSpread;
- blurIntensity = preset.blurIntensity;
- blurDirections = preset.blurDirections;
- }
- //
- public void ClearPresets()
- {
- _presets.Clear();
- }
- #endregion
- }
- }
|