function Node_Julia_Set(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Julia"; newInput(0, nodeValue_Dimension(self)); newInput(1, nodeValue_Vec2("C", self, [ -1, 0 ])) .setUnitRef(function(i) /*=>*/ {return getDimension(i)}, VALUE_UNIT.reference); newInput(2, nodeValue_Vec2("Position", self, [ 0, 0 ])) newInput(3, nodeValue_Vec2("Scale", self, [ 1, 1 ])); newInput(4, nodeValue_Rotation("Rotation", self, 0)); newInput(5, nodeValue_Int("Max Iteration", self, 128)); newInput(6, nodeValue_Float("Diverge Threshold", self, 4)); newOutput(0, nodeValue_Output("Surface", self, VALUE_TYPE.surface, noone)); input_display_list = [ 0, ["Julia", false], 1, 5, 6, ["Transform", false], 2, 3, 4, ]; static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { var _pos = current_data[2]; var _px = _x + _pos[0] * _s; var _py = _y + _pos[1] * _s; inputs[2].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); inputs[4].drawOverlay(hover, active, _px, _py, _s, _mx, _my, _snx, _sny); var _dim = current_data[0]; var _px = _x + _dim[0] / 2 * _s; var _py = _y + _dim[1] / 2 * _s; inputs[1].drawOverlay(hover, active, _px, _py, _s, _mx, _my, _snx, _sny); } static step = function() { } static processData = function(_outSurf, _data, _output_index, _array_index = 0) { var _dim = _data[0]; var _c = _data[1]; var _pos = _data[2]; var _sca = _data[3]; var _rot = _data[4]; var _itr = _data[5]; var _div = _data[6]; surface_set_shader(_outSurf, sh_julia_set); shader_set_2("dimension", _dim); shader_set_i("iteration", _itr); shader_set_2("juliaC", _c); shader_set_f("diverge", _div); shader_set_2("position", _pos); shader_set_2("scale", _sca); shader_set_f("rotation", degtorad(_rot)); draw_empty(); surface_reset_shader(); return _outSurf; } }