|
|
|
|
|
|
using System.Reflection; |
|
|
|
|
|
|
|
namespace UnityEngine.MaterialGraph |
|
|
|
{ |
|
|
|
[Title("Vector/Rejection Node")] |
|
|
|
public class VectorRejectionNode : CodeFunctionNode |
|
|
|
{ |
|
|
|
public VectorRejectionNode() |
|
|
|
{ |
|
|
|
name = "VectorRejection"; |
|
|
|
} |
|
|
|
|
|
|
|
protected override MethodInfo GetFunctionToConvert() |
|
|
|
{ |
|
|
|
return GetType().GetMethod("Unity_VectorRejection", BindingFlags.Static | BindingFlags.NonPublic); |
|
|
|
} |
|
|
|
|
|
|
|
static string Unity_VectorRejection( |
|
|
|
[Slot(0, Binding.None)] DynamicDimensionVector first, |
|
|
|
[Slot(1, Binding.None)] DynamicDimensionVector second, |
|
|
|
[Slot(2, Binding.None)] out DynamicDimensionVector result) |
|
|
|
{ |
|
|
|
return |
|
|
|
@"
|
|
|
|
{ |
|
|
|
result = first - (second * dot(first, second) / dot(second, second)); |
|
|
|
} |
|
|
|
";
|
|
|
|
} |
|
|
|
} |
|
|
|
} |