/
TON618OFF
/
Unity-Project-RTU
Обзор
Документация
Войти
/
TON618OFF
/
Unity-Project-RTU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Library/PackageCache/com.unity.visualscripting@1.9.4/Runtime/VisualScripting.Flow/Framework/Math/Round.cs
60 строк
2 KB
TON618OFF
release
03 окт 2024, 22:20
03 окт 2024, 22:20
7c70e9f
Код
Авторство
О чём код?
namespace Unity.VisualScripting { [UnitOrder(202)] public abstract class Round<TInput, TOutput> : Unit { public enum Rounding { Floor = 0, Ceiling = 1, AwayFromZero = 2, } /// <summary> /// The rounding mode. /// </summary> [Inspectable, UnitHeaderInspectable, Serialize] public Rounding rounding { get; set; } = Rounding.AwayFromZero; /// <summary> /// The value to round. /// </summary> [DoNotSerialize] [PortLabelHidden] public ValueInput input { get; private set; } /// <summary> /// The rounded value. /// </summary> [DoNotSerialize] [PortLabelHidden] public ValueOutput output { get; private set; } protected override void Definition() { input = ValueInput<TInput>(nameof(input)); output = ValueOutput(nameof(output), Operation).Predictable(); Requirement(input, output); } protected abstract TOutput Floor(TInput input); protected abstract TOutput AwayFromZero(TInput input); protected abstract TOutput Ceiling(TInput input); public TOutput Operation(Flow flow) { switch (rounding) { case Rounding.Floor: return Floor(flow.GetValue<TInput>(input)); case Rounding.AwayFromZero: return AwayFromZero(flow.GetValue<TInput>(input)); case Rounding.Ceiling: return Ceiling(flow.GetValue<TInput>(input)); default: throw new UnexpectedEnumValueException<Rounding>(rounding); } } } }