File size: 1,488 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | namespace Unity.VisualScripting
{
[UnitOrder(104)]
public abstract class Divide<T> : Unit
{
/// <summary>
/// The dividend (or numerator).
/// </summary>
[DoNotSerialize]
[PortLabel("A")]
public ValueInput dividend { get; private set; }
/// <summary>
/// The divisor (or denominator).
/// </summary>
[DoNotSerialize]
[PortLabel("B")]
public ValueInput divisor { get; private set; }
/// <summary>
/// The quotient of the dividend and divisor (numerator / denominator).
/// </summary>
[DoNotSerialize]
[PortLabel("A \u00F7 B")]
public ValueOutput quotient { get; private set; }
[DoNotSerialize]
protected virtual T defaultDivisor => default(T);
[DoNotSerialize]
protected virtual T defaultDividend => default(T);
protected override void Definition()
{
dividend = ValueInput(nameof(dividend), defaultDividend);
divisor = ValueInput(nameof(divisor), defaultDivisor);
quotient = ValueOutput(nameof(quotient), Operation).Predictable();
Requirement(dividend, quotient);
Requirement(divisor, quotient);
}
public abstract T Operation(T divident, T divisor);
public T Operation(Flow flow)
{
return Operation(flow.GetValue<T>(dividend), flow.GetValue<T>(divisor));
}
}
}
|