| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- type float_node_t = {
- base?: logic_node_t;
- value?: f32;
- image?: image_t;
- };
- function float_node_create(arg: f32): float_node_t {
- let n: float_node_t = {};
- n.base = logic_node_create();
- n.base.get = float_node_get;
- n.base.get_as_image = float_node_get_as_image;
- n.base.set = float_node_set;
- n.value = arg;
- return n;
- }
- function float_node_get(self: float_node_t, from: i32): logic_node_value_t {
- if (self.base.inputs.length > 0) {
- return logic_node_input_get(self.base.inputs[0]);
- }
- else {
- let v: logic_node_value_t = { _f32: self.value };
- return v;
- }
- }
- function float_node_get_as_image(self: float_node_t, from: i32): image_t {
- if (self.base.inputs.length > 0) {
- return logic_node_input_get_as_image(self.base.inputs[0]);
- }
- if (self.image != null) {
- image_unload(self.image);
- }
- let b: buffer_t = buffer_create(16);
- let v: buffer_view_t = buffer_view_create(b);
- buffer_view_set_f32(v, 0, self.value);
- buffer_view_set_f32(v, 4, self.value);
- buffer_view_set_f32(v, 8, self.value);
- buffer_view_set_f32(v, 12, 1.0);
- self.image = image_from_bytes(b, 1, 1, tex_format_t.RGBA128);
- return self.image;
- }
- function float_node_set(self: float_node_t, value: any) {
- if (self.base.inputs.length > 0) {
- logic_node_input_set(self.base.inputs[0], value);
- }
- else {
- self.value = value;
- }
- }
- let float_node_def: zui_node_t = {
- id: 0,
- name: _tr("Value"),
- type: "float_node",
- x: 0,
- y: 0,
- color: 0xffb34f5a,
- inputs: [
- {
- id: 0,
- node_id: 0,
- name: _tr("Value"),
- type: "VALUE",
- color: 0xffa1a1a1,
- default_value: f32_array_create_x(0.5),
- min: 0.0,
- max: 10.0,
- precision: 100,
- display: 0
- }
- ],
- outputs: [
- {
- id: 0,
- node_id: 0,
- name: _tr("Value"),
- type: "VALUE",
- color: 0xffa1a1a1,
- default_value: f32_array_create_x(0.5),
- min: 0.0,
- max: 1.0,
- precision: 100,
- display: 0
- }
- ],
- buttons: [],
- width: 0
- };
|