TriangleWaveNode.cs 735 B

12345678910111213141516171819202122232425262728293031
  1. using System.Reflection;
  2. namespace UnityEditor.ShaderGraph
  3. {
  4. [Title("Math", "Wave", "Triangle Wave")]
  5. class TriangleWaveNode : CodeFunctionNode
  6. {
  7. public TriangleWaveNode()
  8. {
  9. name = "Triangle Wave";
  10. }
  11. protected override MethodInfo GetFunctionToConvert()
  12. {
  13. return GetType().GetMethod("TriangleWave", BindingFlags.Static | BindingFlags.NonPublic);
  14. }
  15. static string TriangleWave(
  16. [Slot(0, Binding.None)] DynamicDimensionVector In,
  17. [Slot(1, Binding.None)] out DynamicDimensionVector Out)
  18. {
  19. return
  20. @"
  21. {
  22. Out = 2.0 * abs( 2 * (In - floor(0.5 + In)) ) - 1.0;
  23. }
  24. ";
  25. }
  26. }
  27. }