FloatConst.hx 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package hrt.shgraph.nodes;
  2. import hide.Element;
  3. using hxsl.Ast;
  4. @name("Float")
  5. @description("Float input, it's static")
  6. @group("Input")
  7. @width(100)
  8. class FloatConst extends ShaderConst {
  9. @output() var output = SType.Float;
  10. @param() var value : Float = 0.5;
  11. override public function getOutputTExpr(key : String) : TExpr {
  12. return {
  13. e: TConst(CFloat(value)),
  14. p: null,
  15. t: TFloat
  16. };
  17. }
  18. override public function build(key : String) : TExpr {
  19. return null;
  20. }
  21. #if editor
  22. override public function getParametersHTML(width : Float) : Array<Element> {
  23. var elements = super.getParametersHTML(width);
  24. var element = new Element('<div style="width: 75px; height: 30px"></div>');
  25. element.append(new Element('<input type="text" id="value" style="width: ${width*0.65}px" value="${value}" />'));
  26. var input = element.children("input");
  27. input.on("change", function(e) {
  28. try {
  29. value = Std.parseFloat(input.val());
  30. } catch (e : Dynamic) {
  31. }
  32. });
  33. elements.push(element);
  34. return elements;
  35. }
  36. #end
  37. }