visual_script_builtin_funcs.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #ifndef VISUAL_SCRIPT_BUILTIN_FUNCS_H
  2. #define VISUAL_SCRIPT_BUILTIN_FUNCS_H
  3. #include "visual_script.h"
  4. class VisualScriptBuiltinFunc : public VisualScriptNode {
  5. OBJ_TYPE(VisualScriptBuiltinFunc,VisualScriptNode)
  6. public:
  7. enum BuiltinFunc {
  8. MATH_SIN,
  9. MATH_COS,
  10. MATH_TAN,
  11. MATH_SINH,
  12. MATH_COSH,
  13. MATH_TANH,
  14. MATH_ASIN,
  15. MATH_ACOS,
  16. MATH_ATAN,
  17. MATH_ATAN2,
  18. MATH_SQRT,
  19. MATH_FMOD,
  20. MATH_FPOSMOD,
  21. MATH_FLOOR,
  22. MATH_CEIL,
  23. MATH_ROUND,
  24. MATH_ABS,
  25. MATH_SIGN,
  26. MATH_POW,
  27. MATH_LOG,
  28. MATH_EXP,
  29. MATH_ISNAN,
  30. MATH_ISINF,
  31. MATH_EASE,
  32. MATH_DECIMALS,
  33. MATH_STEPIFY,
  34. MATH_LERP,
  35. MATH_DECTIME,
  36. MATH_RANDOMIZE,
  37. MATH_RAND,
  38. MATH_RANDF,
  39. MATH_RANDOM,
  40. MATH_SEED,
  41. MATH_RANDSEED,
  42. MATH_DEG2RAD,
  43. MATH_RAD2DEG,
  44. MATH_LINEAR2DB,
  45. MATH_DB2LINEAR,
  46. LOGIC_MAX,
  47. LOGIC_MIN,
  48. LOGIC_CLAMP,
  49. LOGIC_NEAREST_PO2,
  50. OBJ_WEAKREF,
  51. FUNC_FUNCREF,
  52. TYPE_CONVERT,
  53. TYPE_OF,
  54. TYPE_EXISTS,
  55. TEXT_CHAR,
  56. TEXT_STR,
  57. TEXT_PRINT,
  58. TEXT_PRINTERR,
  59. TEXT_PRINTRAW,
  60. VAR_TO_STR,
  61. STR_TO_VAR,
  62. VAR_TO_BYTES,
  63. BYTES_TO_VAR,
  64. FUNC_MAX
  65. };
  66. static int get_func_argument_count(BuiltinFunc p_func);
  67. static String get_func_name(BuiltinFunc p_func);
  68. static void exec_func(BuiltinFunc p_func, const Variant** p_inputs, Variant* r_return, Variant::CallError& r_error, String& r_error_str);
  69. static BuiltinFunc find_function(const String& p_string);
  70. private:
  71. static const char* func_name[FUNC_MAX];
  72. BuiltinFunc func;
  73. protected:
  74. static void _bind_methods();
  75. public:
  76. virtual int get_output_sequence_port_count() const;
  77. virtual bool has_input_sequence_port() const;
  78. virtual String get_output_sequence_port_text(int p_port) const;
  79. virtual int get_input_value_port_count() const;
  80. virtual int get_output_value_port_count() const;
  81. virtual PropertyInfo get_input_value_port_info(int p_idx) const;
  82. virtual PropertyInfo get_output_value_port_info(int p_idx) const;
  83. virtual String get_caption() const;
  84. virtual String get_text() const;
  85. virtual String get_category() const { return "functions"; }
  86. void set_func(BuiltinFunc p_which);
  87. BuiltinFunc get_func();
  88. virtual VisualScriptNodeInstance* instance(VisualScriptInstance* p_instance);
  89. VisualScriptBuiltinFunc();
  90. };
  91. VARIANT_ENUM_CAST(VisualScriptBuiltinFunc::BuiltinFunc)
  92. void register_visual_script_builtin_func_node();
  93. #endif // VISUAL_SCRIPT_BUILTIN_FUNCS_H