| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- function map_range_node_init() {
- array_push(nodes_material_utilities, map_range_node_def);
- map_set(parser_material_node_values, "MAPRANGE", map_range_node_value);
- }
- function map_range_node_value(node: ui_node_t, socket: ui_node_socket_t): string {
- let val: string = parser_material_parse_value_input(node.inputs[0]);
- let fmin: string = parser_material_parse_value_input(node.inputs[1]);
- let fmax: string = parser_material_parse_value_input(node.inputs[2]);
- let tmin: string = parser_material_parse_value_input(node.inputs[3]);
- let tmax: string = parser_material_parse_value_input(node.inputs[4]);
- let use_clamp: bool = node.buttons[0].default_value[0] > 0;
- let a: string = "((" + tmin + " - " + tmax + ") / (" + fmin + " - " + fmax + "))";
- let out_val: string = "(" + a + " * " + val + " + " + tmin + " - " + a + " * " + fmin + ")";
- if (use_clamp) {
- return "(clamp(" + out_val + ", " + tmin + ", " + tmax + "))";
- }
- else {
- return out_val;
- }
- }
- let map_range_node_def: ui_node_t = {
- id : 0,
- name : _tr("Map Range"),
- type : "MAPRANGE",
- x : 0,
- y : 0,
- color : 0xff62676d,
- 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 : 1.0,
- precision : 100,
- display : 0
- },
- {
- id : 0,
- node_id : 0,
- name : _tr("From Min"),
- type : "VALUE",
- color : 0xffa1a1a1,
- default_value : f32_array_create_x(0.0),
- min : 0.0,
- max : 1.0,
- precision : 100,
- display : 0
- },
- {
- id : 0,
- node_id : 0,
- name : _tr("From Max"),
- type : "VALUE",
- color : 0xffa1a1a1,
- default_value : f32_array_create_x(1.0),
- min : 0.0,
- max : 1.0,
- precision : 100,
- display : 0
- },
- {
- id : 0,
- node_id : 0,
- name : _tr("To Min"),
- type : "VALUE",
- color : 0xffa1a1a1,
- default_value : f32_array_create_x(0.0),
- min : 0.0,
- max : 1.0,
- precision : 100,
- display : 0
- },
- {
- id : 0,
- node_id : 0,
- name : _tr("To Max"),
- type : "VALUE",
- color : 0xffa1a1a1,
- default_value : f32_array_create_x(1.0),
- min : 0.0,
- max : 1.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.0),
- min : 0.0,
- max : 1.0,
- precision : 100,
- display : 0
- } ],
- buttons : [ {
- name : _tr("Clamp"),
- type : "BOOL",
- output : 0,
- default_value : f32_array_create_x(0),
- data : null,
- min : 0.0,
- max : 1.0,
- precision : 100,
- height : 0
- } ],
- width : 0,
- flags : 0
- };
|