43 lines
1.1 KiB
C#
43 lines
1.1 KiB
C#
namespace Unity.VisualScripting
|
|
{
|
|
[UnitOrder(402)]
|
|
public abstract class Distance<T> : Unit
|
|
{
|
|
/// <summary>
|
|
/// The first vector.
|
|
/// </summary>
|
|
[DoNotSerialize]
|
|
public ValueInput a { get; private set; }
|
|
|
|
/// <summary>
|
|
/// The second vector.
|
|
/// </summary>
|
|
[DoNotSerialize]
|
|
public ValueInput b { get; private set; }
|
|
|
|
/// <summary>
|
|
/// The distance between A and B.
|
|
/// </summary>
|
|
[DoNotSerialize]
|
|
[PortLabelHidden]
|
|
public ValueOutput distance { get; private set; }
|
|
|
|
protected override void Definition()
|
|
{
|
|
a = ValueInput<T>(nameof(a));
|
|
b = ValueInput<T>(nameof(b));
|
|
distance = ValueOutput(nameof(distance), Operation).Predictable();
|
|
|
|
Requirement(a, distance);
|
|
Requirement(b, distance);
|
|
}
|
|
|
|
private float Operation(Flow flow)
|
|
{
|
|
return Operation(flow.GetValue<T>(a), flow.GetValue<T>(b));
|
|
}
|
|
|
|
public abstract float Operation(T a, T b);
|
|
}
|
|
}
|