(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name))Object.defineProperty(exports, name,{configurable:false,enumerable:true,get:getter})};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=84)})([function(module,__webpack_exports__, __webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__b4w_js__=__webpack_require__(32);var _factories={};__webpack_exports__["a"]=function(module_name,module_context,export_functions){var _ns={};var is_internal=module_name.split("").slice(0,2).join("")=="__";function internal_factory(){return function(ns){ns=ns||"__b4w_default";if(_ns[ns]!==undefined)return _ns[ns];_ns[ns]=is_internal?{}:internal_factory();module_context(ns,_ns[ns]);return _ns[ns]}}if(_factories[module_name]!==undefined)return _factories[module_name]; else{var factory=is_internal?internal_factory():internal_factory()();__WEBPACK_IMPORTED_MODULE_0__b4w_js__["a"]._n_module[module_name]=_factories[module_name]=factory;return factory}}},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);function Print(ns,exports){var _verbose=false;var _error_count=0;var _warning_count=0;var _deprecated_methods={};exports.set_verbose=function(v){_verbose=v};exports.log_raw=function(){console.log.apply(console, arguments)};exports.log=function(){if(_verbose){var args=compose_args_prefix(arguments,"B4W LOG");console.log.apply(console,args)}};exports.compose_args_prefix=compose_args_prefix;function compose_args_prefix(args_in,prefix){var args_out=[];if(args_in[0].indexOf("%c")>-1)args_out.push(args_in[0].replace("%c","%c"+prefix+": "));else args_out.push(prefix+": "+args_in[0]);for(var i=1;i1){case true:error_once(depr_func+ "() is deprecated, use "+new_func_arr.slice(0,-1).join("(), ")+"() or "+new_func_arr[new_func_arr.length-1]+"() instead.");break;case false:error_deprecated(depr_func,new_func_arr[0]);break}};exports.error_deprecated_cfg=function(depr_cfg,new_cfg){if(new_cfg===undefined)error_once('Config option "'+depr_cfg+'" is deprecated.');else error_once('Config option "'+depr_cfg+'" is deprecated, use "'+new_cfg+'" instead.')};exports.warn=function(){_warning_count++;var args=compose_args_prefix(arguments,"B4W WARN"); console.warn.apply(console,args)};exports.info=function(){var args=compose_args_prefix(arguments,"B4W INFO");console.info.apply(console,args)};exports.export_error=function(){_error_count++;var args=compose_args_prefix(arguments,"B4W EXPORT ERROR");console.error.apply(console,args)};exports.export_warn=function(){_warning_count++;var args=compose_args_prefix(arguments,"B4W EXPORT WARNING");console.warn.apply(console,args)};exports.time=function(){if(_verbose)console.time.apply(console,arguments)}; exports.timeEnd=function(){if(_verbose)console.timeEnd.apply(console,arguments)};exports.group=function(){console.group.apply(console,arguments)};exports.groupCollapsed=function(){console.groupCollapsed.apply(console,arguments)};exports.groupEnd=function(){console.groupEnd.apply(console,arguments)};exports.clear=function(){if(typeof console.clear=="function")console.clear.apply(console,arguments)};exports.get_warning_count=function(){return _warning_count};exports.get_error_count=function(){return _error_count}; exports.clear_errors_warnings=function(){_warning_count=0;_error_count=0}}var print_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("print",Print);Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__print",Print);__webpack_exports__["a"]=print_factory},function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,"m",function(){return VEC3_IDENT});__webpack_require__.d(__webpack_exports__,"k",function(){return QUAT4_IDENT});__webpack_require__.d(__webpack_exports__, "n",function(){return VEC3_UNIT});__webpack_require__.d(__webpack_exports__,"d",function(){return AXIS_X});__webpack_require__.d(__webpack_exports__,"e",function(){return AXIS_Y});__webpack_require__.d(__webpack_exports__,"f",function(){return AXIS_Z});__webpack_require__.d(__webpack_exports__,"a",function(){return AXIS_MX});__webpack_require__.d(__webpack_exports__,"b",function(){return AXIS_MY});__webpack_require__.d(__webpack_exports__,"c",function(){return AXIS_MZ});__webpack_require__.d(__webpack_exports__, "o",function(){return XYX});__webpack_require__.d(__webpack_exports__,"v",function(){return YZY});__webpack_require__.d(__webpack_exports__,"x",function(){return ZXZ});__webpack_require__.d(__webpack_exports__,"q",function(){return XZX});__webpack_require__.d(__webpack_exports__,"s",function(){return YXY});__webpack_require__.d(__webpack_exports__,"z",function(){return ZYZ});__webpack_require__.d(__webpack_exports__,"p",function(){return XYZ});__webpack_require__.d(__webpack_exports__,"u",function(){return YZX}); __webpack_require__.d(__webpack_exports__,"w",function(){return ZXY});__webpack_require__.d(__webpack_exports__,"r",function(){return XZY});__webpack_require__.d(__webpack_exports__,"t",function(){return YXZ});__webpack_require__.d(__webpack_exports__,"y",function(){return ZYX});__webpack_exports__["_15"]=is_array;__webpack_require__.d(__webpack_exports__,"j",function(){return INV_CUBE_VIEW_MATRS});__webpack_require__.d(__webpack_exports__,"g",function(){return BYTE_SIZE});__webpack_require__.d(__webpack_exports__, "l",function(){return SHORT_SIZE});__webpack_require__.d(__webpack_exports__,"h",function(){return FLOAT_SIZE});__webpack_require__.d(__webpack_exports__,"i",function(){return INT_SIZE});__webpack_exports__["_17"]=isdef;__webpack_exports__["_18"]=keyfind;__webpack_exports__["_1"]=f32;__webpack_exports__["_2"]=float32_concat;__webpack_exports__["_67"]=uint32_concat;__webpack_exports__["K"]=check_endians;__webpack_exports__["D"]=array_intersect;__webpack_exports__["_50"]=sign;__webpack_exports__["_19"]= keysearch;__webpack_exports__["_9"]=get_index_for_key_value;__webpack_exports__["C"]=append_unique;__webpack_exports__["_60"]=trans_matrix;__webpack_exports__["_40"]=rand_r;__webpack_exports__["_13"]=init_rand_r_seed;__webpack_exports__["Y"]=euler_to_quat;__webpack_exports__["_27"]=ordered_angles_to_quat;__webpack_exports__["_37"]=quat_to_ordered_angles;__webpack_exports__["Z"]=euler_to_rotation_matrix;__webpack_exports__["_36"]=quat_to_euler;__webpack_exports__["_34"]=quat_to_dir;__webpack_exports__["U"]= dir_to_quat;__webpack_exports__["_61"]=trans_quat_to_plane;__webpack_exports__["G"]=blend_arrays;__webpack_exports__["O"]=clone_object_r;__webpack_exports__["N"]=clone_object_nr;__webpack_exports__["_24"]=matrix_to_quat;__webpack_exports__["_26"]=matrix_to_trans;__webpack_exports__["_25"]=matrix_to_scale;__webpack_exports__["_0"]=extract_frustum_planes;__webpack_exports__["_56"]=sphere_is_out_of_frustum;__webpack_exports__["X"]=ellipsoid_is_out_of_frustum;__webpack_exports__["_28"]=positions_multiply_matrix; __webpack_exports__["_38"]=quats_multiply_quat;__webpack_exports__["_68"]=vecdir_multiply_matrix;__webpack_exports__["_69"]=vectorize;__webpack_exports__["F"]=binary_search_max;__webpack_exports__["P"]=cmp_arr;__webpack_exports__["_63"]=transform_vec3;__webpack_exports__["_46"]=rotate_point_pivot;__webpack_exports__["_5"]=generate_cubemap_matrices;__webpack_exports__["_6"]=generate_inv_cubemap_matrices;__webpack_exports__["_11"]=hash_code_string;__webpack_exports__["_23"]=mat3_to_mat4;__webpack_exports__["_33"]= quat_to_angle_axis;__webpack_exports__["_64"]=trunc;__webpack_exports__["T"]=deg_to_rad;__webpack_exports__["_39"]=rad_to_deg;__webpack_exports__["_55"]=snoise;__webpack_exports__["J"]=cellular2x2;__webpack_exports__["_30"]=quat_project;__webpack_exports__["I"]=cam_quat_to_mesh_quat;__webpack_exports__["M"]=clamp;__webpack_exports__["_51"]=smooth;__webpack_exports__["_54"]=smooth_v;__webpack_exports__["_52"]=smooth_q;__webpack_exports__["_14"]=is_arr_buf_view;__webpack_exports__["_16"]=is_vector; __webpack_exports__["R"]=correct_cam_quat_up;__webpack_exports__["_7"]=get_array_smooth_value;__webpack_exports__["_43"]=rgb_mask_get_channels_count;__webpack_exports__["_44"]=rgb_mask_get_channels_presence;__webpack_exports__["_42"]=rgb_mask_get_channel_presence_index;__webpack_exports__["_4"]=gen_uuid;__webpack_exports__["_8"]=get_dict_length;__webpack_exports__["_41"]=random_from_array;__webpack_exports__["_12"]=horizontal_direction;__webpack_exports__["_62"]=transformQuatFast;__webpack_exports__["B"]= angle_wrap_periodic;__webpack_exports__["A"]=angle_wrap_0_2pi;__webpack_exports__["_59"]=strict_objs_is_equal;__webpack_exports__["_29"]=quat_bpy_b4w;__webpack_exports__["_22"]=line_plane_intersect;__webpack_exports__["_10"]=get_plane_normal;__webpack_exports__["_48"]=rotation_to_stable;__webpack_exports__["H"]=calc_returning_angle;__webpack_exports__["_53"]=smooth_step;__webpack_exports__["_20"]=lerp;__webpack_exports__["E"]=arrays_have_common;__webpack_exports__["_70"]=version_cmp;__webpack_exports__["_71"]= version_to_str;__webpack_exports__["_58"]=str_to_version;__webpack_exports__["_57"]=srgb_to_lin;__webpack_exports__["_21"]=lin_to_srgb;__webpack_exports__["L"]=check_npot;__webpack_exports__["W"]=ellipsoid_axes_to_mat3;__webpack_exports__["S"]=create_non_smi_array;__webpack_exports__["_3"]=float_to_short;__webpack_exports__["_49"]=short_to_float;__webpack_exports__["_66"]=ufloat_to_ubyte;__webpack_exports__["_65"]=ubyte_to_ufloat;__webpack_exports__["V"]=dist_to_triange;__webpack_exports__["_47"]= rotate_quat;__webpack_exports__["_31"]=quat_rotate_to_target;__webpack_exports__["_32"]=quat_set_vertical_axis;__webpack_exports__["Q"]=compatible_euler;__webpack_exports__["_45"]=rotate_eul;__webpack_exports__["_35"]=quat_to_eul_opt;var __WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat3_js__=__webpack_require__(27);var __WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__=__webpack_require__(21);var __WEBPACK_IMPORTED_MODULE_2__math_js__=__webpack_require__(42);var __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__= __webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_4__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec4_js__=__webpack_require__(7);var _vec3_tmp=new Float32Array(3);var _vec3_tmp2=new Float32Array(3);var _vec3_tmp3=new Float32Array(3);var _vec3_tmp4=new Float32Array(3);var _vec3_tmp5=new Float32Array(3);var _vec3_tmp6=new Float32Array(3);var _vec3_tmp7=new Float32Array(3);var _vec3_tmp8= new Float32Array(3);var _vec4_tmp=new Float32Array(4);var _vec4_tmp2=new Float32Array(4);var _mat3_tmp=new Float32Array(9);var _mat3_tmp2=new Float32Array(9);var _mat3_tmp3=new Float32Array(9);var _mat4_tmp=new Float32Array(16);var _mat4_tmp2=new Float32Array(16);var _quat_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["create"]();var _quat_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["create"]();var VEC3_IDENT=new Float32Array([0,0,0]);var QUAT4_IDENT=new Float32Array([0, 0,0,1]);var TSR8_IDENT=__WEBPACK_IMPORTED_MODULE_4__tsr_js__["b"]();var TSR_IDENT=__WEBPACK_IMPORTED_MODULE_4__tsr_js__["b"]();var VEC3_UNIT=new Float32Array([1,1,1]);var AXIS_X=new Float32Array([1,0,0]);var AXIS_Y=new Float32Array([0,1,0]);var AXIS_Z=new Float32Array([0,0,1]);var AXIS_MX=new Float32Array([-1,0,0]);var AXIS_MY=new Float32Array([0,-1,0]);var AXIS_MZ=new Float32Array([0,0,-1]);var XYX=0;var YZY=1;var ZXZ=2;var XZX=3;var YXY=4;var ZYZ=5;var XYZ=6;var YZX=7;var ZXY=8;var XZY=9;var YXZ= 10;var ZYX=11;var ARRAY_EXPR=new RegExp("object .*Array");function is_array(arg){return ARRAY_EXPR.test(Object.prototype.toString.call(arg))}var PROPER_EULER_ANGLES_LIST=[XYX,YZY,ZXZ,YXY,ZYZ];var DEFAULT_SEED=5E4;var RAND_A=48271;var RAND_M=2147483647;var RAND_R=RAND_M%RAND_A;var RAND_Q=Math.floor(RAND_M/RAND_A);var INV_CUBE_VIEW_MATRS=[new Float32Array([0,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,1]),new Float32Array([0,0,1,0,0,-1,0,0,1,0,0,0,0,0,0,1]),new Float32Array([1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1]),new Float32Array([1, 0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),new Float32Array([1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,1]),new Float32Array([-1,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,1])];var GAMMA=2.2;var BYTE_SIZE=1;var SHORT_SIZE=2;var FLOAT_SIZE=4;var INT_SIZE=4;function isdef(v){return typeof v!="undefined"}function keyfind(key,value,array){var results=[];var len=array.length;for(var i=0;i0?1:value<0?-1:0}function keycheck(key,value,array){var len=array.length;for(var i=0;i0)seedp[0]=test;else seedp[0]=test+RAND_M;return(seedp[0]-1)/(RAND_M-1)}function init_rand_r_seed(seed_number,dest){if(!dest)dest=[];dest[0]=DEFAULT_SEED+Math.floor(seed_number); return dest}function euler_to_quat(euler,quat){var angles=_vec3_tmp;angles[0]=euler[2];angles[1]=euler[1];angles[2]=euler[0];ordered_angles_to_quat(angles,ZYX,quat);return quat}function ordered_angles_to_quat(angles,order,quat){var alpha=angles[0];var beta=angles[1];var gamma=angles[2];var c1=Math.cos(alpha/2);var c2=Math.cos(beta/2);var c3=Math.cos(gamma/2);var s1=Math.sin(alpha/2);var s2=Math.sin(beta/2);var s3=Math.sin(gamma/2);if(PROPER_EULER_ANGLES_LIST.indexOf(order)>-1){var c13=Math.cos((alpha+ gamma)/2);var s13=Math.sin((alpha+gamma)/2);var c1_3=Math.cos((alpha-gamma)/2);var s1_3=Math.sin((alpha-gamma)/2);var c3_1=Math.cos((gamma-alpha)/2);var s3_1=Math.sin((gamma-alpha)/2)}switch(order){case XYX:quat[0]=c2*s13;quat[1]=s2*c1_3;quat[2]=s2*s1_3;quat[3]=c2*c13;break;case YZY:quat[0]=s2*s1_3;quat[1]=c2*s13;quat[2]=s2*c1_3;quat[3]=c2*c13;break;case ZXZ:quat[0]=s2*c1_3;quat[1]=s2*s1_3;quat[2]=c2*s13;quat[3]=c2*c13;break;case XZX:quat[0]=c2*s13;quat[1]=s2*s3_1;quat[2]=s2*c3_1;quat[3]=c2*c13;break; case YXY:quat[0]=s2*c3_1;quat[1]=c2*s13;quat[2]=s2*s3_1;quat[3]=c2*c13;break;case ZYZ:quat[0]=s2*s3_1;quat[1]=s2*c3_1;quat[2]=c2*s13;quat[3]=c2*c13;break;case XYZ:quat[0]=s1*c2*c3+c1*s2*s3;quat[1]=c1*s2*c3-s1*c2*s3;quat[2]=c1*c2*s3+s1*s2*c3;quat[3]=c1*c2*c3-s1*s2*s3;break;case YZX:quat[0]=c1*c2*s3+s1*s2*c3;quat[1]=s1*c2*c3+c1*s2*s3;quat[2]=c1*s2*c3-s1*c2*s3;quat[3]=c1*c2*c3-s1*s2*s3;break;case ZXY:quat[0]=c1*s2*c3-s1*c2*s3;quat[1]=c1*c2*s3+s1*s2*c3;quat[2]=s1*c2*c3+c1*s2*s3;quat[3]=c1*c2*c3-s1*s2* s3;break;case XZY:quat[0]=s1*c2*c3-c1*s2*s3;quat[1]=c1*c2*s3-s1*s2*c3;quat[2]=c1*s2*c3+s1*c2*s3;quat[3]=c1*c2*c3+s1*s2*s3;break;case YXZ:quat[0]=c1*s2*c3+s1*c2*s3;quat[1]=s1*c2*c3-c1*s2*s3;quat[2]=c1*c2*s3-s1*s2*c3;quat[3]=c1*c2*c3+s1*s2*s3;break;case ZYX:quat[0]=c1*c2*s3-s1*s2*c3;quat[1]=c1*s2*c3+s1*c2*s3;quat[2]=s1*c2*c3-c1*s2*s3;quat[3]=c1*c2*c3+s1*s2*s3;break}return quat}function quat_to_ordered_angles(q,order,angles){var x=q[0],y=q[1],z=q[2],w=q[3];switch(order){case XYX:angles[0]=Math.atan2(x* y+z*w,y*w-x*z);angles[1]=Math.acos(1-2*(y*y+z*z));angles[2]=Math.atan2(x*y-z*w,x*z+y*w);break;case YZY:angles[0]=Math.atan2(x*w+y*z,z*w-x*y);angles[1]=Math.acos(1-2*(x*x+z*z));angles[2]=Math.atan2(y*z-x*w,x*y+z*w);break;case ZXZ:angles[0]=Math.atan2(x*z+y*w,x*w-y*z);angles[1]=Math.acos(1-2*(x*x+y*y));angles[2]=Math.atan2(x*z-y*w,x*w+y*z);break;case XZX:angles[0]=Math.atan2(x*z-y*w,x*y+z*w);angles[1]=Math.acos(1-2*(y*y+z*z));angles[2]=Math.atan2(x*z+y*w,z*w-x*y);break;case YXY:angles[0]=Math.atan2(x* y-z*w,x*w+y*z);angles[1]=Math.acos(1-2*(x*x+z*z));angles[2]=Math.atan2(x*y+z*w,x*w-y*z);break;case ZYZ:angles[0]=Math.atan2(y*z-x*w,x*z+y*w);angles[1]=Math.acos(1-2*(x*x+y*y));angles[2]=Math.atan2(x*w+y*z,y*w-x*z);break;case XYZ:angles[0]=Math.atan2(2*(x*w-y*z),1-2*(x*x+y*y));angles[1]=Math.asin(2*(x*z+y*w));angles[2]=Math.atan2(2*(z*w-x*y),1-2*(y*y+z*z));break;case YZX:var test=x*y+z*w;if(test>.499999){angles[0]=0;angles[1]=Math.PI/2;angles[2]=2*Math.atan2(x,w)}else if(test<-.499999){angles[0]=0; angles[1]=-Math.PI/2;angles[2]=-2*Math.atan2(x,w)}else{angles[0]=Math.atan2(2*(y*w-x*z),1-2*(y*y+z*z));angles[1]=Math.asin(2*(x*y+z*w));angles[2]=Math.atan2(2*(x*w-y*z),1-2*(x*x+z*z))}break;case ZXY:angles[0]=Math.atan2(2*(z*w-x*y),1-2*(x*x+z*z));angles[1]=Math.asin(2*(x*w+y*z));angles[2]=Math.atan2(2*(y*w-x*z),1-2*(x*x+y*y));break;case XZY:angles[0]=Math.atan2(2*(x*w+y*z),1-2*(x*x+z*z));angles[1]=Math.asin(2*(z*w-x*y));angles[2]=Math.atan2(2*(x*z+y*w),1-2*(y*y+z*z));break;case YXZ:angles[0]=Math.atan2(2* (x*z+y*w),1-2*(x*x+y*y));angles[1]=Math.asin(2*(x*w-y*z));angles[2]=Math.atan2(2*(x*y+z*w),1-2*(x*x+z*z));break;case ZYX:var test=y*w-x*z;if(test>.499999){angles[0]=0;angles[1]=Math.PI/2;angles[2]=-2*Math.atan2(z,w)}else if(test<-.499999){angles[0]=0;angles[1]=-Math.PI/2;angles[2]=2*Math.atan2(z,w)}else{angles[0]=Math.atan2(2*(x*y+z*w),1-2*(y*y+z*z));angles[1]=Math.asin(2*(y*w-x*z));angles[2]=Math.atan2(2*(x*w+y*z),1-2*(x*x+y*y))}break}return angles}function euler_to_rotation_matrix(euler,matrix){var cosX= Math.cos(euler[0]);var cosY=Math.cos(euler[1]);var cosZ=Math.cos(euler[2]);var sinX=Math.sin(euler[0]);var sinY=Math.sin(euler[1]);var sinZ=Math.sin(euler[2]);var cosXcosZ=cosX*cosZ;var cosXsinZ=cosX*sinZ;var sinXcosZ=sinX*cosZ;var sinXsinZ=sinX*sinZ;matrix[0]=cosY*cosZ;matrix[1]=cosY*sinZ;matrix[2]=-sinY;matrix[3]=sinY*sinXcosZ-cosXsinZ;matrix[4]=sinY*sinXsinZ+cosXcosZ;matrix[5]=cosY*sinX;matrix[6]=sinY*cosXcosZ+sinXsinZ;matrix[7]=sinY*cosXsinZ-sinXcosZ;matrix[8]=cosY*cosX;return matrix}function quat_to_euler(quat, euler){var angles=quat_to_ordered_angles(quat,ZYX,_vec3_tmp);euler[0]=angles[2];euler[1]=angles[1];euler[2]=angles[0];return euler}function quat_to_dir(quat,ident,dest){if(!dest)dest=new Float32Array(3);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformQuat"](ident,quat,dest);return dest}function dir_to_quat(dir,ident,dest){if(!dest)dest=new Float32Array(4);dir=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](dir,_vec3_tmp);var dot=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](ident, dir);var A=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["cross"](ident,dir,_vec3_tmp2);var teta=Math.acos(dot);dest[0]=A[0]*Math.sin(teta/2);dest[1]=A[1]*Math.sin(teta/2);dest[2]=A[2]*Math.sin(teta/2);dest[3]=Math.cos(teta/2);return dest}function trans_quat_to_plane(trans,quat,ident,dest){if(!dest)dest=new Float32Array(4);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformQuat"](ident,quat,dest);dest[3]=-__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](trans,dest); return dest}function blend_arrays(a1,a2,f,dest){if(f==0)return a1;dest=dest||[];for(var i=0;i0;__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](quat,new_quat,new_quat);if(is_righthand&&new_quat[3]<0||!is_righthand&&new_quat[3]>0)__WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec4_js__["scale"](new_quat,-1,new_quat);new_vectors[dest_offset+i]=new_quat[0];new_vectors[dest_offset+i+ 1]=new_quat[1];new_vectors[dest_offset+i+2]=new_quat[2];new_vectors[dest_offset+i+3]=new_quat[3]}return new_vectors}function vecdir_multiply_matrix(vec,matrix,dest){if(!dest)dest=new Float32Array(3);var v4=_vec4_tmp;v4[0]=vec[0];v4[1]=vec[1];v4[2]=vec[2];v4[3]=0;__WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec4_js__["transformMat4"](v4,matrix,v4);dest[0]=v4[0];dest[1]=v4[1];dest[2]=v4[2]}function flatten(array,dest){var len=array.length;var len0=array[0].length;if(!dest)dest=new Float32Array(len*len0); for(var i=0;imax)return binary_search_max(arr,max,start,mid-1);else if(arr[mid]precision)return false;return true}function scale_mat4(matrix,scale,dest){if(!dest)dest=new Float32Array(16);for(var i=0;i<12;i++)dest[i]=matrix[i]*scale;dest[12]=matrix[12];dest[13]=matrix[13];dest[14]=matrix[14];dest[15]=matrix[15];return dest}function transform_mat4(matrix,scale,quat, trans,dest){if(!dest)dest=new Float32Array(16);var m=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat,trans,_mat4_tmp);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["multiply"](m,matrix,dest);return dest}function transform_vec3(vec,scale,quat,trans,dest){if(!dest)dest=new Float32Array(3);var m1=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat,trans,_mat4_tmp);if(scale!==1){var m2=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["identity"](_mat4_tmp2); var s=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["set"](scale,scale,scale,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["scale"](m2,s,m2);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["multiply"](m1,m2,m1)}__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformMat4"](vec,m1,dest);return dest}function transform_vec4(vec,scale,quat,trans,dest){if(!dest)dest=new Float32Array(4);var m=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat, trans,_mat4_tmp);__WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec4_js__["transformMat4"](vec,m,dest);return dest}function inverse_transform_vec3(vec,scale,quat,trans,dest){if(!dest)dest=new Float32Array(3);var m=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat,trans,_mat4_tmp);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["invert"](m,m);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformMat4"](vec,m,dest);return dest}function transcale_quat_to_matrix(trans, quat,dest){if(!dest)dest=new Float32Array(16);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat,trans,dest);var scale=trans[3];for(var i=0;i<12;i++)dest[i]*=scale;return dest}function matrix_to_transcale_quat(matrix,dest_transcale,dest_quat){console.error("B4W ERROR: tsr.matrix_to_transcale_quat is dangerous function. Don't use it anymore!!!");matrix_to_trans(matrix,dest_transcale);dest_transcale[3]=matrix_to_scale(matrix);matrix_to_quat(matrix,dest_quat)}function array_stringify(array){var out= [];for(var i=0;i0){dest[3]=2*Math.acos(src[3]);var invlen=1/Math.sqrt(sqrlen); dest[0]=src[0]*invlen;dest[1]=src[1]*invlen;dest[2]=src[2]*invlen}else{dest[3]=0;dest[0]=1;dest[1]=0;dest[2]=0}return dest}function permute3(x){x=(34*x+1)*x;return x%289}function fract(x){return x-Math.floor(x)}function trunc(x){return isNaN(x)||typeof x=="undefined"?NaN:x|0}function deg_to_rad(x){return x*Math.PI/180}function rad_to_deg(x){return x*180/Math.PI}function snoise(p){var C_x=.211324865405187;var C_y=.366025403784439;var C_z=-.577350269189626;var C_w=.024390243902439;var v_dot_Cyy=p[0]* C_y+p[1]*C_y;var i_x=Math.floor(p[0]+v_dot_Cyy);var i_y=Math.floor(p[1]+v_dot_Cyy);var i_dot_Cxx=i_x*C_x+i_y*C_x;var x0_x=p[0]-i_x+i_dot_Cxx;var x0_y=p[1]-i_y+i_dot_Cxx;var i1_x=x0_x>x0_y?1:0;var i1_y=1-i1_x;var x12_x=x0_x+C_x-i1_x;var x12_y=x0_y+C_x-i1_y;var x12_z=x0_x+C_z;var x12_w=x0_y+C_z;i_x%=289;i_y%=289;var p_x=permute3(permute3(i_y)+i_x);var p_y=permute3(permute3(i_y+i1_y)+i_x+i1_x);var p_z=permute3(permute3(i_y+1)+i_x+1);var m_x=Math.max(.5-(x0_x*x0_x+x0_y*x0_y),0);var m_y=Math.max(.5-(x12_x* x12_x+x12_y*x12_y),0);var m_z=Math.max(.5-(x12_z*x12_z+x12_w*x12_w),0);m_x*=m_x*m_x*m_x;m_y*=m_y*m_y*m_y;m_z*=m_z*m_z*m_z;var x_x=2*fract(p_x*C_w)-1;var x_y=2*fract(p_y*C_w)-1;var x_z=2*fract(p_z*C_w)-1;var h_x=Math.abs(x_x)-.5;var h_y=Math.abs(x_y)-.5;var h_z=Math.abs(x_z)-.5;var ox_x=Math.floor(x_x+.5);var ox_y=Math.floor(x_y+.5);var ox_z=Math.floor(x_z+.5);var a0_x=x_x-ox_x;var a0_y=x_y-ox_y;var a0_z=x_z-ox_z;m_x*=1.79284291400159-.85373472095314*(a0_x*a0_x+h_x*h_x);m_y*=1.79284291400159-.85373472095314* (a0_y*a0_y+h_y*h_y);m_z*=1.79284291400159-.85373472095314*(a0_z*a0_z+h_z*h_z);var g_x=a0_x*x0_x+h_x*x0_y;var g_y=a0_y*x12_x+h_y*x12_y;var g_z=a0_z*x12_z+h_z*x12_w;var m_dot_g=m_x*g_x+m_y*g_y+m_z*g_z;return 130*m_dot_g}function permute(x){return mod289((34*x+5)*x)}function mod289(x){return x-Math.floor(x/289)*289}function mod7(x){return x-Math.floor(x/7)*7}function cellular2x2(P){var K=1/7;var K2=K/2;var JITTER=.7;var Pi_x=mod289(Math.floor(P[0]));var Pi_y=mod289(Math.floor(P[1]));var Pf_x=fract(P[0]); var Pf_y=fract(P[1]);var Pfx_x=Pf_x-.5;var Pfx_y=Pf_x-1.5;var Pfx_z=Pfx_x;var Pfx_w=Pfx_y;var Pfy_x=Pf_y-.5;var Pfy_y=Pfy_x;var Pfy_z=Pf_y-1.5;var Pfy_w=Pfy_z;var p_x=permute(Pi_x);var p_y=permute(Pi_x+1);var p_z=p_x;var p_w=p_y;p_x=permute(p_x+Pi_y);p_y=permute(p_y+Pi_y);p_z=permute(p_z+Pi_y+1);p_w=permute(p_w+Pi_y+1);var ox_x=mod7(p_x)*K+K2;var ox_y=mod7(p_y)*K+K2;var ox_z=mod7(p_z)*K+K2;var ox_w=mod7(p_w)*K+K2;var oy_x=mod7(Math.floor(p_x*K))*K+K2;var oy_y=mod7(Math.floor(p_y*K))*K+K2;var oy_z= mod7(Math.floor(p_z*K))*K+K2;var oy_w=mod7(Math.floor(p_w*K))*K+K2;var dx_x=Pfx_x+JITTER*ox_x;var dx_y=Pfx_y+JITTER*ox_y;var dx_z=Pfx_z+JITTER*ox_z;var dx_w=Pfx_w+JITTER*ox_w;var dy_x=Pfy_x+JITTER*oy_x;var dy_y=Pfy_y+JITTER*oy_y;var dy_z=Pfy_z+JITTER*oy_z;var dy_w=Pfy_w+JITTER*oy_w;var d_x=dx_x*dx_x+dy_x*dy_x;var d_y=dx_y*dx_y+dy_y*dy_y;var d_z=dx_z*dx_z+dy_z*dy_z;var d_w=dx_w*dx_w+dy_w*dy_w;var d=Math.min(d_x,d_y,d_z,d_w);return d}function quat_project(quat,quat_ident_dir,plane,plane_ident_dir,dest){if(!dest)dest= new Float32Array(4);var to=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformQuat"](quat_ident_dir,quat,_vec3_tmp);var a=plane[0];var b=plane[1];var c=plane[2];var proj=_mat3_tmp;proj[0]=b*b+c*c;proj[1]=-b*a;proj[2]=-c*a;proj[3]=-a*b;proj[4]=a*a+c*c;proj[5]=-c*b;proj[6]=-a*c;proj[7]=-b*c;proj[8]=a*a+b*b;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformMat3"](to,proj,to);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](to,to);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["rotationTo"](plane_ident_dir, to,dest);return dest}function cam_quat_to_mesh_quat(cam_quat,dest){if(!dest)dest=new Float32Array(4);var quat_offset=_vec4_tmp;var quat_offset_x=_vec4_tmp2;quat_offset=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["setAxisAngle"]([0,0,1],Math.PI,__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["create"]());quat_offset_x=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["setAxisAngle"]([1,0,0],Math.PI/2,__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["create"]());__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](quat_offset, quat_offset_x,quat_offset);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](cam_quat,quat_offset,dest);return dest}function clamp(value,min,max){if(valuemax)value=max;return value}function smooth(curr,last,delta,period){if(period){var e=Math.exp(-delta/period);return(1-e)*curr+e*last}else return curr}function smooth_v(curr,last,delta,period,dest){if(!dest)dest=new Float32Array(curr.length);if(period){var e=Math.exp(-delta/period);for(var i=0;i0){x_cam_world_new[0]*=-1;x_cam_world_new[1]*=-1;x_cam_world_new[2]*=-1}var x_cam_world=_vec3_tmp2;x_cam_world[0]=rmat[0];x_cam_world[1]=rmat[1];x_cam_world[2]=rmat[2];__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](x_cam_world,x_cam_world);var correct_quat=_vec4_tmp2;__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["rotationTo"](x_cam_world, x_cam_world_new,correct_quat);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](correct_quat,quat,quat)}function get_array_smooth_value(array,row_width,x,y){var px=x*row_width-.5;var py=y*row_width-.5;var fract_px=px-Math.floor(px);var fract_py=py-Math.floor(py);px=Math.floor(px);py=Math.floor(py);var up_lim=row_width-1;var val_00=array[py*row_width+px];var val_10=array[py*row_width+Math.min(px+1,up_lim)];var val_01=array[Math.min(py+1,up_lim)*row_width+px];var val_11=array[Math.min(py+ 1,up_lim)*row_width+Math.min(px+1,up_lim)];var val_0010=val_00*(1-fract_px)+val_10*fract_px;var val_0111=val_01*(1-fract_px)+val_11*fract_px;var smooth_value=val_0010*(1-fract_py)+val_0111*fract_py;return smooth_value}function rgb_mask_get_channels_count(mask){var count=0;for(var i=0;i<3;i++)if((mask&1<0)count++;return count}function rgb_mask_get_channels_presence(mask){var presence=[0,0,0];for(var i=0;i<3;i++)if((mask&1<0)presence[2-i]=1;return presence}function rgb_mask_get_channel_presence_index(mask, channel){var index=0;if(channel==1||channel==2)if((mask&1<<2)>0)index++;if(channel==2)if((mask&1<<1)>0)index++;return index}function gen_uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=="x"?r:r&3|8;return v.toString(16)})}function get_dict_length(dict){var count=0;for(var prop in dict)if(dict.hasOwnProperty(prop))count++;return count}function random_from_array(array){if(!array.length)return null;var pos=Math.floor(Math.random()*array.length); return array[pos]}function horizontal_direction(a,b,dest){if(!dest)dest=new Float32Array(3);dest[0]=a[0]-b[0];dest[1]=a[1]-b[1];dest[2]=0;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](dest,dest)}function transformQuatFast(a,q,out){var ax=a[0],ay=a[1],az=a[2];var qx=q[0],qy=q[1],qz=q[2],qw=q[3];var uvx=qy*az-qz*ay,uvy=qz*ax-qx*az,uvz=qx*ay-qy*ax;var uuvx=qy*uvz-qz*uvy,uuvy=qz*uvx-qx*uvz,uuvz=qx*uvy-qy*uvx;uvx*=qw*2;uvy*=qw*2;uvz*=qw*2;uuvx*=2;uuvy*=2;uuvz*=2;out[0]=ax+uvx+uuvx; out[1]=ay+uvy+uuvy;out[2]=az+uvz+uuvz;return out}function angle_wrap_periodic(angle,from,to){var rel_angle=angle-from;var period=to-from;return from+(rel_angle-Math.floor(rel_angle/period)*period)}function angle_wrap_0_2pi(angle){return angle_wrap_periodic(angle,0,2*Math.PI)}function strict_objs_is_equal(a,b){for(var prop in a){var props_is_equal=true;var val1=a[prop];var val2=b[prop];switch(typeof val1){case "number":case "string":case "boolean":props_is_equal=val1==val2;break;case "object":props_is_equal= objs_is_equal(val1,val2);break;default:break}if(!props_is_equal)return false}return true}function objs_is_equal(a,b){if(a&&b){var a_is_arr=a instanceof Array;var b_is_arr=b instanceof Array;if(a_is_arr!=b_is_arr)return false;var a_is_typed_arr=a.buffer instanceof ArrayBuffer&&a.byteLength!=="undefined";var b_is_typed_arr=b.buffer instanceof ArrayBuffer&&b.byteLength!=="undefined";if(a_is_typed_arr!=b_is_typed_arr)return false;if(a_is_arr){if(a.length!=b.length)return false;for(var i=0;imax_angle){var delta_to_max=max_angle-angle;var delta_to_min=2*Math.PI-angle;return-delta_to_max>delta_to_min?delta_to_min:delta_to_max}return 0} function smooth_step(t,min,max){if(isFinite(min)&&isFinite(max))t=clamp(t,min,max);return t*t*(3-2*t)}function lerp(t,from,to){return from+t*(to-from)}function arrays_have_common(arr_1,arr_2){for(var i=0;i=ver1.length?0:ver1[i];var n2=i>=ver2.length?0:ver2[i];var s=sign(n1-n2);if(s)return s}return 0}function version_to_str(ver){return ver.join(".")}function str_to_version(str){return str.split(".").map(function(val){return val|0})}function srgb_to_lin(color,dest){dest[0]=Math.pow(color[0],GAMMA);dest[1]=Math.pow(color[1],GAMMA);dest[2]=Math.pow(color[2],GAMMA);return dest}function lin_to_srgb(color,dest){dest[0]=Math.pow(color[0],1/GAMMA);dest[1]=Math.pow(color[1],1/GAMMA); dest[2]=Math.pow(color[2],1/GAMMA);return dest}function check_npot(num){return parseInt(num.toString(2).substr(1),2)!=0}function ellipsoid_axes_to_mat3(axis_x,axis_y,axis_z,dest){dest[0]=axis_x[0];dest[1]=axis_y[0];dest[2]=axis_z[0];dest[3]=axis_x[1];dest[4]=axis_y[1];dest[5]=axis_z[1];dest[6]=axis_x[2];dest[7]=axis_y[2];dest[8]=axis_z[2];return dest}function create_non_smi_array(){var arr=[{}];arr.length=0;return arr}function float_to_short(float_val){var x=Math.round((float_val+1)*32767.5-32768); return clamp(x?x:0,-32768,32767)}function short_to_float(short_val){return clamp((short_val+32768)/32767.5-1,-1,1)}function ufloat_to_ubyte(ufloat_val){return clamp(Math.round(ufloat_val*255),0,255)}function ubyte_to_ufloat(ubyte_val){return clamp(ubyte_val/255,0,1)}function dist_to_triange(point,ver1,ver2,ver3){var dir_21=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](ver2,ver1,_vec3_tmp);var dir_32=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](ver3,ver2,_vec3_tmp2); var dir_13=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](ver1,ver3,_vec3_tmp3);var dir_p1=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](point,ver1,_vec3_tmp4);var dir_p2=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](point,ver2,_vec3_tmp5);var dir_p3=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](point,ver3,_vec3_tmp6);var normal=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["cross"](dir_21,dir_32,_vec3_tmp7);if(__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["cross"](normal, dir_21,_vec3_tmp8),dir_p1)>=0&&__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["cross"](normal,dir_32,_vec3_tmp8),dir_p2)>=0&&__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["cross"](normal,dir_13,_vec3_tmp8),dir_p3)>=0){var normal_length=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](normal);var ndist=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](normal, dir_p1);return Math.abs(ndist/normal_length)}else{var proj_p1_on_21=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](dir_21,clamp(__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](dir_21,dir_p1)/__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](dir_21),0,1),_vec3_tmp8);var dist_to_21=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](dir_p1,proj_p1_on_21,_vec3_tmp8));var proj_p2_on_32= __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](dir_32,clamp(__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](dir_32,dir_p2)/__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](dir_32),0,1),_vec3_tmp8);var dist_to_32=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](dir_p2,proj_p2_on_32,_vec3_tmp8));var proj_p3_on_13=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](dir_13, clamp(__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](dir_13,dir_p3)/__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](dir_13),0,1),_vec3_tmp8);var dist_to_13=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["length"](__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](dir_p3,proj_p3_on_13,_vec3_tmp8));return Math.min(Math.min(dist_to_21,dist_to_32),dist_to_13)}}function rotate_quat(quat,vertical_axis,d_phi,d_theta,dest){if(d_phi||d_theta){var rot_quat= __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["identity"](_quat_tmp);if(d_phi){var quat_phi=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["setAxisAngle"](vertical_axis,d_phi,_quat_tmp2);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](rot_quat,quat_phi,rot_quat)}var obj_quat=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["copy"](quat,dest);if(d_theta){var x_world_cam=quat_to_dir(obj_quat,AXIS_X,_vec3_tmp);var quat_theta=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["setAxisAngle"](x_world_cam, d_theta,_quat_tmp2);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["normalize"](quat_theta,quat_theta);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](rot_quat,quat_theta,rot_quat)}__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](rot_quat,obj_quat,obj_quat);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["normalize"](obj_quat,obj_quat)}}function quat_rotate_to_target(trans,quat,target,dir_axis){var dir_from=_vec3_tmp2;quat_to_dir(quat,dir_axis,dir_from); __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](dir_from,dir_from);var dir_to=_vec3_tmp3;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](target,trans,dir_to);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](dir_to,dir_to);var rotation=rotation_to_stable(dir_from,dir_to,_vec4_tmp);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](rotation,quat,quat);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["normalize"](quat,quat)}function quat_set_vertical_axis(quat, axis,target_axis,dir){var curr_axis_w=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["transformQuat"](axis,quat,_vec3_tmp2);var proj=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](dir,target_axis);var delta=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](dir,proj,_vec3_tmp3);var complanar_targer=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["subtract"](target_axis,delta,_vec3_tmp3);var rot_quat=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["identity"](_quat_tmp); __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["normalize"](complanar_targer,complanar_targer);if(Math.abs(__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["dot"](curr_axis_w,complanar_targer))<.999999)rotation_to_stable(curr_axis_w,complanar_targer,rot_quat);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["normalize"](rot_quat,rot_quat);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](rot_quat,quat,quat)}function compatible_euler(eul,oldrot){var pi_thresh=5.1;var pi_x2= 2*Math.PI;var deul=[];for(var i=0;i<3;i++){deul[i]=eul[i]-oldrot[i];if(deul[i]>pi_thresh){eul[i]-=deul[i]/pi_x2*pi_x2;deul[i]=eul[i]-oldrot[i]}else if(deul[i]<-pi_thresh){eul[i]+=-deul[i]/pi_x2*pi_x2;deul[i]=eul[i]-oldrot[i]}}if(Math.abs(deul[0])>3.2&&Math.abs(deul[1])<1.6&&Math.abs(deul[2])<1.6)if(deul[0]>0)eul[0]-=pi_x2;else eul[0]+=pi_x2;if(Math.abs(deul[1])>3.2&&Math.abs(deul[2])<1.6&&Math.abs(deul[0])<1.6)if(deul[1]>0)eul[1]-=pi_x2;else eul[1]+=pi_x2;if(Math.abs(deul[2])>3.2&&Math.abs(deul[0])< 1.6&&Math.abs(deul[1])<1.6)if(deul[2]>0)eul[2]-=pi_x2;else eul[2]+=pi_x2}function rotate_eul(beul,eul,dest){var mat1=euler_to_rotation_matrix(eul,_mat3_tmp);var mat2=euler_to_rotation_matrix(beul,_mat3_tmp2);var totmat=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat3_js__["multiply"](mat2,mat1,_mat3_tmp3);return mat3_to_euler(totmat,dest)}function mat3_to_eul_opt(mat,eul1,eul2){var cy=Math.sqrt(mat[0*3+0]*mat[0*3+0]+mat[0*3+1]*mat[0*3+1]);if(cy>1E-6){eul1[0]=Math.atan2(mat[1*3+2],mat[2*3+2]);eul1[1]= Math.atan2(-mat[0*3+2],cy);eul1[2]=Math.atan2(mat[0*3+1],mat[0*3+0]);eul2[0]=Math.atan2(-mat[1*3+2],-mat[2*3+2]);eul2[1]=Math.atan2(-mat[0*3+2],-cy);eul2[2]=Math.atan2(-mat[0*3+1],-mat[0*3+0])}else{eul1[0]=Math.atan2(-mat[2*3+1],mat[1*3+1]);eul1[1]=Math.atan2(-mat[0*3+2],cy);eul1[2]=0;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](eul1,eul2)}}function quat_to_eul_opt(quat,oldrot,dest){var mat=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat3_js__["fromQuat"](quat,_mat3_tmp);var eul1= _vec3_tmp;var eul2=_vec3_tmp2;mat3_to_eul_opt(mat,eul1,eul2);var d1=Math.abs(eul1[0]-oldrot[0])+Math.abs(eul1[1]-oldrot[1])+Math.abs(eul1[2]-oldrot[2]);var d2=Math.abs(eul2[0]-oldrot[0])+Math.abs(eul2[1]-oldrot[1])+Math.abs(eul2[2]-oldrot[2]);var euler=d1>d2?eul2:eul1;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](euler,dest);return dest}function mat3_to_euler(mat,dest){var eul1=_vec3_tmp;var eul2=_vec3_tmp2;mat3_to_eul_opt(mat,eul1,eul2);var d1=Math.abs(eul1[0])+Math.abs(eul1[1])+ Math.abs(eul1[2]);var d2=Math.abs(eul2[0])+Math.abs(eul2[1])+Math.abs(eul2[2]);var euler=d1>d2?eul2:eul1;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](euler,dest);return dest}},function(module,__webpack_exports__,__webpack_require__){Object.defineProperty(__webpack_exports__,"__esModule",{value:true});__webpack_exports__["create"]=create;__webpack_exports__["clone"]=clone;__webpack_exports__["fromValues"]=fromValues;__webpack_exports__["copy"]=copy;__webpack_exports__["set"]=set;__webpack_exports__["add"]= add;__webpack_exports__["subtract"]=subtract;__webpack_require__.d(__webpack_exports__,"sub",function(){return subtract});__webpack_exports__["multiply"]=multiply;__webpack_require__.d(__webpack_exports__,"mul",function(){return multiply});__webpack_exports__["divide"]=divide;__webpack_require__.d(__webpack_exports__,"div",function(){return divide});__webpack_exports__["min"]=min;__webpack_exports__["max"]=max;__webpack_exports__["scale"]=scale;__webpack_exports__["scaleAndAdd"]=scaleAndAdd;__webpack_exports__["distance"]= distance;__webpack_require__.d(__webpack_exports__,"dist",function(){return distance});__webpack_exports__["squaredDistance"]=squaredDistance;__webpack_require__.d(__webpack_exports__,"sqrDist",function(){return squaredDistance});__webpack_exports__["length"]=length;__webpack_require__.d(__webpack_exports__,"len",function(){return length});__webpack_exports__["squaredLength"]=squaredLength;__webpack_require__.d(__webpack_exports__,"sqrLen",function(){return squaredLength});__webpack_exports__["negate"]= negate;__webpack_exports__["inverse"]=inverse;__webpack_exports__["normalize"]=normalize;__webpack_exports__["dot"]=dot;__webpack_exports__["cross"]=cross;__webpack_exports__["lerp"]=lerp;__webpack_exports__["hermite"]=hermite;__webpack_exports__["bezier"]=bezier;__webpack_exports__["random"]=random;__webpack_exports__["transformMat4"]=transformMat4;__webpack_exports__["transformMat3"]=transformMat3;__webpack_exports__["transformQuat"]=transformQuat;__webpack_exports__["rotateX"]=rotateX;__webpack_exports__["rotateY"]= rotateY;__webpack_exports__["rotateZ"]=rotateZ;__webpack_require__.d(__webpack_exports__,"forEach",function(){return forEach});__webpack_exports__["angle"]=angle;__webpack_exports__["str"]=str;var GLMAT_EPSILON=1E-7;var GLMAT_ARRAY_TYPE=typeof Float32Array!=="undefined"?Float32Array:Array;var GLMAT_RANDOM=Math.random;function create(){var out=new GLMAT_ARRAY_TYPE(3);out[0]=0;out[1]=0;out[2]=0;return out}function clone(a){var out=new GLMAT_ARRAY_TYPE(3);out[0]=a[0];out[1]=a[1];out[2]=a[2];return out} function fromValues(x,y,z){var out=new GLMAT_ARRAY_TYPE(3);out[0]=x;out[1]=y;out[2]=z;return out}function copy(a,out){out[0]=a[0];out[1]=a[1];out[2]=a[2];return out}function set(x,y,z,out){out[0]=x;out[1]=y;out[2]=z;return out}function add(a,b,out){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];return out}function subtract(a,b,out){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];return out}function multiply(a,b,out){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];return out}function divide(a, b,out){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];return out}function min(a,b,out){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);return out}function max(a,b,out){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);return out}function scale(a,b,out){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;return out}function scaleAndAdd(a,b,scale,out){out[0]=a[0]+b[0]*scale;out[1]=a[1]+b[1]*scale;out[2]=a[2]+b[2]*scale;return out}function distance(a, b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return Math.sqrt(x*x+y*y+z*z)}function squaredDistance(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return x*x+y*y+z*z}function length(a){var x=a[0],y=a[1],z=a[2];return Math.sqrt(x*x+y*y+z*z)}function squaredLength(a){var x=a[0],y=a[1],z=a[2];return x*x+y*y+z*z}function negate(a,out){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];return out}function inverse(a,out){out[0]=1/a[0];out[1]=1/a[1];out[2]=1/a[2];return out}function normalize(a,out){var x=a[0],y=a[1],z= a[2];var len=x*x+y*y+z*z;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out}function dot(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function cross(a,b,out){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out}function lerp(a,b,t,out){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out}function hermite(a,b,c,d,t,out){var factorTimes2=t*t,factor1= factorTimes2*(2*t-3)+1,factor2=factorTimes2*(t-2)+t,factor3=factorTimes2*(t-1),factor4=factorTimes2*(3-2*t);out[0]=a[0]*factor1+b[0]*factor2+c[0]*factor3+d[0]*factor4;out[1]=a[1]*factor1+b[1]*factor2+c[1]*factor3+d[1]*factor4;out[2]=a[2]*factor1+b[2]*factor2+c[2]*factor3+d[2]*factor4;return out}function bezier(a,b,c,d,t,out){var inverseFactor=1-t,inverseFactorTimesTwo=inverseFactor*inverseFactor,factorTimes2=t*t,factor1=inverseFactorTimesTwo*inverseFactor,factor2=3*t*inverseFactorTimesTwo,factor3= 3*factorTimes2*inverseFactor,factor4=factorTimes2*t;out[0]=a[0]*factor1+b[0]*factor2+c[0]*factor3+d[0]*factor4;out[1]=a[1]*factor1+b[1]*factor2+c[1]*factor3+d[1]*factor4;out[2]=a[2]*factor1+b[2]*factor2+c[2]*factor3+d[2]*factor4;return out}function random(scale,out){var r=GLMAT_RANDOM()*2*Math.PI;var z=GLMAT_RANDOM()*2-1;var zScale=Math.sqrt(1-z*z)*scale;out[0]=Math.cos(r)*zScale;out[1]=Math.sin(r)*zScale;out[2]=z*scale;return out}function transformMat4(a,m,out){var x=a[0],y=a[1],z=a[2],w=m[3]*x+ m[7]*y+m[11]*z+m[15];w=w||1;out[0]=(m[0]*x+m[4]*y+m[8]*z+m[12])/w;out[1]=(m[1]*x+m[5]*y+m[9]*z+m[13])/w;out[2]=(m[2]*x+m[6]*y+m[10]*z+m[14])/w;return out}function transformMat3(a,m,out){var x=a[0],y=a[1],z=a[2];out[0]=x*m[0]+y*m[3]+z*m[6];out[1]=x*m[1]+y*m[4]+z*m[7];out[2]=x*m[2]+y*m[5]+z*m[8];return out}function transformQuat(a,q,out){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy; out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out}function rotateX(a,b,c,out){var p=[],r=[];p[0]=a[0]-b[0];p[1]=a[1]-b[1];p[2]=a[2]-b[2];r[0]=p[0];r[1]=p[1]*Math.cos(c)-p[2]*Math.sin(c);r[2]=p[1]*Math.sin(c)+p[2]*Math.cos(c);out[0]=r[0]+b[0];out[1]=r[1]+b[1];out[2]=r[2]+b[2];return out}function rotateY(a,b,c,out){var p=[],r=[];p[0]=a[0]-b[0];p[1]=a[1]-b[1];p[2]=a[2]-b[2];r[0]=p[2]*Math.sin(c)+p[0]*Math.cos(c);r[1]=p[1];r[2]=p[2]*Math.cos(c)-p[0]*Math.sin(c);out[0]=r[0]+ b[0];out[1]=r[1]+b[1];out[2]=r[2]+b[2];return out}function rotateZ(a,b,c,out){var p=[],r=[];p[0]=a[0]-b[0];p[1]=a[1]-b[1];p[2]=a[2]-b[2];r[0]=p[0]*Math.cos(c)-p[1]*Math.sin(c);r[1]=p[0]*Math.sin(c)+p[1]*Math.cos(c);r[2]=p[2];out[0]=r[0]+b[0];out[1]=r[1]+b[1];out[2]=r[2]+b[2];return out}var forEach=function(){var vec=create();return function(a,stride,offset,count,fn,arg){var i,l;if(!stride)stride=3;if(!offset)offset=0;if(count)l=Math.min(count*stride+offset,a.length);else l=a.length;for(i=offset;i< l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];fn(vec,arg,vec);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2]}return a}}();function angle(a,b){var tempA=fromValues(a[0],a[1],a[2]);var tempB=fromValues(b[0],b[1],b[2]);normalize(tempA,tempA);normalize(tempB,tempB);var cosine=dot(tempA,tempB);if(cosine>1)return 0;else return Math.acos(cosine)}function str(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"}},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_b4w_js__=__webpack_require__(32);var __WEBPACK_IMPORTED_MODULE_2__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_3__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_4__util_js__=__webpack_require__(2);function Int_config(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_2__util_assert_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_3__print_js__["a"])(ns);exports.P_LOW=1;exports.P_HIGH= 2;exports.P_ULTRA=3;exports.P_CUSTOM=4;exports.P_AUTO=5;exports.context={alpha:true,antialias:false,premultipliedAlpha:true};exports.context_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.context);exports.defaults={alpha_sort:true,alpha_sort_threshold:.1,min_format_version:[6,3],max_fps:1E4,console_verbose:false,do_not_load_resources:false,use_min50:false,enable_texture_cache:true,fps_measurement_interval:1,fps_callback_interval:5,background_color:[0,0,0,0],canvas_resolution_factor:1,texture_min_filter:3, allow_cors:false,force_low_quality_nodes:false,anisotropic_available:true,anisotropic_filtering:true,texture_lod_available:false,tex_float_available:false,tex_hfloat_available:false,tex_float_lin_available:false,tex_hfloat_lin_available:false,cbuffer_float_available:false,cbuffer_hfloat_available:false,show_hud_debug_info:false,depth_tex_available:true,shadows:true,stereo:"NONE",reflections:true,refractions:true,ssao:true,dof:true,god_rays:true,bloom:true,motion_blur:true,compositing:true,antialiasing:true, smaa:false,debug_view:false,water_wireframe_debug:false,foam:true,parallax:true,dynamic_grass:true,water_dynamic:true,shore_smoothing:true,shore_distance:true,use_compression:true,precision:"highp",quality:exports.P_HIGH,allow_vertex_textures:true,lod_leap_smooth_threshold:3,assets_gzip_available:false,no_phy_interp_hack:false,shader_constants_hack:false,disable_blend_shadows_hack:false,vert_anim_mix_normals_hack:false,is_mobile_device:false,init_wa_context_hack:false,clear_procedural_sky_hack:false, sky_update_hack:false,seq_video_fallback:false,allow_hidpi:false,shadows_color_slink_hack:false,mobile_firefox_media_hack:false,ipad_video_hack:false,enable_selectable:true,enable_outlining:true,lod_smooth_transitions:true,glow_materials:true,ie11_edge_touchscreen_hack:false,firefox_tex_reuse_hack:false,loaded_data_version:[0,0],quality_aa_method:true,skinning_hack:false,url_params:null,webgl2:true,msaa_samples:4,compared_mode_depth:false,safari_canvas_alpha_hack:false,safari_glow_hack:false,resize_cubemap_canvas_hack:false, resize_texture_canvas_hack:false,chrome_html_bkg_music_hack:false,ie_edge_anchors_floor_hack:false,ie11_edge_mouseoffset_hack:false,media_auto_activation:true,max_cast_lamps:4,mac_os_shadow_hack:false,gl_debug:false,check_framebuffer_hack:false,allow_instanced_arrays_ext:false,allow_vao_ext:false,compress_format:"dds",shadow_blur_samples:"",reflection_quality:"",srgb_type:"SRGB_SIMPLE",ios_copy_tex_hack:false,rgba_fallback_shadows:false,debug_loading:false,mali_alpha_antialias_hack:false,mali4_lamps_hack:false, chrome_csm_blend_hack:false,reuse_depth_optimization:true};exports.defaults_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.defaults);exports.animation={framerate:-1,frames_blending_hack:false,frame_steps:1};exports.controls={mouse_wheel_notch_multiplier:1/120};exports.assets={path:"",path_default:"B4W_ASSETS_PATH=__JS__/assets/",proj_path_default:"B4W_PROJ_ASSETS_PATH=__JS__/../projects/__NAME__/assets/",max_requests:15,prevent_caching:true,min50_available:false,dds_available:false,pvr_available:false}; exports.assets_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.assets);exports.paths={shaders_path:"",shaders_path_default:"../shaders/",shaders_include_dir:"include/",shaders_postp_dir:"postprocessing/",built_in_data_module:"built_in_data",js_src_search_paths:["b4w.js","b4w.min.js","b4w.simple.min.js","b4w.whitespace.min.js","b4w_app_bundle.js","B4W_MAIN_MODULE"],smaa_search_texture_path:"smaa_search_texture.png",smaa_area_texture_path:"smaa_area_texture.png"};exports.hmd_params={"webvr":{distortion_coefs:[.22, .28],chromatic_aberration_coefs:[-.015,.02,.025,.02]},"nonwebvr":{distor_scale:.8,inter_lens_dist:.064,base_line_dist:.035,screen_to_lens_dist:.039,distortion_coefs:[.34,.55],chromatic_aberration_coefs:[0,0,0,0],width_dist:.11,height_dist:.062,bevel_size:.004}};exports.physics={enabled:true,max_fps:60,uranium_path:"",uranium_bin:"",uranium_path_default:"B4W_URANIUM_PATH=uranium/",asmjs_file:"uranium.js",wasmjs_file:"uranium_wasm.js",mem_file:"uranium.js.mem",wasm_file:"uranium_wasm.wasm",uranium_dir:"/dist/uranium", calc_fps:false,ping:false,use_workers:true,use_wasm:true};exports.physics_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.physics);exports.scenes={grass_tex_size:2*512,cubemap_tex_size:256,cube_reflect_low:32,cube_reflect_medium:128,cube_reflect_high:256,plane_reflect_low:.25,plane_reflect_medium:.5,plane_reflect_high:1};exports.scenes_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.scenes);exports.sfx={webaudio:true,mix_mode:false,audio_loading_hack:false,clamp_playback_rate_hack:false, disable_playback_rate_hack:false};exports.sfx_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.sfx);exports.outlining={outlining_overview_mode:false,outline_color:[1,.4,.05],outline_duration:.2,outline_period:3.8,outline_relapses:1};exports.debug_subs={enabled:false,subs_type:3,subs_number:1,slink_type:"COLOR"};exports.debug_subs_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.debug_subs);exports.context_limits={max_combined_texture_image_units:8,max_fragment_uniform_vectors:64,max_texture_image_units:8, max_varying_vectors:8,max_vertex_attribs:15,max_vertex_texture_image_units:0,max_vertex_uniform_vectors:128,max_cube_map_texture_size:1024,max_renderbuffer_size:4096,max_texture_size:4096,max_viewport_dims:[4096,4096],depth_bits:24};exports.context_limits_save=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](exports.context_limits);exports.apply_quality=function(){var cfg_def=exports.defaults;var cfg_phy=exports.physics;var cfg_scs=exports.scenes;switch(cfg_def.quality){case exports.P_ULTRA:cfg_def.shadows= true,cfg_def.shore_smoothing=true,cfg_def.ssao=true;cfg_def.dof=true;cfg_def.god_rays=true;cfg_def.bloom=true;cfg_def.reflections=true;cfg_def.refractions=true;cfg_def.foam=true;cfg_def.parallax=true;cfg_def.dynamic_grass=true;cfg_scs.grass_tex_size=4*512;cfg_scs.cubemap_tex_size=512;cfg_def.texture_min_filter=3;cfg_def.anisotropic_filtering=true;cfg_def.use_min50=false;cfg_def.water_dynamic=true;cfg_def.shore_distance=true;cfg_def.antialiasing=true;cfg_def.smaa=false;cfg_def.compositing=true;cfg_def.motion_blur= true;cfg_def.allow_hidpi=true;cfg_def.enable_outlining=true;cfg_def.glow_materials=true;cfg_def.msaa_samples=16;cfg_def.srgb_type="SRGB_PROPER";cfg_phy.max_fps=120;cfg_def.lod_smooth_transitions=true;break;case exports.P_HIGH:cfg_def.shadows=true;cfg_def.shore_smoothing=true;cfg_def.ssao=true;cfg_def.dof=true;cfg_def.god_rays=true;cfg_def.bloom=true;cfg_def.reflections=true;cfg_def.refractions=true;cfg_def.foam=true;cfg_def.parallax=true;cfg_def.dynamic_grass=true;cfg_scs.grass_tex_size=2*512;cfg_scs.cubemap_tex_size= 256;cfg_def.texture_min_filter=3;cfg_def.anisotropic_filtering=true;cfg_def.use_min50=false;cfg_def.water_dynamic=true;cfg_def.shore_distance=true;cfg_def.antialiasing=true;cfg_def.smaa=false;cfg_def.compositing=true;cfg_def.motion_blur=true;cfg_def.allow_hidpi=false;cfg_def.enable_outlining=true;cfg_def.glow_materials=true;cfg_def.srgb_type="SRGB_SIMPLE";cfg_def.msaa_samples=4;cfg_phy.max_fps=60;cfg_def.lod_smooth_transitions=true;break;case exports.P_LOW:cfg_def.shadows=false;cfg_def.shore_smoothing= false;cfg_def.ssao=false;cfg_def.dof=false;cfg_def.god_rays=false;cfg_def.bloom=false;cfg_def.reflections=false;cfg_def.refractions=false;cfg_def.foam=false;cfg_def.parallax=false;cfg_def.dynamic_grass=false;cfg_scs.grass_tex_size=1*512;cfg_scs.cubemap_tex_size=256;cfg_def.texture_min_filter=2;cfg_def.anisotropic_filtering=false;cfg_def.use_min50=true;cfg_def.water_dynamic=false;cfg_def.shore_distance=false;cfg_def.antialiasing=false;cfg_def.smaa=false;cfg_def.compositing=false;cfg_def.motion_blur= false;cfg_def.allow_hidpi=false;cfg_def.enable_outlining=false;cfg_def.glow_materials=false;cfg_def.srgb_type="SRGB_SIMPLE";cfg_def.msaa_samples=1;cfg_phy.max_fps=60;cfg_def.lod_smooth_transitions=false;break;case exports.P_CUSTOM:break;case exports.P_AUTO:m_assert.panic("Direct AUTO quality profile setting is forbidden");break}};exports.set=set;function set(prop,value){switch(prop){case "allow_cors":exports.defaults.allow_cors=value;break;case "allow_hidpi":exports.defaults.allow_hidpi=value;break; case "alpha":exports.context.alpha=value;break;case "alpha_sort":exports.defaults.alpha_sort=value;break;case "alpha_sort_threshold":exports.defaults.alpha_sort_threshold=value;break;case "anaglyph_use":m_print.error_deprecated_cfg("anaglyph_use","stereo");exports.defaults.stereo=value?"ANAGLYPH":exports.defaults.stereo;break;case "animation_framerate":exports.animation.framerate=value;break;case "anisotropic_filtering":exports.defaults.anisotropic_filtering=value;break;case "antialiasing":exports.defaults.antialiasing= value;break;case "assets_dir":case "assets_path":exports.assets.path=value;break;case "assets_dds_available":exports.assets.dds_available=value;break;case "assets_pvr_available":exports.assets.pvr_available=value;break;case "assets_min50_available":exports.assets.min50_available=value;break;case "audio":exports.sfx.webaudio=value;break;case "background_color":exports.defaults.background_color=value;break;case "bloom":exports.defaults.bloom=value;break;case "built_in_module_name":exports.paths.built_in_data_module= value;break;case "canvas_resolution_factor":exports.defaults.canvas_resolution_factor=value;break;case "console_verbose":exports.defaults.console_verbose=value;break;case "compositing":exports.defaults.compositing=value;break;case "dof":exports.defaults.dof=value;break;case "do_not_load_resources":exports.defaults.do_not_load_resources=value;break;case "god_rays":exports.defaults.god_rays=value;break;case "stereo":exports.defaults.stereo=value;break;case "lod_leap_smooth_threshold":exports.defaults.lod_leap_smooth_threshold= value;break;case "lod_smooth_transitions":exports.defaults.lod_smooth_transitions=value;break;case "max_fps":exports.defaults.max_fps=value;break;case "max_fps_physics":exports.physics.max_fps=value;break;case "media_auto_activation":exports.defaults.media_auto_activation=value;break;case "motion_blur":exports.defaults.motion_blur=value;break;case "physics_enabled":exports.physics.enabled=value;break;case "physics_uranium_path":if(is_wasm_enabled()){exports.physics.uranium_path=value+exports.physics.wasmjs_file; exports.physics.uranium_bin=value+exports.physics.wasm_file}else{exports.physics.uranium_path=value+exports.physics.asmjs_file;exports.physics.uranium_bin=value+exports.physics.mem_file}exports.physics.uranium_dir=value;break;case "physics_use_wasm":exports.physics.use_wasm=value;break;case "physics_calc_fps":exports.physics.calc_fps=value;break;case "physics_use_workers":exports.physics.use_workers=value;break;case "precision":exports.defaults.precision=value;break;case "prevent_caching":exports.assets.prevent_caching= value;break;case "quality":exports.defaults.quality=value;break;case "reflections":exports.defaults.reflections=value;break;case "refractions":exports.defaults.refractions=value;break;case "sfx_mix_mode":exports.sfx.mix_mode=value;break;case "shaders_dir":case "shaders_path":exports.paths.shaders_path=value;break;case "shadows":exports.defaults.shadows=value;break;case "show_hud_debug_info":exports.defaults.show_hud_debug_info=value;break;case "smaa":m_print.error_deprecated_cfg("smaa");exports.defaults.smaa= value;break;case "smaa_search_texture_path":m_print.error_deprecated_cfg("smaa_search_texture_path");exports.paths.smaa_search_texture_path=value;break;case "smaa_area_texture_path":m_print.error_deprecated_cfg("smaa_area_texture_path");exports.paths.smaa_area_texture_path=value;break;case "ssao":exports.defaults.ssao=value;break;case "debug_view":exports.defaults.debug_view=value;break;case "enable_selectable":exports.defaults.enable_selectable=value;break;case "enable_outlining":exports.defaults.enable_outlining= value;break;case "outlining_overview_mode":exports.outlining.outlining_overview_mode=value;break;case "glow_materials":exports.defaults.glow_materials=value;break;case "url_params":exports.defaults.url_params=value;break;case "use_min50":exports.defaults.use_min50=value;break;case "enable_texture_cache":exports.defaults.enable_texture_cache=value;break;case "gl_debug":exports.defaults.gl_debug=value;break;case "srgb_type":exports.defaults.srgb_type=value;break;case "shadow_blur_samples":exports.defaults.shadow_blur_samples= value;break;case "reflection_quality":exports.defaults.reflection_quality=value;break;case "assets_gzip_available":exports.defaults.assets_gzip_available=value;break;case "debug_loading":exports.defaults.debug_loading=value;break;case "msaa_samples":exports.defaults.msaa_samples=value;break;default:m_print.error("Unknown config property: "+prop);break}}exports.get=function(prop){switch(prop){case "allow_cors":return exports.defaults.allow_cors;case "allow_hidpi":return exports.defaults.allow_hidpi; case "alpha":return exports.context.alpha;case "alpha_sort":return exports.defaults.alpha_sort;case "alpha_sort_threshold":return exports.defaults.alpha_sort_threshold;case "anaglyph_use":return exports.defaults.stereo=="ANAGLYPH";case "animation_framerate":return exports.animation.framerate;case "anisotropic_filtering":return exports.defaults.anisotropic_filtering;case "antialiasing":return exports.defaults.antialiasing;case "assets_dir":case "assets_path":return exports.assets.path;case "assets_dds_available":return exports.assets.dds_available; case "assets_pvr_available":return exports.assets.pvr_available;case "assets_min50_available":return exports.assets.min50_available;case "audio":return exports.sfx.webaudio;case "background_color":return exports.defaults.background_color;case "bloom":return exports.defaults.bloom;case "built_in_module_name":return exports.paths.built_in_data_module;case "canvas_resolution_factor":return exports.defaults.canvas_resolution_factor;case "console_verbose":return exports.defaults.console_verbose;case "compositing":return exports.defaults.compositing; case "dof":return exports.defaults.dof;case "do_not_load_resources":return exports.defaults.do_not_load_resources;case "is_mobile_device":return exports.defaults.is_mobile_device;case "god_rays":return exports.defaults.god_rays;case "stereo":return exports.defaults.stereo;case "lod_leap_smooth_threshold":return exports.defaults.lod_leap_smooth_threshold;case "lod_smooth_transitions":return exports.defaults.lod_smooth_transitions;case "max_fps":return exports.defaults.max_fps;case "max_fps_physics":return exports.physics.max_fps; case "media_auto_activation":return exports.defaults.media_auto_activation;case "motion_blur":return exports.defaults.motion_blur;case "physics_enabled":return exports.physics.enabled;case "physics_uranium_path":return exports.physics.uranium_dir;case "physics_uranium_bin":return exports.physics.uranium_bin;case "physics_use_wasm":return exports.physics.use_wasm;case "physics_calc_fps":return exports.physics.calc_fps;case "physics_use_workers":return exports.physics.use_workers;case "precision":return exports.defaults.precision; case "prevent_caching":return exports.assets.prevent_caching;case "quality":return exports.defaults.quality;case "reflections":return exports.defaults.reflections;case "refractions":return exports.defaults.refractions;case "sfx_mix_mode":return exports.sfx.mix_mode;case "shaders_dir":case "shaders_path":return exports.paths.shaders_path;case "shadows":return exports.defaults.shadows;case "show_hud_debug_info":return exports.defaults.show_hud_debug_info;case "smaa":return exports.defaults.smaa;case "smaa_search_texture_path":return exports.paths.smaa_search_texture_path; case "smaa_area_texture_path":return exports.paths.smaa_area_texture_path;case "ssao":return exports.defaults.ssao;case "debug_view":return exports.defaults.debug_view;case "enable_selectable":return exports.defaults.enable_selectable;case "enable_outlining":return exports.defaults.enable_outlining;case "outlining_overview_mode":return exports.outlining.outlining_overview_mode;case "glow_materials":return exports.defaults.glow_materials;case "url_params":return exports.defaults.url_params;case "use_min50":return exports.defaults.use_min50; case "enable_texture_cache":return exports.defaults.enable_texture_cache;case "gl_debug":return exports.defaults.gl_debug;case "srgb_type":return exports.defaults.srgb_type;case "shadow_blur_samples":return exports.defaults.shadow_blur_samples;case "reflection_quality":return exports.defaults.reflection_quality;case "assets_gzip_available":return exports.defaults.assets_gzip_available;case "debug_loading":return exports.defaults.debug_loading;case "msaa_samples":return exports.defaults.msaa_samples; default:m_print.error("Unknown config property: "+prop);break}};exports.reset=function(){for(var i in exports.context_save)exports.context[i]=exports.context_save[i];for(var i in exports.defaults_save)exports.defaults[i]=exports.defaults_save[i];for(var i in exports.assets_save)exports.assets[i]=exports.assets_save[i];for(var i in exports.physics_save)exports.physics[i]=exports.physics_save[i];for(var i in exports.scenes_save)exports.scenes[i]=exports.scenes_save[i];for(var i in exports.sfx_save)exports.sfx[i]= exports.sfx_save[i];for(var i in exports.debug_subs_save)exports.debug_subs[i]=exports.debug_subs_save[i]};exports.reset_limits=function(){var depth_bits=exports.context_limits.depth_bits;for(var i in exports.context_limits_save)exports.context_limits[i]=exports.context_limits_save[i];exports.context_limits.depth_bits=depth_bits};exports.is_built_in_data=is_built_in_data;function is_built_in_data(){return __WEBPACK_IMPORTED_MODULE_1__util_b4w_js__["a"].module_check(exports.paths.built_in_data_module)} function is_wasm_enabled(){return exports.physics.use_wasm&&window.WebAssembly}exports.set_paths=function(){var cfg_pth=exports.paths;var cfg_phy=exports.physics;if(!is_built_in_data()&&cfg_pth.shaders_path=="")cfg_pth.shaders_path=js_src_dir()+"/"+cfg_pth.shaders_path_default;if(is_wasm_enabled()){var uranium_path=cfg_phy.uranium_path_default+cfg_phy.wasmjs_file;var uranium_bin=cfg_phy.uranium_path_default+cfg_phy.wasm_file}else{var uranium_path=cfg_phy.uranium_path_default+cfg_phy.asmjs_file;var uranium_bin= cfg_phy.uranium_path_default+cfg_phy.mem_file}if(cfg_phy.enabled&&cfg_phy.uranium_path==""){cfg_phy.uranium_path=uranium_path.replace("B4W_URANIUM_PATH=","");cfg_phy.uranium_bin=uranium_bin.replace("B4W_URANIUM_PATH=","")}};function js_src_dir(){var cfg_pth=exports.paths;var src_path=null;var found_offset=false;var scripts=document.getElementsByTagName("script");for(var i=0;i=0){src_path=src;if(scripts[i].attributes["b4w-offset"]){src_path=src_path.substring(0,src_path.lastIndexOf("/"))+"/"+scripts[i].attributes["b4w-offset"].value;found_offset=true;break}}}if(found_offset)break}if(!src_path){m_print.warn("Couldn't determine path to ancillary resources, "+"fallback to the current page directory");src_path=document.location.href}var index=src_path.indexOf("?");if(index>=0)src_path=src_path.substring(0,index);return src_path.substring(0,src_path.lastIndexOf("/"))} exports.get_assets_path=function(name){var cfg_ass=exports.assets;if(cfg_ass.path)return cfg_ass.path;var cfg_ass_def=cfg_ass.path_default;var assets_repl_pref="B4W_ASSETS_PATH=";if(name){cfg_ass_def=cfg_ass.proj_path_default;assets_repl_pref="B4W_PROJ_ASSETS_PATH=";cfg_ass_def=cfg_ass_def.replace("__NAME__",name)}cfg_ass_def=cfg_ass_def.replace(assets_repl_pref,"");cfg_ass_def=cfg_ass_def.replace("__JS__",js_src_dir());return cfg_ass_def}}var int_config_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__config", Int_config);__webpack_exports__["a"]=int_config_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_2__intern_print_js__=__webpack_require__(1);function Assert(ns,exports){var m_print=Object(__WEBPACK_IMPORTED_MODULE_2__intern_print_js__["a"])(ns);var _equal_last_obj=null;var _equal_init=false;exports.panic=panic; function panic(s){if(s)m_print.error.apply(m_print,arguments);throw"engine panic:\n"+"The engine tried to perform an invalid operation and halted.\n"+"Please copy the console contents above and submit it to the Blend4Web forum at\n"+"https://www.blend4web.com/en/forums/forum/17/";}exports.assert=function(cond){if(!cond)panic("Assertion failed")};exports.is_constructor=function(value,constructor){if(value.constructor!=constructor)panic("Type assertion failed: value <"+value+"> has type <"+value.constructor+ ">, required <"+constructor+">")};exports.equal=equal;function equal(obj1,obj2){if(!is_valid(obj1))panic("Structure assertion failed: invalid first object value");if(!is_valid(obj2))panic("Structure assertion failed: invalid second object value");if(!cmp_type(obj1,obj2))panic("Structure assertion failed: incompatible types");if(!(obj1!=null&&obj2!=null&&typeof obj1=="object"&&!__WEBPACK_IMPORTED_MODULE_1__intern_util_js__["_14"](obj1)&&!(obj1 instanceof Array)))return;for(var i in obj1){if(!is_valid(obj1[i]))panic("Structure assertion failed: invalid value for key "+ "in the first object: "+i);if(!(i in obj2))panic("Structure assertion failed: missing key in the first object: "+i)}for(var i in obj2){if(!is_valid(obj2[i]))panic("Structure assertion failed: invalid value for key "+"in the second object: "+i);if(!(i in obj1))panic("Structure assertion failed: missing key in the second object: "+i);if(!cmp_type(obj1[i],obj2[i]))panic("Structure assertion failed: incompatible types for key "+i)}}function is_valid(obj){if(typeof obj=="undefined")return false;else if(typeof obj== "number"&&isNaN(obj))return false;else return true}function cmp_type(obj1,obj2){var type1=typeof obj1;var type2=typeof obj2;if(type1!=type2)return false;if(obj1!=null&&obj2!=null&&typeof obj1=="object"){var is_arr1=obj1 instanceof Array;var is_arr2=obj2 instanceof Array;if(is_arr1&&!is_arr2||!is_arr1&&is_arr2)return false;var is_abv1=__WEBPACK_IMPORTED_MODULE_1__intern_util_js__["_14"](obj1);var is_abv2=__WEBPACK_IMPORTED_MODULE_1__intern_util_js__["_14"](obj2);if(is_abv1&&!is_abv2||!is_abv1&&is_abv2)return false}return true} exports.equal_seq=function(obj){if(!_equal_init)_equal_init=true;else equal(obj,_equal_last_obj);if(obj!=null&&typeof obj=="object")_equal_last_obj=__WEBPACK_IMPORTED_MODULE_1__intern_util_js__["N"](obj);else _equal_last_obj=obj}}var assert_fact=Object(__WEBPACK_IMPORTED_MODULE_0__register_js__["a"])("assert",Assert);__webpack_exports__["a"]=assert_fact},function(module,__webpack_exports__,__webpack_require__){__webpack_exports__["b"]=create;__webpack_exports__["e"]=from_values;__webpack_exports__["c"]= create_ext;__webpack_exports__["a"]=copy;__webpack_exports__["m"]=identity;__webpack_exports__["t"]=set_sep;__webpack_exports__["v"]=set_trans;__webpack_exports__["s"]=set_scale;__webpack_exports__["w"]=set_transcale;__webpack_exports__["r"]=set_quat;__webpack_exports__["k"]=get_trans_view;__webpack_exports__["j"]=get_trans;__webpack_exports__["i"]=get_scale;__webpack_exports__["l"]=get_transcale;__webpack_exports__["h"]=get_quat_view;__webpack_exports__["g"]=get_quat;__webpack_require__.d(__webpack_exports__, "p",function(){return invert});__webpack_require__.d(__webpack_exports__,"x",function(){return to_mat4});__webpack_require__.d(__webpack_exports__,"d",function(){return from_mat4});__webpack_require__.d(__webpack_exports__,"q",function(){return multiply});__webpack_require__.d(__webpack_exports__,"D",function(){return transform_vec3});__webpack_require__.d(__webpack_exports__,"E",function(){return transform_vec3_inv});__webpack_require__.d(__webpack_exports__,"F",function(){return transform_vectors}); __webpack_require__.d(__webpack_exports__,"z",function(){return transform_dir_vectors});__webpack_require__.d(__webpack_exports__,"y",function(){return transform_dir_vec3});__webpack_require__.d(__webpack_exports__,"C",function(){return transform_tangents});__webpack_exports__["A"]=transform_quat;__webpack_require__.d(__webpack_exports__,"B",function(){return transform_quats});__webpack_require__.d(__webpack_exports__,"G",function(){return translate});__webpack_require__.d(__webpack_exports__,"o", function(){return interpolate});__webpack_require__.d(__webpack_exports__,"n",function(){return integrate});__webpack_exports__["f"]=get_from_flat_array;__webpack_exports__["u"]=set_to_flat_array;var __WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat4_js__=__webpack_require__(21);var __WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_2__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__=__webpack_require__(3); var ZUP_SIN=Math.sin(-Math.PI/4);var ZUP_COS=-ZUP_SIN;var _vec3_tmp=new Float32Array(3);var _quat_tmp=new Float32Array(4);var _mat4_tmp=new Float32Array(16);function create(){var tsr=new Float32Array(9);tsr[3]=1;tsr[4]=1;tsr[5]=1;return tsr}function clone(tsr){var out=create();copy(tsr,out);return out}function from_values(x,y,z,s,qx,qy,qz,qw){var tsr=create();tsr[0]=x;tsr[1]=y;tsr[2]=z;tsr[3]=s;tsr[4]=s;tsr[5]=s;var sign=qw<0?-1:1;tsr[6]=sign*qx;tsr[7]=sign*qy;tsr[8]=sign*qz;return tsr}function create_ext(){var tsr= new Float32Array(9);tsr[3]=1;tsr[4]=1;tsr[5]=1;return tsr}function clone_ext(tsr){var out=create_ext();copy(tsr,out);return out}function from_values_ext(x,y,z,s,qx,qy,qz,qw){var tsr=create_ext();tsr[0]=x;tsr[1]=y;tsr[2]=z;tsr[3]=s;tsr[4]=s;tsr[5]=s;var sign=qw<0?-1:1;tsr[6]=sign*qx;tsr[7]=sign*qy;tsr[8]=sign*qz;return tsr}function copy(tsr,dest){if(tsr[8]!=tsr[8])throw new Error(tsr);dest[0]=tsr[0];dest[1]=tsr[1];dest[2]=tsr[2];dest[3]=tsr[3];dest[4]=tsr[4];dest[5]=tsr[5];dest[6]=tsr[6];dest[7]=tsr[7]; dest[8]=tsr[8];return dest}function identity(tsr){tsr[0]=0;tsr[1]=0;tsr[2]=0;tsr[3]=1;tsr[4]=1;tsr[5]=1;tsr[6]=0;tsr[7]=0;tsr[8]=0;return tsr}function set_sep(trans,scale,quat,dest){dest[0]=trans[0];dest[1]=trans[1];dest[2]=trans[2];if(__WEBPACK_IMPORTED_MODULE_2__util_js__["_15"](scale)){dest[3]=scale[0];dest[4]=scale[1];dest[5]=scale[2]}else{dest[3]=scale;dest[4]=scale;dest[5]=scale}var sign=quat[3]<0?-1:1;dest[6]=sign*quat[0];dest[7]=sign*quat[1];dest[8]=sign*quat[2];return dest}function set_trans(trans, dest){if(trans[0]!=trans[0])throw new Error(trans);dest[0]=trans[0];dest[1]=trans[1];dest[2]=trans[2];return dest}function set_scale(scale,dest){if(__WEBPACK_IMPORTED_MODULE_2__util_js__["_15"](scale)){dest[3]=scale[0];dest[4]=scale[1];dest[5]=scale[2]}else{dest[3]=scale;dest[4]=scale;dest[5]=scale}return dest}function set_transcale(transcale,dest){dest[0]=transcale[0];dest[1]=transcale[1];dest[2]=transcale[2];dest[3]=transcale[3];return dest}function set_quat(quat,dest){if(quat[0]!=quat[0])throw new Error(quat); var sign=quat[3]<0?-1:1;dest[6]=sign*quat[0];dest[7]=sign*quat[1];dest[8]=sign*quat[2];return dest}function get_trans_view(tsr){return get_trans(tsr,__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"]())}function get_trans(tsr,dest){dest[0]=tsr[0];dest[1]=tsr[1];dest[2]=tsr[2];return dest}function get_scale(tsr,dest){if(dest){dest[0]=tsr[3];dest[1]=tsr[4];dest[2]=tsr[5];return dest}return tsr[3]}function get_transcale(tsr,dest){dest[0]=tsr[0];dest[1]=tsr[1];dest[2]=tsr[2];dest[3]=tsr[3]; return dest}function get_quat_view(tsr){return get_quat(tsr,__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"]())}function get_quat(tsr,dest){dest[0]=tsr[6];dest[1]=tsr[7];dest[2]=tsr[8];dest[3]=Math.sqrt(Math.abs(1-tsr[6]*tsr[6]-tsr[7]*tsr[7]-tsr[8]*tsr[8]));return dest}var invert=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"](); return function invert(tsr,dest){var s=get_scale(tsr,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["inverse"](s,s);if(!s[0])return null;var t=get_trans(tsr,_vec3_tmp2);var q=get_quat(tsr,_quat_tmp);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["invert"](q,q);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["multiply"](t,s,t);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["transformQuat"](t,q,t);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["negate"](t, t);set_trans(t,dest);set_scale(s,dest);set_quat(q,dest);return dest}}();var to_mat4=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"]();return function to_mat4(tsr,dest){var trans=get_trans(tsr,_vec3_tmp);var scale=get_scale(tsr,_vec3_tmp2);var quat=get_quat(tsr,_quat_tmp);__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat, trans,dest);__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat4_js__["scale"](dest,scale,dest);return dest}}();var from_mat4=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"]();return function from_mat4(mat,dest){var trans=__WEBPACK_IMPORTED_MODULE_2__util_js__["_26"](mat,_vec3_tmp);var scale=__WEBPACK_IMPORTED_MODULE_2__util_js__["_25"](mat, _vec3_tmp2);var quat=__WEBPACK_IMPORTED_MODULE_2__util_js__["_24"](mat,_quat_tmp);set_trans(trans,dest);set_scale(scale,dest);set_quat(quat,dest);return dest}}();var multiply=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"]();var _quat_tmp2=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"](); return function multiply(tsr,tsr2,dest){var t=get_trans(tsr2,_vec3_tmp);transform_vec3(t,tsr,t);set_trans(t,dest);var s=get_scale(tsr,_vec3_tmp);var s2=get_scale(tsr2,_vec3_tmp2);var res_s=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["multiply"](s,s2,_vec3_tmp);set_scale(res_s,dest);var q=get_quat(tsr,_quat_tmp);var q2=get_quat(tsr2,_quat_tmp2);var res_q=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["multiply"](q,q2,_quat_tmp);set_quat(res_q,dest);return dest}}();var transform_mat4= function(){var _mat4_tmp=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat4_js__["create"]();return function transform_mat4(matrix,tsr,dest){var m=to_mat4(tsr,_mat4_tmp);__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_mat4_js__["multiply"](m,matrix,dest);return dest}}();var transform_vec3=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"](); return function transform_vec3(vec,tsr,dest){var trans=get_trans(tsr,_vec3_tmp);var scale=get_scale(tsr,_vec3_tmp2);var quat=get_quat(tsr,_quat_tmp);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["multiply"](vec,scale,dest);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["transformQuat"](dest,quat,dest);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["add"](dest,trans,dest);return dest}}();var transform_vec3_inv=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"](); var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"]();return function transform_vec3_inv(vec,tsr,dest){var trans=get_trans(tsr,_vec3_tmp);var scale=get_scale(tsr,_vec3_tmp2);var quat=get_quat(tsr,_quat_tmp);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["subtract"](vec,trans,dest);__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["invert"](quat,quat);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["transformQuat"](dest, quat,dest);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["inverse"](scale,scale);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["multiply"](dest,scale,dest);return dest}}();var transform_vectors=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp3=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_1__libs_gl_matrix_quat_js__["create"](); return function transform_vectors(vectors,tsr,new_vectors,dest_offset){dest_offset|=0;var len=vectors.length;var trans=get_trans(tsr,_vec3_tmp);var scale=get_scale(tsr,_vec3_tmp2);var quat=get_quat(tsr,_quat_tmp);var vec=_vec3_tmp3;for(var i=0;i0){len=1/Math.sqrt(len);out[0]=x*len;out[1]=y*len;out[2]=z*len;out[3]=w*len}return out}function dot(a, b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function lerp(a,b,t,out){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out}function random(scale,out){out[0]=GLMAT_RANDOM();out[1]=GLMAT_RANDOM();out[2]=GLMAT_RANDOM();out[3]=GLMAT_RANDOM();normalize(out,out);scale(out,scale,out);return out}function transformMat4(a,m,out){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]* z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out}function transformQuat(a,q,out){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;out[3]=a[3];return out}var forEach=function(){var vec=create();return function(a,stride,offset,count,fn,arg){var i,l;if(!stride)stride=4;if(!offset)offset= 0;if(count)l=Math.min(count*stride+offset,a.length);else l=a.length;for(i=offset;i.9999999){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out}else{__WEBPACK_IMPORTED_MODULE_0__vec3_js__["cross"](a,b,tmpvec3);out[0]=tmpvec3[0];out[1]=tmpvec3[1];out[2]=tmpvec3[2];out[3]=1+dot;return __WEBPACK_IMPORTED_MODULE_1__vec4_js__["normalize"](out, out)}}}();var setAxes=function(){var matr=__WEBPACK_IMPORTED_MODULE_2__mat3_js__["create"]();return function(view,right,up,out){matr[0]=right[0];matr[3]=right[1];matr[6]=right[2];matr[1]=up[0];matr[4]=up[1];matr[7]=up[2];matr[2]=-view[0];matr[5]=-view[1];matr[8]=-view[2];return __WEBPACK_IMPORTED_MODULE_1__vec4_js__["normalize"](fromMat3(matr,out),out)}}();function identity(out){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out}function setAxisAngle(axis,rad,out){rad=rad*.5;var s=Math.sin(rad);out[0]= s*axis[0];out[1]=s*axis[1];out[2]=s*axis[2];out[3]=Math.cos(rad);return out}function multiply(a,b,out){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];out[0]=ax*bw+aw*bx+ay*bz-az*by;out[1]=ay*bw+aw*by+az*bx-ax*bz;out[2]=az*bw+aw*bz+ax*by-ay*bx;out[3]=aw*bw-ax*bx-ay*by-az*bz;return out}function rotateX(a,rad,out){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+aw*bx;out[1]=ay*bw+az*bx;out[2]=az*bw-ay*bx;out[3]=aw*bw-ax*bx;return out}function rotateY(a, rad,out){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],by=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw-az*by;out[1]=ay*bw+aw*by;out[2]=az*bw+ax*by;out[3]=aw*bw-ay*by;return out}function rotateZ(a,rad,out){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bz=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+ay*bz;out[1]=ay*bw-ax*bz;out[2]=az*bw+aw*bz;out[3]=aw*bw-az*bz;return out}function calculateW(a,out){var x=a[0],y=a[1],z=a[2];out[0]=x;out[1]=y;out[2]=z;out[3]=Math.sqrt(Math.abs(1-x*x-y*y-z*z));return out}function slerp(a, b,t,out){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];var omega,cosom,sinom,scale0,scale1;cosom=ax*bx+ay*by+az*bz+aw*bw;if(cosom<0){cosom=-cosom;bx=-bx;by=-by;bz=-bz;bw=-bw}if(1-cosom>1E-6){omega=Math.acos(cosom);sinom=Math.sin(omega);scale0=Math.sin((1-t)*omega)/sinom;scale1=Math.sin(t*omega)/sinom}else{scale0=1-t;scale1=t}out[0]=scale0*ax+scale1*bx;out[1]=scale0*ay+scale1*by;out[2]=scale0*az+scale1*bz;out[3]=scale0*aw+scale1*bw;return out}var sqlerp=function(){var temp1=create(); var temp2=create();return function(a,b,c,d,t,out){slerp(a,d,t,temp1);slerp(b,c,t,temp2);slerp(temp1,temp2,2*t*(1-t),out);return out}}();function invert(a,out){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out}function conjugate(a,out){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out}function fromMat3(m,out){var fTrace=m[0]+m[4]+m[8];var fRoot;if(fTrace>0){fRoot=Math.sqrt(fTrace+ 1);out[3]=.5*fRoot;fRoot=.5/fRoot;out[0]=(m[5]-m[7])*fRoot;out[1]=(m[6]-m[2])*fRoot;out[2]=(m[1]-m[3])*fRoot}else{var i=0;if(m[4]>m[0])i=1;if(m[8]>m[i*3+i])i=2;var j=(i+1)%3;var k=(i+2)%3;fRoot=Math.sqrt(m[i*3+i]-m[j*3+j]-m[k*3+k]+1);out[i]=.5*fRoot;fRoot=.5/fRoot;out[3]=(m[j*3+k]-m[k*3+j])*fRoot;out[j]=(m[j*3+i]+m[i*3+j])*fRoot;out[k]=(m[k*3+i]+m[i*3+k])*fRoot}return out}function str(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"}},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__boundings_js__=__webpack_require__(25);var __WEBPACK_IMPORTED_MODULE_2__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_3__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_4__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec4_js__=__webpack_require__(7);function Int_obj_util(ns,exports){var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_2__config_js__["a"])(ns); var cfg_def=m_cfg.defaults;var LOD_DIST_MAX_INFINITY=Infinity;exports.LOD_DIST_MAX_INFINITY=LOD_DIST_MAX_INFINITY;exports.create_render=create_render;function create_render(type){var render={type:type,data_id:0,world_tsr:__WEBPACK_IMPORTED_MODULE_3__tsr_js__["c"](),world_tsr_inv:__WEBPACK_IMPORTED_MODULE_3__tsr_js__["c"](),pivot:new Float32Array(3),hover_pivot:new Float32Array(3),init_dist:0,init_fov:0,is_copied:false,is_copied_deep:false,color_id:null,outline_intensity:0,target_cam_upside_down:false, vertical_axis:__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["create"](),use_panning:false,move_style:0,velocity_trans:1,velocity_rot:1,velocity_zoom:1,dof_distance:0,dof_front_start:0,dof_front_end:0,dof_rear_start:0,dof_rear_end:0,dof_power:0,dof_bokeh_intensity:0,dof_bokeh:false,dof_foreground_blur:false,dof_object:null,horizontal_limits:null,vertical_limits:null,distance_limits:null,hover_vert_trans_limits:null,hover_horiz_trans_limits:null,pivot_limits:null,enable_hover_hor_rotation:true, outline_anim_settings_default:{outline_duration:1,outline_period:1,outline_relapses:0},cube_reflection_id:-1,plane_reflection_id:-1,reflection_plane:new Float32Array(4),friction:0,elasticity:0,is_lod:false,lod_center:new Float32Array(3),main_lod_offset:new Float32Array(3),lod_dist_min:0,lod_dist_max:LOD_DIST_MAX_INFINITY,lod_lower_border_range:0,lod_upper_border_range:0,do_not_render:false,shadow_cast:false,shadow_receive:false,shadow_cast_only:false,reflexible:false,reflexible_only:false,reflective:false, reflection_type:"",wind_bending:false,dynamic_geometry:false,dynamic_grass:false,hide:false,hide_children:false,selectable:false,origin_selectable:false,outlining:false,origin_outlining:false,outline_on_select:false,is_hair_particles:false,is_visible:false,force_zsort:false,wind_bending_angle:0,wind_bending_amp:0,wind_bending_freq:0,detail_bending_freq:0,detail_bending_amp:0,branch_bending_amp:0,main_bend_col:"",detail_bend_col:{leaves_stiffness:"",leaves_phase:"",overall_stiffness:""},bend_center_only:false, center_pos:new Float32Array(3),billboard:false,billboard_pres_glob_orientation:false,billboard_type:"",billboard_spherical:false,frame_factor:0,va_frame:0,va_frame_factor:0,max_bones:0,frames_blending:false,vertex_anim:false,use_shape_keys:false,shape_keys_values:[],is_skinning:false,anim_mixing:false,anim_mix_factor:1,anim_mix_factor_change_speed:0,anim_destination_mix_factor:1,anim_mix_cb:null,mix_with_current:false,blend_skel_slots:new Int8Array([-1,-1]),skinned_renders:[],mesh_to_arm_bone_maps:[], skinning_data_cache:[],quats_before:null,quats_after:null,trans_before:null,trans_after:null,trans_curr:null,quats_curr:null,bone_pointers:null,bone_skinning_info:null,pose_data:null,arm_rel_trans:null,arm_rel_quat:null,bb_original:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["w"](),bb_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["w"](),bb_world:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["w"](),bs_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["A"](),bs_world:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["A"](), be_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["y"](),be_world:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["y"](),bbr_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["C"](),bbr_world:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["C"](),bcyl_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["K"](),bcap_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["I"](),bcon_local:__WEBPACK_IMPORTED_MODULE_1__boundings_js__["J"](),pass_index:0};__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](__WEBPACK_IMPORTED_MODULE_4__util_js__["f"], render.vertical_axis);return render}exports.clone_render=clone_render;function clone_render(render){var out=create_render(render.type);out.data_id=render.data_id;__WEBPACK_IMPORTED_MODULE_3__tsr_js__["a"](render.world_tsr,out.world_tsr);__WEBPACK_IMPORTED_MODULE_3__tsr_js__["a"](render.world_tsr_inv,out.world_tsr_inv);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](render.pivot,out.pivot);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](render.hover_pivot,out.hover_pivot); out.init_dist=render.init_dist;out.init_fov=render.init_fov;out.is_copied=render.is_copied;out.is_copied_deep=render.is_copied_deep;if(render.color_id)out.color_id=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["clone"](render.color_id);out.outline_intensity=render.outline_intensity;out.target_cam_upside_down=render.target_cam_upside_down;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](render.vertical_axis,out.vertical_axis);out.use_panning=render.use_panning;out.move_style=render.move_style; out.velocity_trans=render.velocity_trans;out.velocity_rot=render.velocity_rot;out.velocity_zoom=render.velocity_zoom;out.dof_distance=render.dof_distance;out.dof_front_start=render.dof_front_start;out.dof_front_end=render.dof_front_end;out.dof_rear_start=render.dof_rear_start;out.dof_rear_end=render.dof_rear_end;out.dof_power=render.dof_power;out.dof_bokeh_intensity=render.dof_bokeh_intensity;out.dof_bokeh=render.dof_bokeh;out.dof_foreground_blur=render.dof_foreground_blur;out.dof_object=render.dof_object; out.horizontal_limits=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.horizontal_limits);out.vertical_limits=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.vertical_limits);out.distance_limits=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.distance_limits);out.hover_vert_trans_limits=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.hover_vert_trans_limits);out.hover_horiz_trans_limits=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.hover_horiz_trans_limits);out.pivot_limits=render.pivot_limits; out.enable_hover_hor_rotation=render.enable_hover_hor_rotation;out.outline_anim_settings_default.outline_duration=render.outline_anim_settings_default.outline_duration;out.outline_anim_settings_default.outline_period=render.outline_anim_settings_default.outline_period;out.outline_anim_settings_default.outline_relapses=render.outline_anim_settings_default.outline_relapses;out.cube_reflection_id=render.cube_reflection_id;out.plane_reflection_id=render.plane_reflection_id;out.reflection_plane=render.reflection_plane; out.friction=render.friction;out.elasticity=render.elasticity;out.is_lod=render.is_lod;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](render.lod_center,out.lod_center);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](render.main_lod_offset,out.main_lod_offset);out.lod_dist_min=render.lod_dist_min;out.lod_dist_max=render.lod_dist_max;out.lod_lower_border_range=render.lod_lower_border_range;out.lod_upper_border_range=render.lod_upper_border_range;out.do_not_render=render.do_not_render; out.shadow_cast=render.shadow_cast;out.shadow_receive=render.shadow_receive;out.shadow_cast_only=render.shadow_cast_only;out.reflexible=render.reflexible;out.reflexible_only=render.reflexible_only;out.reflective=render.reflective;out.reflection_type=render.reflection_type;out.wind_bending=render.wind_bending;out.dynamic_geometry=render.dynamic_geometry;out.dynamic_grass=render.dynamic_grass;out.hide=render.hide;out.selectable=render.selectable;out.origin_selectable=render.origin_selectable;out.outlining= render.outlining;out.origin_outlining=render.origin_outlining;out.outline_on_select=render.outline_on_select;out.is_hair_particles=render.is_hair_particles;out.is_visible=render.is_visible;out.force_zsort=render.force_zsort;out.wind_bending_angle=render.wind_bending_angle;out.wind_bending_amp=render.wind_bending_amp;out.wind_bending_freq=render.wind_bending_freq;out.detail_bending_freq=render.detail_bending_freq;out.detail_bending_amp=render.detail_bending_amp;out.branch_bending_amp=render.branch_bending_amp; out.main_bend_col=render.main_bend_col;out.detail_bend_col=render.detail_bend_col;out.bend_center_only=render.bend_center_only;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](render.center_pos,out.center_pos);out.billboard=render.billboard;out.billboard_pres_glob_orientation=render.billboard_pres_glob_orientation;out.billboard_type=render.billboard_type;out.billboard_spherical=render.billboard_spherical;out.frame_factor=render.frame_factor;out.va_frame=render.va_frame;out.va_frame_factor= render.va_frame_factor;out.max_bones=render.max_bones;out.frames_blending=render.frames_blending;out.vertex_anim=render.vertex_anim;out.use_shape_keys=render.use_shape_keys;out.shape_keys_values=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.shape_keys_values);out.is_skinning=render.is_skinning;out.anim_mixing=render.anim_mixing;out.anim_mix_factor=render.anim_mix_factor;out.anim_mix_factor_change_speed=render.anim_mix_factor_change_speed;out.anim_destination_mix_factor=render.anim_destination_mix_factor; out.blend_skel_slots.set(render.blend_skel_slots);out.skinned_renders=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.skinned_renders);out.mesh_to_arm_bone_maps=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.mesh_to_arm_bone_maps);out.skinning_data_cache=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.skinning_data_cache);out.quats_before=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.quats_before);out.quats_after=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.quats_after);out.trans_before= __WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.trans_before);out.trans_after=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.trans_after);out.bone_pointers=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.bone_pointers);out.bone_skinning_info=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.bone_skinning_info);out.pose_data=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.pose_data);out.arm_rel_trans=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.arm_rel_trans);out.arm_rel_quat=__WEBPACK_IMPORTED_MODULE_4__util_js__["O"](render.arm_rel_quat); __WEBPACK_IMPORTED_MODULE_1__boundings_js__["o"](render.bb_original,out.bb_original);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["o"](render.bb_local,out.bb_local);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["o"](render.bb_world,out.bb_world);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["u"](render.bs_local,out.bs_local);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["u"](render.bs_world,out.bs_world);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["s"](render.be_local,out.be_local);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["s"](render.be_world, out.be_world);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["p"](render.bcap_local,out.bcap_local);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["r"](render.bcyl_local,out.bcyl_local);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["q"](render.bcon_local,out.bcon_local);out.pass_index=render.pass_index;return out}exports.create_object=create_object;function create_object(name,type,origin_name){if(!origin_name)origin_name=name;var obj={name:name,uuid:__WEBPACK_IMPORTED_MODULE_4__util_js__["_4"](),origin_name:origin_name, type:type,materials:[],is_meta:true,_bpy_obj:null,mat_inheritance_data:{original_mat_names:[],is_disabled:[]},is_dynamic:false,is_hair_dupli:false,use_default_animation:false,is_boundings_overridden:false,render:null,constraint:null,sfx:null,light:null,armobj:null,anchor:null,field:null,metatags:null,custom_prop:null,scenes_data:[],vertex_anim:[],cons_descends:__WEBPACK_IMPORTED_MODULE_4__util_js__["S"](),cons_armat_bone_descends:__WEBPACK_IMPORTED_MODULE_4__util_js__["S"](),anim_slots:[],reflective_objs:[], nla_events:[],action_anim_cache:[],sensor_manifolds:null,sensor_manifolds_arr:[],parent:null,parent_is_dupli:false,parent_bone:"",viewport_alignment:null,pinverse_tsr:null,use_obj_physics:false,collision_id:"",correct_bounding_offset:"AUTO",is_vehicle:false,is_character:false,is_floating:false,bob_synchronize_pos:false,physics:null,vehicle:null,floater:null,vehicle_settings:null,floating_settings:null,character_settings:null,physics_constraints:[],physics_settings:{physics_type:"NO_COLLISION",use_ghost:false, use_sleep:false,mass:0,velocity_min:0,velocity_max:0,damping:0,rotation_damping:0,lock_location_x:false,lock_location_y:false,lock_location_z:false,lock_rotation_x:false,lock_rotation_y:false,lock_rotation_z:false,collision_margin:0,collision_group:0,collision_mask:0,use_collision_bounds:false,collision_bounds_type:"BOX",use_collision_compound:false},outline_animation:{time_start:0,outline_time:0,period:0,relapses:0},anim_behavior_def:0,def_action_slots:[],need_update_transform:false,need_inv_zup_tsr:false, meta_objects:[]};return obj}exports.init_scene_data=init_scene_data;function init_scene_data(scene){var sc_data={scene:scene,is_active:false,batches:[],batch_world_bounds:[],plane_refl_subs:[],cube_refl_subs:null,shadow_subscenes:[],light_index:0,obj_has_nla_on_scene:false,cameras:[],shadow_cameras:[]};return sc_data}exports.copy_bpy_object_props_by_link=function(obj){if(obj instanceof Array)return obj.slice();else return obj};exports.copy_object_props_by_value=copy_object_props_by_value;function copy_object_props_by_value(obj){if(!(obj instanceof Object))return obj;var textures=null;var texture_names=null;var bpy_tex_names=null;var shape_keys=null;var shader=null;var vaos=null;if(obj.textures){textures=obj.textures;obj.textures=null}if(obj.texture_names){texture_names=obj.texture_names;obj.texture_names=null}if(obj.bpy_tex_names){bpy_tex_names=obj.bpy_tex_names;obj.bpy_tex_names=null}if(obj.shape_keys){shape_keys=obj.shape_keys;obj.shape_keys=null}if(obj.shader){shader=obj.shader;obj.shader=null}if(obj.vaos){vaos=obj.vaos;obj.vaos=null}var obj_clone; var Constructor=obj.constructor;switch(Constructor){case Int8Array:case Uint8Array:case Uint8ClampedArray:case Int16Array:case Uint16Array:case Int32Array:case Uint32Array:case Float32Array:case Float64Array:obj_clone=new Constructor(obj);break;case Array:obj_clone=new Constructor(obj.length);for(var i=0;is_rad){var g_x=s_cen_x-s_rad*(x-s_cen_x)/s_cen_dist;var g_y=s_cen_y-s_rad*(y-s_cen_y)/s_cen_dist; var g_z=s_cen_z-s_rad*(z-s_cen_z)/s_cen_dist;s_cen_x=(g_x+x)/2;s_cen_y=(g_y+y)/2;s_cen_z=(g_z+z)/2;s_rad=Math.sqrt((s_cen_x-x)*(s_cen_x-x)+(s_cen_y-y)*(s_cen_y-y)+(s_cen_z-z)*(s_cen_z-z))}var c_cen_dist=Math.sqrt((c_cen_x-x)*(c_cen_x-x)+(c_cen_y-y)*(c_cen_y-y));if(c_cen_dist>c_rad){var g_x=c_cen_x-c_rad*(x-c_cen_x)/c_cen_dist;var g_y=c_cen_y-c_rad*(y-c_cen_y)/c_cen_dist;c_cen_x=(g_x+x)/2;c_cen_y=(g_y+y)/2;c_rad=Math.sqrt((c_cen_x-x)*(c_cen_x-x)+(c_cen_y-y)*(c_cen_y-y))}x/=x_width?x_width:1;y/=y_width? y_width:1;z/=z_width?z_width:1;var s_cen_tmp=Math.sqrt((tmp_s_cen[0]-x)*(tmp_s_cen[0]-x)+(tmp_s_cen[1]-y)*(tmp_s_cen[1]-y)+(tmp_s_cen[2]-z)*(tmp_s_cen[2]-z));if(s_cen_tmp>tmp_rad){var g_x=tmp_s_cen[0]-tmp_rad*(x-tmp_s_cen[0])/s_cen_tmp;var g_y=tmp_s_cen[1]-tmp_rad*(y-tmp_s_cen[1])/s_cen_tmp;var g_z=tmp_s_cen[2]-tmp_rad*(z-tmp_s_cen[2])/s_cen_tmp;tmp_s_cen[0]=(g_x+x)/2;tmp_s_cen[1]=(g_y+y)/2;tmp_s_cen[2]=(g_z+z)/2;tmp_rad=Math.sqrt((tmp_s_cen[0]-x)*(tmp_s_cen[0]-x)+(tmp_s_cen[1]-y)*(tmp_s_cen[1]-y)+ (tmp_s_cen[2]-z)*(tmp_s_cen[2]-z))}}}var e_cen_x=x_width?x_width*tmp_s_cen[0]:obj_local_bb.max_x;var e_cen_y=y_width?y_width*tmp_s_cen[1]:obj_local_bb.max_y;var e_cen_z=z_width?z_width*tmp_s_cen[2]:obj_local_bb.max_z;var e_axis_x=tmp_rad*x_width;var e_axis_y=tmp_rad*y_width;var e_axis_z=tmp_rad*z_width;set_box_render_bounds(render,obj_local_bb);set_sph_render_bounds(render,s_rad,[s_cen_x,s_cen_y,s_cen_z]);set_ell_render_bounds(render,[1,0,0],[0,1,0],[0,0,1],[e_axis_x,e_axis_y,e_axis_z],[e_cen_x,e_cen_y, e_cen_z]);if(is_dynamic(obj))set_local_cyl_cap_cone(render,c_rad,c_rad,render.bb_local);else{var x_len=(render.bb_local.max_x-render.bb_local.min_x)/2;var y_len=(render.bb_local.max_y-render.bb_local.min_y)/2;var z_len=(render.bb_local.max_z-render.bb_local.min_z)/2;var cen_x=(render.bb_local.max_x+render.bb_local.min_x)/2;var cen_y=(render.bb_local.max_y+render.bb_local.min_y)/2;var cen_z=(render.bb_local.max_z+render.bb_local.min_z)/2;set_bbr_render_bounds(render,[x_len,0,0],[0,y_len,0],[0,0,z_len], [1,1,1],[cen_x,cen_y,cen_z])}};function set_box_render_bounds(render,bb_local){__WEBPACK_IMPORTED_MODULE_1__boundings_js__["o"](bb_local,render.bb_local);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["h"](render.bb_local,render.world_tsr,render.bb_world)}function set_sph_render_bounds(render,sph_rad,bs_center){render.bs_local=__WEBPACK_IMPORTED_MODULE_1__boundings_js__["l"](sph_rad,bs_center);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["k"](render.bs_local,render.world_tsr,render.bs_world)}function set_ell_render_bounds(render, be_axis_x,be_axis_y,be_axis_z,axes_scale,be_center){render.be_local=__WEBPACK_IMPORTED_MODULE_1__boundings_js__["e"](be_axis_x,be_axis_y,be_axis_z,be_center);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](render.be_local.axis_x,axes_scale[0],render.be_local.axis_x);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](render.be_local.axis_y,axes_scale[1],render.be_local.axis_y);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["scale"](render.be_local.axis_z,axes_scale[2], render.be_local.axis_z);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["i"](render.be_local,render.world_tsr,render.be_world)}function set_local_cyl_cap_cone(render,cyl_radius,cap_radius,bb_local){render.bcyl_local=__WEBPACK_IMPORTED_MODULE_1__boundings_js__["d"](cyl_radius,bb_local);render.bcap_local=__WEBPACK_IMPORTED_MODULE_1__boundings_js__["b"](cap_radius,bb_local);render.bcon_local=__WEBPACK_IMPORTED_MODULE_1__boundings_js__["c"](cyl_radius,bb_local)}function set_bbr_render_bounds(render,bbr_axis_x, bbr_axis_y,bbr_axis_z,axes_scale,bbr_center){render.bbr_local=__WEBPACK_IMPORTED_MODULE_1__boundings_js__["O"](bbr_center,bbr_axis_x,bbr_axis_y,bbr_axis_z,axes_scale);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["j"](render.bbr_local,render.world_tsr,render.bbr_world)}exports.update_world_bounds_from_batch_tsr=update_world_bounds_from_batch_tsr;function update_world_bounds_from_batch_tsr(batch,tsr,world_bounds){__WEBPACK_IMPORTED_MODULE_1__boundings_js__["h"](batch.bounds_local.bb,tsr,world_bounds.bb); if(batch.use_be)__WEBPACK_IMPORTED_MODULE_1__boundings_js__["i"](batch.bounds_local.be,tsr,world_bounds.be);__WEBPACK_IMPORTED_MODULE_1__boundings_js__["k"](batch.bounds_local.bs,tsr,world_bounds.bs)}exports.remove_scene_data=function(obj,scene){var scenes_data=obj.scenes_data;for(var i=0;i0){var index=pset["material"]-1;var materials=obj.materials;if(index>=0&&index0||cam_render.dof_object);render.motion_blur=cfg_def.motion_blur&&bpy_scene["b4w_enable_motion_blur"]; render.compositing=cfg_def.compositing&&bpy_scene["b4w_enable_color_correction"];render.antialiasing=cfg_def.antialiasing&&cfg_def.msaa_samples==1&&bpy_scene["b4w_antialiasing_quality"]!="NONE";render.ssao=cfg_def.ssao&&bpy_scene["b4w_enable_ssao"];render.god_rays=cfg_def.god_rays&&bpy_scene["b4w_enable_god_rays"]&&render.sun_exist;render.depth_tex=cfg_def.depth_tex_available;render.glow_over_blend=bpy_scene["b4w_glow_settings"]["render_glow_over_blend"];render.ssao_params=extract_ssao_params(bpy_scene); var materials_params=get_material_params(bpy_mesh_objs);render.materials_params=materials_params;render.refractions=check_refraction(bpy_scene,materials_params);render.shadow_params=extract_shadow_params(bpy_scene,lamps,bpy_mesh_objs);render.water_params=get_water_params(bpy_mesh_objs);render.xray=check_xray_materials(bpy_mesh_objs);render.soft_particles=check_soft_particles(bpy_mesh_objs);render.shore_smoothing=check_shore_smoothing(bpy_mesh_objs);render.dynamic_grass=check_dynamic_grass(bpy_scene, bpy_mesh_objs);render.color_picking=check_selectable_objects(bpy_scene,bpy_mesh_objs);render.outline=check_outlining_objects(bpy_scene,bpy_mesh_objs);render.glow_materials=check_glow_materials(bpy_scene,bpy_mesh_objs);render.lod_smooth_type=bpy_scene["b4w_lod_smooth_type"];render.lod_hyst_interval=bpy_scene["b4w_lod_hyst_interval"];var reflection_quality=cfg_def.reflection_quality?cfg_def.reflection_quality:bpy_scene["b4w_reflection_quality"];switch(reflection_quality){case "LOW":render.cubemap_refl_size= cfg_scs.cube_reflect_low;render.plane_refl_size=cfg_scs.plane_reflect_low;break;case "MEDIUM":render.cubemap_refl_size=cfg_scs.cube_reflect_medium;render.plane_refl_size=cfg_scs.plane_reflect_medium;break;case "HIGH":render.cubemap_refl_size=cfg_scs.cube_reflect_high;render.plane_refl_size=cfg_scs.plane_reflect_high;break;default:render.cubemap_refl_size=cfg_scs.cube_reflect_low;render.plane_refl_size=cfg_scs.plane_reflect_low;break}if(m_cont.is_hidpi()){m_print.log("%cENABLE HIDPI MODE","color: #00a"); render.aa_quality="AA_QUALITY_LOW";render.resolution_factor=1;cfg_def.msaa_samples=1}else if(cfg_def.msaa_samples>1){m_print.log("%cENABLE MSAA RENDERING: "+cfg_def.msaa_samples+"x","color: #00a");render.resolution_factor=1}else{render.aa_quality="AA_QUALITY_"+bpy_scene["b4w_antialiasing_quality"];if(cfg_def.quality===m_cfg.P_ULTRA)render.resolution_factor=1.33;else render.resolution_factor=1}var rtt_sort_fun=function(bpy_tex1,bpy_tex2){return bpy_tex2.source_size-bpy_tex1.source_size};var rtt_sorted= bpy_scene._render_to_textures.sort(rtt_sort_fun);render.graph=m_scgraph.create_rendering_graph(render,cam_scene_data,cam_render,rtt_sorted);render.queue=[];render.need_shadow_update=false;render.need_grass_map_update=false;render.need_outline=false;render.wind=new Float32Array(3);_scenes.push(bpy_scene);if(!_scenes_graph)_scenes_graph=m_graph.create();m_graph.append_node_attr(_scenes_graph,bpy_scene);for(var i=0;icfg_lim.max_texture_size){rshs.csm_resolution=cfg_lim.max_texture_size;m_print.error("Shadow map texture has unsupported size. Changed to "+cfg_lim.max_texture_size+".")}else rshs.csm_resolution=shs["csm_resolution"];cfg_def.shadow_blur_samples=cfg_def.shadow_blur_samples?cfg_def.shadow_blur_samples:shs["blur_samples"];rshs.soft_shadows=shs["soft_shadows"];var use_ssao=cfg_def.ssao&&bpy_scene["b4w_enable_ssao"];var shadow_lamps=m_obj_util.get_shadow_lamps(lamps, use_ssao);rshs.self_shadow_polygon_offset=shs["self_shadow_polygon_offset"];rshs.self_shadow_normal_offset=shs["self_shadow_normal_offset"];rshs.enable_csm=shs["b4w_enable_csm"]&&shadow_lamps.length==1;if(shs["b4w_enable_csm"]&&shs["csm_num"]>1&&shadow_lamps.length>1)m_print.warn("Disabling Cascaded Shadow Maps because of multiple shadow casting lamps.");rshs.lamp_types=[];rshs.spot_sizes=[];rshs.clip_start=[];rshs.clip_end=[];for(var i=0;i0){var wp=water_params[0];if(!wp.dynamic)for(var i=0;iMAX_BATCH_TEXTURES)m_print.warn(batch.type, "too many textures used - "+batch.textures.length+" (max "+MAX_BATCH_TEXTURES+'), materials "'+batch.material_names.join(", ")+'"')}function prepare_dynamic_grass_batch(batch,subs_grass_map,obj_render){batch.grass_map_dim=subs_grass_map.grass_map_dim;var low=subs_grass_map.grass_map_dim[0];var high=subs_grass_map.grass_map_dim[1];var size=subs_grass_map.grass_map_dim[2];var bb=obj_render.bb_local;var bb_max_size=Math.max(bb.max_x-bb.min_x,bb.max_y-bb.min_y);if(size==0)size=bb_max_size;else size=Math.max(size, bb_max_size);subs_grass_map.grass_map_dim[2]=size;var cam=subs_grass_map.camera;m_cam.set_frustum2(cam,size/2,size/2,-high,-low);m_cam.set_projection(cam,false);var bsize=batch.grass_size||0;if(bsize==0)bsize=bb_max_size;else bsize=Math.max(bsize,bb_max_size);batch.grass_size=bsize}function add_object_subs_shadow_receive(subs,obj,graph,scene,copy){var sc_data=m_obj_util.get_scene_data(obj,scene);var batches=sc_data.batches;for(var i=0;i0){var rot_mat=__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_mat4_js__["identity"](_mat4_tmp);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_mat4_js__["rotate"](rot_mat, optimal_angle,__WEBPACK_IMPORTED_MODULE_26__util_js__["c"],rot_mat);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_mat4_js__["multiply"](rot_mat,cam.view_matrix,cam.view_matrix);__WEBPACK_IMPORTED_MODULE_25__tsr_js__["d"](cam.view_matrix,cam.view_tsr)}bb_view=correct_bb_proportions(bb_view);update_shadow_receive_subs(subs,scene._render.graph)}m_cam.set_frustum_asymmetric(cam,bb_view.min_x,bb_view.max_x,bb_view.min_y,bb_view.max_y,-bb_view.max_z,-bb_view.min_z);m_cam.set_projection(cam,false)}else if(sh_params.lamp_types[subs.shadow_lamp_index]=== "SPOT"||sh_params.lamp_types[subs.shadow_lamp_index]==="POINT")m_cam.set_projection(cam,false)}function get_optimal_bb_and_angle(bb_corners,bb_dest){var rot_corners=_corners_cache2;rot_corners.set(bb_corners);var angle_delta=MAX_OPTIMAL_BB_ANGLE/(OPTIMAL_BB_COUNT-1);var rot_mat=__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_mat4_js__["identity"](_mat4_tmp);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_mat4_js__["rotate"](rot_mat,angle_delta,__WEBPACK_IMPORTED_MODULE_26__util_js__["c"],rot_mat);var min= -1;var min_index=-1;for(var i=0;iOPTIMAL_BB_THRESHOLD){min=S;min_index=i;__WEBPACK_IMPORTED_MODULE_3__boundings_js__["o"](bb_all,bb_dest)}__WEBPACK_IMPORTED_MODULE_26__util_js__["_28"](rot_corners,rot_mat,rot_corners)}return min_index*angle_delta}function correct_bb_proportions(bb){var x=bb.max_x- bb.min_x;var y=bb.max_y-bb.min_y;if(x&&y){var diff=Math.abs(x-y)/2;if(x/y>MAX_SHADOW_CAST_BB_PROPORTION){bb.max_y+=diff;bb.min_y-=diff}else if(y/x>MAX_SHADOW_CAST_BB_PROPORTION){bb.max_x+=diff;bb.min_x-=diff}}bb.max_x+=SHADOW_MAP_EPSILON_XY;bb.max_y+=SHADOW_MAP_EPSILON_XY;bb.max_z+=SHADOW_MAP_EPSILON_Z;bb.min_x-=SHADOW_MAP_EPSILON_XY;bb.min_y-=SHADOW_MAP_EPSILON_XY;bb.min_z-=SHADOW_MAP_EPSILON_Z;return bb}function get_shadow_casters_bb(subs,main_cam_tsr,dest){__WEBPACK_IMPORTED_MODULE_3__boundings_js__["P"](dest); for(var i=0;i=0;l--){var bundle=bundles[l];if(bundle.obj_render==obj.render)if(bundle.batch){if(typeof mat_name=="undefined"||bundle.batch.material_names.indexOf(mat_name)!=-1||bundle.batch.material_names.length== 0){m_batch.clear_batch(bundle.batch);bundles.splice(l,1)}}else bundles.splice(l,1)}}}}};exports.update_lamp_scene_color_intensity=update_lamp_scene_color_intensity;function update_lamp_scene_color_intensity(lamp,scene){var light=lamp.light;var sc_data=m_obj_util.get_scene_data(lamp,scene);var ind=sc_data.light_index;var subs_arr=subs_array(scene,LIGHT_SUBSCENE_TYPES);for(var i=0;icfg_lim.max_texture_size||slink_dim[1]>cfg_lim.max_texture_size){m_print.warn("Texture size exceeds platform limits, downscaling");return Math.min(cfg_lim.max_texture_size/ slink_dim[0],cfg_lim.max_texture_size/slink_dim[0])}return 1}function setup_scene_dim(scene,width,height){var sc_render=scene._render;var cam_scene_data=m_obj_util.get_scene_data(scene._camera,scene);var upd_cameras=cam_scene_data.cameras;if(height!=0)var aspect=width/height;else var aspect=1;for(var i=0;i1||x<0||y>1||y<0)var wave_height=dist_waves;else{var width=wp.shoremap_tex_size;var array=render.shore_distances;var shore_dist=__WEBPACK_IMPORTED_MODULE_26__util_js__["_7"](array, width,x,y);var dir_min_shore_fac=wp.dir_min_shore_fac;var dir_freq=wp.dir_freq;var dir_noise_scale=wp.dir_noise_scale;var dir_noise_freq=wp.dir_noise_freq;var dir_min_noise_fac=wp.dir_min_noise_fac;var dst_min_fac=wp.dst_min_fac;var max_shore_dist=wp.max_shore_dist;var shore_waves_length=waves_length/max_shore_dist/Math.PI;var waves_coords=[dir_noise_scale/waves_length*(pos_x+dir_noise_freq*time),dir_noise_scale/waves_length*(pos_y+dir_noise_freq*time)];var dist_fact=Math.sqrt(shore_dist);var shore_dir_waves= waves_height*Math.max(shore_dist,dir_min_shore_fac)*Math.sin(dist_fact/shore_waves_length+dir_freq*time)*Math.max(__WEBPACK_IMPORTED_MODULE_26__util_js__["_55"](waves_coords),dir_min_noise_fac);var mix_rate=Math.max(dist_fact,dst_min_fac);var wave_height=shore_dir_waves*(1-mix_rate)+dist_waves*mix_rate;small_waves*=shore_dist}}else var wave_height=dist_waves;wave_height+=.05*small_waves;var cur_water_level=water_level+wave_height;return cur_water_level}exports.get_water_mat_params=function(scene, water_params){var wp=scene._render.water_params;var subs=get_subs(scene,m_subs.MAIN_OPAQUE);if(!subs||!wp)return;water_params.waves_height=wp.waves_height;water_params.waves_length=wp.waves_length;water_params.water_fog_density=subs.water_fog_color_density[3];var wfc=water_params.water_fog_color=[];wfc[0]=subs.water_fog_color_density[0];wfc[1]=subs.water_fog_color_density[1];wfc[2]=subs.water_fog_color_density[2]};exports.set_water_params=function(scene,water_params){var wp=scene._render.water_params; if(!wp){m_print.error("set_water_params() - no water parameters on the scene");return null}if(typeof water_params.dst_noise_scale0=="number")wp.dst_noise_scale0=water_params.dst_noise_scale0;if(typeof water_params.dst_noise_scale1=="number")wp.dst_noise_scale1=water_params.dst_noise_scale1;if(typeof water_params.dst_noise_freq0=="number")wp.dst_noise_freq0=water_params.dst_noise_freq0;if(typeof water_params.dst_noise_freq1=="number")wp.dst_noise_freq1=water_params.dst_noise_freq1;if(typeof water_params.dir_min_shore_fac== "number")wp.dir_min_shore_fac=water_params.dir_min_shore_fac;if(typeof water_params.dir_freq=="number")wp.dir_freq=water_params.dir_freq;if(typeof water_params.dir_noise_scale=="number")wp.dir_noise_scale=water_params.dir_noise_scale;if(typeof water_params.dir_noise_freq=="number")wp.dir_noise_freq=water_params.dir_noise_freq;if(typeof water_params.dir_min_noise_fac=="number")wp.dir_min_noise_fac=water_params.dir_min_noise_fac;if(typeof water_params.dst_min_fac=="number")wp.dst_min_fac=water_params.dst_min_fac; if(typeof water_params.waves_hor_fac=="number")wp.waves_hor_fac=water_params.waves_hor_fac;if(typeof water_params.water_dynamic=="number")wp.dynamic=water_params.water_dynamic;var subscenes=subs_array(scene,MAIN_SUBSCENE_TYPES);for(var i=0;i1||x<0||y>1||y<0)var shore_dist=1;else{var width= wp.shoremap_tex_size;var array=_active_scene._render.shore_distances;var shore_dist_xy=max_shore_dist*__WEBPACK_IMPORTED_MODULE_26__util_js__["_7"](array,width,x,y);var shore_dist_z=(water_level-trans[2])*v_dist_mult;var shore_dist=Math.sqrt(shore_dist_xy*shore_dist_xy+shore_dist_z*shore_dist_z);return shore_dist}};exports.update=function(timeline,elapsed){m_render.clear();var active_cam_render=get_active()._camera.render;for(var i=0;i<_scenes.length;i++){var scene=_scenes[i];var graph=scene._render.graph; var render=scene._render;if(render.water_params){var trans=__WEBPACK_IMPORTED_MODULE_25__tsr_js__["j"](active_cam_render.world_tsr,_vec3_tmp);var cam_water_depth=trans[2]-get_water_surface_level(scene,trans[0],trans[1]);__WEBPACK_IMPORTED_MODULE_25__tsr_js__["v"](trans,active_cam_render.world_tsr)}for(var j=0;j=end_frame&&vtex.use_cyclic||current_frame=end_frame&&!vtex.use_cyclic){m_tex.pause_video(vtex); continue}if(m_tex.video_update_is_available(vtex))if(video)m_tex.update_video_texture(vtex);else{var mark=m_tex.seq_video_get_discrete_timemark(vtex,timeline);if(mark!=vtex.seq_last_discrete_mark){m_tex.update_seq_video_texture(vtex);vtex.seq_cur_frame++}vtex.seq_last_discrete_mark=mark}}m_graph.traverse(graph,function(node,attr){var subs=attr;if(TIME_SUBSCENE_TYPES.indexOf(subs.type)>-1)subs.time=timeline;if(render.water_params)subs.cam_water_depth=cam_water_depth})}for(var i=0;i<_scenes.length;i++){var scene= _scenes[i];var render=scene._render;var graph=render.graph;var queue=render.queue;if(!queue.length)continue;if(render.need_shadow_update){update_shadow_subscenes(scene);render.need_shadow_update=false}if(render.need_grass_map_update){update_subs_grass_map(scene);render.need_grass_map_update=false}if(render.need_outline){enable_outline_draw(scene);render.need_outline=false}if(render.motion_blur)update_motion_blur_subscenes(graph,elapsed);var outline_mask_subs=m_scgraph.find_subs(graph,m_subs.OUTLINE_MASK); for(var j=0;jb?1:-1}function sort_fun_draw_data(a,b){return sort_fun(a.alpha_antialiasing,b.alpha_antialiasing)||sort_fun(a.is_sky,b.is_sky)||sort_fun(a.offset_z, b.offset_z)||sort_fun(a.shader.has_discard,b.shader.has_discard)||sort_fun(a.z_index,b.z_index)}}var int_subscene_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__subscene",Int_subscene);__webpack_exports__["a"]=int_subscene_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__animation_js__=__webpack_require__(38);var __WEBPACK_IMPORTED_MODULE_2__util_assert_js__= __webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_3__batch_js__=__webpack_require__(16);var __WEBPACK_IMPORTED_MODULE_4__boundings_js__=__webpack_require__(25);var __WEBPACK_IMPORTED_MODULE_5__camera_js__=__webpack_require__(14);var __WEBPACK_IMPORTED_MODULE_6__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_7__constraints_js__=__webpack_require__(59);var __WEBPACK_IMPORTED_MODULE_8__container_js__=__webpack_require__(15);var __WEBPACK_IMPORTED_MODULE_9__util_generator_js__=__webpack_require__(31); var __WEBPACK_IMPORTED_MODULE_10__geometry_js__=__webpack_require__(20);var __WEBPACK_IMPORTED_MODULE_11__lights_js__=__webpack_require__(57);var __WEBPACK_IMPORTED_MODULE_12__material_js__=__webpack_require__(74);var __WEBPACK_IMPORTED_MODULE_13__nla_js__=__webpack_require__(52);var __WEBPACK_IMPORTED_MODULE_14__obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_15__particles_js__=__webpack_require__(47);var __WEBPACK_IMPORTED_MODULE_16__physics_js__=__webpack_require__(19);var __WEBPACK_IMPORTED_MODULE_17__print_js__= __webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_18__primitives_js__=__webpack_require__(64);var __WEBPACK_IMPORTED_MODULE_19__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_20__scenes_js__=__webpack_require__(10);var __WEBPACK_IMPORTED_MODULE_21__subscene_js__=__webpack_require__(11);var __WEBPACK_IMPORTED_MODULE_22__sfx_js__=__webpack_require__(23);var __WEBPACK_IMPORTED_MODULE_23__textures_js__=__webpack_require__(17);var __WEBPACK_IMPORTED_MODULE_24__time_js__= __webpack_require__(18);var __WEBPACK_IMPORTED_MODULE_25__transform_js__=__webpack_require__(13);var __WEBPACK_IMPORTED_MODULE_26__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_27__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_28__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_29__armature_js__=__webpack_require__(56);var __WEBPACK_IMPORTED_MODULE_30__anchors_js__=__webpack_require__(55);var __WEBPACK_IMPORTED_MODULE_31__renderer_js__= __webpack_require__(22);var __WEBPACK_IMPORTED_MODULE_32__graph_js__=__webpack_require__(29);var __WEBPACK_IMPORTED_MODULE_33__scenegraph_js__=__webpack_require__(58);function Int_objects(ns,exports){var m_anim=Object(__WEBPACK_IMPORTED_MODULE_1__animation_js__["a"])(ns);var m_assert=Object(__WEBPACK_IMPORTED_MODULE_2__util_assert_js__["a"])(ns);var m_batch=Object(__WEBPACK_IMPORTED_MODULE_3__batch_js__["a"])(ns);var m_cam=Object(__WEBPACK_IMPORTED_MODULE_5__camera_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_6__config_js__["a"])(ns); var m_cons=Object(__WEBPACK_IMPORTED_MODULE_7__constraints_js__["a"])(ns);var m_cont=Object(__WEBPACK_IMPORTED_MODULE_8__container_js__["a"])(ns);var m_generator=Object(__WEBPACK_IMPORTED_MODULE_9__util_generator_js__["a"])(ns);var m_geom=Object(__WEBPACK_IMPORTED_MODULE_10__geometry_js__["a"])(ns);var m_nla=Object(__WEBPACK_IMPORTED_MODULE_13__nla_js__["a"])(ns);var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_14__obj_util_js__["a"])(ns);var m_particles=Object(__WEBPACK_IMPORTED_MODULE_15__particles_js__["a"])(ns); var m_phy=Object(__WEBPACK_IMPORTED_MODULE_16__physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_17__print_js__["a"])(ns);var m_primitives=Object(__WEBPACK_IMPORTED_MODULE_18__primitives_js__["a"])(ns);var m_scenes=Object(__WEBPACK_IMPORTED_MODULE_20__scenes_js__["a"])(ns);var m_subs=Object(__WEBPACK_IMPORTED_MODULE_21__subscene_js__["a"])(ns);var m_sfx=Object(__WEBPACK_IMPORTED_MODULE_22__sfx_js__["a"])(ns);var m_tex=Object(__WEBPACK_IMPORTED_MODULE_23__textures_js__["a"])(ns); var m_time=Object(__WEBPACK_IMPORTED_MODULE_24__time_js__["a"])(ns);var m_trans=Object(__WEBPACK_IMPORTED_MODULE_25__transform_js__["a"])(ns);var m_anchors=Object(__WEBPACK_IMPORTED_MODULE_30__anchors_js__["a"])(ns);var m_render=Object(__WEBPACK_IMPORTED_MODULE_31__renderer_js__["a"])(ns);var m_graph=Object(__WEBPACK_IMPORTED_MODULE_32__graph_js__["a"])(ns);var m_scgraph=Object(__WEBPACK_IMPORTED_MODULE_33__scenegraph_js__["a"])(ns);var cfg_def=m_cfg.defaults;var cfg_out=m_cfg.outlining;var DEBUG_DISABLE_STATIC_OBJS= false;var _all_objects={"ALL":[]};var _color_id_counter=0;var _cube_refl_counter=0;var _refl_plane_objs=[];var _refl_cube_objs=[];var _outline_anim_objs=[];var _vec3_tmp=new Float32Array(3);var _quat_tmp=new Float32Array(4);var COLOR_ID_THRESHOLD=3;var DATA_ID_ALL=-1;var LOD_TRANSITION_TIME=.4;var LOD_HYST_INTERVAL_LIMIT_COEFF=.3;exports.GET_OBJECT_BY_NAME=0;exports.GET_OBJECT_BY_DUPLI_NAME=1;exports.GET_OBJECT_BY_DUPLI_NAME_LIST=2;exports.DATA_ID_ALL=DATA_ID_ALL;exports.update=function(timeline, elapsed){for(var i=0;i<_outline_anim_objs.length;i++){var obj=_outline_anim_objs[i];update_obj_outline_intensity(obj,timeline);if(obj.render.outline_intensity)request_scenes_outline(obj)}var armatures=_all_objects["ARMATURE"];if(armatures)for(var i=0;i=0)for(var j= 0;j-1)refl.reflective_objs.splice(index,1);var subscenes=[];m_graph.traverse(graph,function(nid,subs){if((subs.type==m_subs.MAIN_PLANE_REFLECT||subs.type==m_subs.MAIN_PLANE_REFLECT_BLEND)&&subs.refl_obj==refl)subscenes.push(subs)}); for(var k=0;k=0)for(var j=0;j0;var has_dynamic_geometry=bpy_obj["b4w_dynamic_geometry"];var has_dynamic_target=check_dynamic_target(bpy_obj);return DEBUG_DISABLE_STATIC_OBJS||is_animated||has_do_not_batch||is_collision||is_vehicle_part||has_shape_keys|| is_floater_part||dyn_grass_emitter||is_character||has_nla||has_dynamic_geometry||has_dynamic_mat(bpy_obj)||has_dynamic_target}function check_dynamic_target(bpy_obj){var is_dynamic=false;var len=bpy_obj["constraints"].length;if(len){var last_constraint=null;for(var i=len-1;i>=0;i--){var cons=bpy_obj["constraints"][i];if(!(cons["type"]=="LOCKED_TRACK"&&cons["name"]=="REFLECTION PLANE")){last_constraint=cons;break}}if(!last_constraint)return false;if(!last_constraint["target"])return false;var target= last_constraint["target"];var type=target["type"];if(target["parent"]){var parent_type=target["parent"]["type"];if(parent_type=="MESH")is_dynamic=is_dynamic||bpy_mesh_is_dynamic(target["parent"]);else if(parent_type=="EMPTY")is_dynamic=is_dynamic||bpy_empty_is_dynamic(target["parent"]);else is_dynamic=true;return is_dynamic}if(type=="MESH")is_dynamic=is_dynamic||bpy_mesh_is_dynamic(target);else if(type=="EMPTY")is_dynamic=is_dynamic||bpy_empty_is_dynamic(target);else is_dynamic=true}return is_dynamic} function bpy_empty_is_dynamic(bpy_obj){var is_animated=m_anim.bpy_mesh_empty_is_animatable(bpy_obj);var has_nla=m_nla.bpy_obj_has_nla(bpy_obj);var has_do_not_batch=bpy_obj["b4w_do_not_batch"];var anchor=Boolean(bpy_obj["b4w_anchor"]);var has_dynamic_target=check_dynamic_target(bpy_obj);return is_animated||has_nla||has_do_not_batch||anchor||has_dynamic_target}function has_dynamic_mat(bpy_obj){var mesh=bpy_obj["data"];for(var i=0;i2*max_bones){render.is_skinning=false;m_print.error('too many bones for "'+bpy_obj["name"]+'" / '+render.max_bones+" bones (max "+max_bones+" with blending, "+2*max_bones+" without blending)."+ " Skinning will be disabled.")}else render.is_skinning=true}function prepare_shape_keys(bpy_obj,obj){if(bpy_obj["type"]!="MESH")m_assert.panic("Wrong object type: "+bpy_obj["name"]);var render=obj.render;if(bpy_obj["data"]["b4w_shape_keys"].length){render.use_shape_keys=true;for(var i=0;i=0&&is_valid){is_valid=curr_obj&&(curr_obj.origin_name==name_list[j]&&(curr_obj.render.data_id==data_id||data_id==DATA_ID_ALL));if(curr_obj)curr_obj=m_obj_util.get_dg_parent(curr_obj);j--}if(is_valid&&!curr_obj)return obj}return null}exports.get_world_by_name=function(name,data_id){var full_name="%meta_world%"+name; var wrds=_all_objects["WORLD"];return get_object_by_name(full_name,wrds,true,data_id)};exports.get_world_name=function(world_obj){return world_obj.origin_name.replace("%meta_world%","")};function update_obj_outline_intensity(obj,timeline){var outline_intensity=0;var oa=obj.outline_animation;if(oa.time_start==0)oa.time_start=timeline;var dt=timeline-oa.time_start;if(oa.relapses&&dt/oa.period>=oa.relapses){clear_outline_anim(obj);return}var periodic_time=dt%oa.period;if(periodic_time-1};exports.update_lod_scene=function(lod_obj,scene){var render=lod_obj.render;if(render.is_lod)init_obj_lod_settings(lod_obj,scene)};exports.update_lod_visibility=update_lod_visibility;function update_lod_visibility(batch,obj_render,eye){if(!obj_render.is_lod)return true;var lod_set=batch.lod_settings; if(lod_set.dest_coverage!=lod_set.coverage)if(lod_set.use_smoothing){var sign=__WEBPACK_IMPORTED_MODULE_27__util_js__["_50"](lod_set.dest_coverage-lod_set.coverage);lod_set.coverage+=sign*m_time.get_delta()/LOD_TRANSITION_TIME;lod_set.coverage=__WEBPACK_IMPORTED_MODULE_27__util_js__["M"](lod_set.coverage,0,1)}else lod_set.coverage=lod_set.dest_coverage;if(obj_render.type=="STATIC")var center=obj_render.lod_center;else var center=__WEBPACK_IMPORTED_MODULE_28__libs_gl_matrix_vec3_js__["add"](obj_render.bs_world.center, obj_render.main_lod_offset,_vec3_tmp);var dist=__WEBPACK_IMPORTED_MODULE_28__libs_gl_matrix_vec3_js__["dist"](center,eye);if(lod_set.hyst_prev_state==0){var d_min=Math.max(obj_render.lod_dist_min-lod_set.hyst_interval_min/2,0);var d_max=obj_render.lod_dist_max+lod_set.hyst_interval_max/2}else if(lod_set.hyst_prev_state==-1){var d_min=obj_render.lod_dist_min+lod_set.hyst_interval_min/2;var d_max=obj_render.lod_dist_max+lod_set.hyst_interval_max/2}else{var d_min=Math.max(obj_render.lod_dist_min-lod_set.hyst_interval_min/ 2,0);var d_max=Math.max(obj_render.lod_dist_max-lod_set.hyst_interval_max/2,0)}if(distd_max?0:1;lod_set.cmp_logic=lod_set.dest_coverage==0?-1:1;if(Math.abs(dist-lod_set.prev_dist)>cfg_def.lod_leap_smooth_threshold&&(lod_set.coverage==0||lod_set.coverage==1))lod_set.coverage=lod_set.dest_coverage;lod_set.prev_dist=dist;return lod_set.dest_coverage!=0|| lod_set.coverage!=0}function init_obj_lod_settings(obj,scene){var obj_render=obj.render;var sc_render=scene._render;if(obj_render.is_lod){var cam_eye=m_trans.get_translation(scene._camera,_vec3_tmp);for(var i=0;i=0;j--){var batch=obj_to.scenes_data[i].batches[j];if(batch.material_names.length==0||batch.material_names.indexOf(mat_to_name)!=-1)m_obj_util.scene_data_remove_batch(obj_to.scenes_data[i],j)}if(m_phy.obj_has_physics(obj_to))m_phy.remove_object(obj_to);for(var i=0;i=0;j--){var batch=slot.node_batches[j];if(batch.material_names.indexOf(mat_to_name)!=-1)slot.node_batches.splice(j,1)}break}}if(psys_dict){var psys_cb=function(batch){if(batch.particles_data){var name=batch.particles_data.name;if(psys_dict[name]){var need_factor_update= batch.particles_data.count_factor!=psys_dict[name].count_factor;batch.particles_data=m_particles.clone_particles_data(psys_dict[name]);if(need_factor_update)m_particles.set_factor(obj_to,name,batch.particles_data.count_factor)}}};m_batch.iterate_batches_by_mat(obj_to,mat_to_name,psys_cb,"PARTICLES")}if(main_batch_from){var main_batch_to=m_batch.find_batch_material(obj_to,mat_to_name,"MAIN");if(main_batch_to){main_batch_to.diffuse_color.set(main_batch_from.diffuse_color);main_batch_to.diffuse_intensity= main_batch_from.diffuse_intensity;main_batch_to.diffuse_color_factor=main_batch_from.diffuse_color_factor;main_batch_to.diffuse_params.set(main_batch_from.diffuse_params);main_batch_to.specular_color.set(main_batch_from.specular_color);main_batch_to.specular_color_factor=main_batch_from.specular_color_factor;main_batch_to.specular_params.set(main_batch_from.specular_params);main_batch_to.specular_alpha=main_batch_from.specular_alpha;main_batch_to.emit=main_batch_from.emit;main_batch_to.ambient=main_batch_from.ambient; main_batch_to.alpha_factor=main_batch_from.alpha_factor;main_batch_to.mirror_factor=main_batch_from.mirror_factor;main_batch_to.normal_factor=main_batch_from.normal_factor;main_batch_to.reflect_factor=main_batch_from.reflect_factor;main_batch_to.refr_bump=main_batch_from.refr_bump;main_batch_to.fresnel_params.set(main_batch_from.fresnel_params);main_batch_to.parallax_scale=main_batch_from.parallax_scale;main_batch_to.texture_scale.set(main_batch_from.texture_scale);main_batch_to.shallow_water_col.set(main_batch_from.shallow_water_col); main_batch_to.shallow_water_col_fac=main_batch_from.shallow_water_col_fac;main_batch_to.shore_water_col.set(main_batch_from.shore_water_col);main_batch_to.shore_water_col_fac=main_batch_from.shore_water_col_fac;main_batch_to.foam_factor=main_batch_from.foam_factor;main_batch_to.water_norm_uv_velocity=main_batch_from.water_norm_uv_velocity;main_batch_to.node_values=main_batch_from.node_values.slice();main_batch_to.node_rgbs=main_batch_from.node_rgbs.slice()}}var tex_cb=function(batch){for(var i=0;i< batch.bpy_tex_names.length;i++){var tex_name=batch.bpy_tex_names[i];var tex_to=batch.textures[i];if(tex_to.source!="IMAGE"&&tex_to.source!="ENVIRONMENT")continue;var tex_from=m_tex.get_texture_by_name(obj_from,tex_name);if(!tex_from||tex_to.img_full_filepath==tex_from.img_full_filepath)continue;m_tex.set_texture_by_name(obj_to,tex_name,tex_from)}};m_batch.iterate_batches_by_mat(obj_to,mat_to_name,tex_cb)}exports.create_line=function(name){name=name||"";name+=get_name_suff_unique(name);var line=m_obj_util.create_object(name, "LINE");line.render=m_obj_util.create_render("EMPTY");line.is_dynamic=true;m_batch.generate_line_batches(m_scenes.get_main(),[line]);m_scenes.append_object(m_scenes.get_main(),line);objects_storage_add(line);return line};exports.create_empty=function(name){name=name||"";name+=get_name_suff_unique(name);var empty=m_obj_util.create_object(name,"EMPTY");empty.render=m_obj_util.create_render("EMPTY");empty.is_dynamic=true;m_obj_util.append_scene_data(empty,m_scenes.get_main());objects_storage_add(empty); return empty};exports.generate_mesh_render_boundings=function(bpy_obj,obj){var render=obj.render;var bb_local=__WEBPACK_IMPORTED_MODULE_4__boundings_js__["n"](render.bb_original);if(render.billboard)m_obj_util.update_render_bounds_billboard(obj,bb_local);else m_obj_util.update_render_bounds_from_bpy(obj,bb_local,bpy_obj["data"]["b4w_boundings"])};exports.set_nodemat_value=function(obj,mat_name,node_name,value){var is_world=m_obj_util.is_world(obj);var is_changed=false;for(var i=0;i0){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["cross"](__WEBPACK_IMPORTED_MODULE_13__util_js__["d"],vertical_axis,horizontal_axis_my);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](horizontal_axis_my,horizontal_axis_my)}else __WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](__WEBPACK_IMPORTED_MODULE_13__util_js__["f"],horizontal_axis_my);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["cross"](vertical_axis, horizontal_axis_my,horizontal_axis_x);var z_world_cam=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["f"],_vec3_tmp3);var my_world_cam=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["b"],_vec3_tmp4);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](z_world_cam,z_world_cam);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](my_world_cam,my_world_cam);var base_theta=-Math.asin(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](z_world_cam, vertical_axis));var proj_z=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](my_world_cam,vertical_axis);if(Math.abs(base_theta)>Math.PI/4)var phi_dir=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["scale"](my_world_cam,-__WEBPACK_IMPORTED_MODULE_13__util_js__["_50"](base_theta),_vec3_tmp5);else var phi_dir=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["scale"](z_world_cam,-__WEBPACK_IMPORTED_MODULE_13__util_js__["_50"](Math.asin(proj_z)),_vec3_tmp6);var base_phi=Math.atan(Math.abs(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](horizontal_axis_x, phi_dir)/__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](horizontal_axis_my,phi_dir)));var theta=base_theta;if(proj_z>0)theta=__WEBPACK_IMPORTED_MODULE_13__util_js__["_50"](theta)*Math.PI-theta;var phi=base_phi;if(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](horizontal_axis_my,phi_dir)<0)phi=Math.PI-phi;if(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](horizontal_axis_x,phi_dir)<0)phi=2*Math.PI-phi;dest[0]=phi;dest[1]=theta;return dest}exports.get_camera_angles_char= function(cam,dest){get_camera_angles(cam,dest);dest[0]=__WEBPACK_IMPORTED_MODULE_13__util_js__["A"](dest[0]+Math.PI);dest[1]*=-1;return dest};exports.set_fov=function(cam,fov){switch(cam.type){case exports.TYPE_PERSP:case exports.TYPE_PERSP_ASPECT:case exports.TYPE_STEREO_LEFT:case exports.TYPE_STEREO_RIGHT:cam.fov=fov;break;default:break}};exports.get_fov=function(cam){switch(cam.type){case exports.TYPE_PERSP:case exports.TYPE_PERSP_ASPECT:case exports.TYPE_STEREO_LEFT:case exports.TYPE_STEREO_RIGHT:return cam.fov; default:return 0}};exports.get_vfov=get_vfov;function get_vfov(cam){switch(cam.fit){case "AUTO":if(cam.aspect>1)if(is_ortho(cam))return cam.fov/cam.aspect;else return 2*Math.atan(Math.tan(cam.fov/2)/cam.aspect);else return cam.fov;case "HORIZONTAL":if(is_ortho(cam))return cam.fov/cam.aspect;else return 2*Math.atan(Math.tan(cam.fov/2)/cam.aspect);case "VERTICAL":return cam.fov}}function get_hfov(cam){switch(cam.fit){case "AUTO":if(cam.aspect>1)return cam.fov;else if(is_ortho(cam))return cam.fov*cam.aspect; else return 2*Math.atan(Math.tan(cam.fov/2)*cam.aspect);case "HORIZONTAL":return cam.fov;case "VERTICAL":if(is_ortho(cam))return cam.fov*cam.aspect;else return 2*Math.atan(Math.tan(cam.fov/2)*cam.aspect)}}exports.set_frustum=set_frustum;function set_frustum(cam,fov,near,far){switch(cam.type){case exports.TYPE_PERSP:case exports.TYPE_STEREO_LEFT:case exports.TYPE_STEREO_RIGHT:cam.fov=fov;cam.aspect=1;break;case exports.TYPE_ORTHO:cam.fov=fov;cam.aspect=1;break;case exports.TYPE_HMD_LEFT:case exports.TYPE_HMD_RIGHT:break; default:m_assert.panic("set_frustum(): Unsupported camera type: "+cam.type);break}cam.near=near;cam.far=far}exports.set_frustum2=function(cam,h_fov_or_right,v_fov_or_top,near,far){switch(cam.type){case exports.TYPE_PERSP:case exports.TYPE_STEREO_LEFT:case exports.TYPE_STEREO_RIGHT:case exports.TYPE_ORTHO:cam.fov=v_fov_or_top;cam.aspect=1;break;case exports.TYPE_PERSP_ASPECT:case exports.TYPE_ORTHO_ASPECT:cam.fov=v_fov_or_top;cam.aspect=h_fov_or_right/v_fov_or_top;break;case exports.TYPE_HMD_LEFT:case exports.TYPE_HMD_RIGHT:break; default:m_assert.panic("set_frustum2(): Unsupported camera type: "+cam.type);break}cam.near=near;cam.far=far};exports.set_frustum_asymmetric=set_frustum_asymmetric;function set_frustum_asymmetric(cam,left,right,bottom,top,near,far){switch(cam.type){case exports.TYPE_ORTHO_ASYMMETRIC:cam.left=left;cam.right=right;cam.bottom=bottom;cam.top=top;cam.near=near;cam.far=far;break;default:m_assert.panic("set_frustum_asymmetric(): "+"Unsupported camera type: "+cam.type);break}}exports.get_move_style=get_move_style; function get_move_style(camobj){return camobj.render.move_style}var set_view=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var _mat4_tmp=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["create"]();return function set_view(cam,camobj){var trans=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["j"](camobj.render.world_tsr,_vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["g"](camobj.render.world_tsr, _quat_tmp);var wm=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat,trans,_mat4_tmp);__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["invert"](wm,cam.view_matrix);if(m_scenes.check_active()){var active_scene=m_scenes.get_active();var subs_stereo=m_scenes.get_subs(active_scene,m_subs.STEREO)}if(cam.type==exports.TYPE_STEREO_LEFT||subs_stereo&&subs_stereo.enable_hmd_stereo&&cam.type==exports.TYPE_HMD_LEFT)cam.view_matrix[12]+=cam.stereo_eye_dist/2;else if(cam.type== exports.TYPE_STEREO_RIGHT||subs_stereo&&subs_stereo.enable_hmd_stereo&&cam.type==exports.TYPE_HMD_RIGHT)cam.view_matrix[12]-=cam.stereo_eye_dist/2;if(cam.reflection_plane){__WEBPACK_IMPORTED_MODULE_12__tsr_js__["d"](cam.view_matrix,cam.real_view_tsr);__WEBPACK_IMPORTED_MODULE_12__tsr_js__["p"](cam.real_view_tsr,cam.real_view_tsr_inv);update_view_refl_matrix(cam);reflect_view_matrix(cam);set_projection_reflect(cam,true);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["transformMat4"](trans, cam.view_refl_matrix,trans)}__WEBPACK_IMPORTED_MODULE_12__tsr_js__["d"](cam.view_matrix,cam.view_tsr);__WEBPACK_IMPORTED_MODULE_12__tsr_js__["p"](cam.view_tsr,cam.view_tsr_inv);__WEBPACK_IMPORTED_MODULE_12__tsr_js__["t"](trans,1,quat,cam.world_tsr);set_view_projection_after(cam)}}();exports.set_view=set_view;function update_view_refl_matrix(cam){var Nx=cam.reflection_plane[0];var Ny=cam.reflection_plane[1];var Nz=cam.reflection_plane[2];var D=cam.reflection_plane[3];var refl_mat=cam.view_refl_matrix; refl_mat[0]=1-2*Nx*Nx;refl_mat[1]=-2*Nx*Ny;refl_mat[2]=-2*Nx*Nz;refl_mat[3]=0;refl_mat[4]=-2*Nx*Ny;refl_mat[5]=1-2*Ny*Ny;refl_mat[6]=-2*Ny*Nz;refl_mat[7]=0;refl_mat[8]=-2*Nx*Nz;refl_mat[9]=-2*Ny*Nz;refl_mat[10]=1-2*Nz*Nz;refl_mat[11]=0;refl_mat[12]=-2*Nx*D;refl_mat[13]=-2*Ny*D;refl_mat[14]=-2*Nz*D;refl_mat[15]=1}function reflect_view_matrix(cam){__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["multiply"](cam.view_matrix,cam.view_refl_matrix,cam.view_matrix)}exports.set_projection_reflect=set_projection_reflect; function set_projection_reflect(cam,ignore_after_actions){set_projection(cam,true);var plane=_vec4_tmp;var view_inv_transp_matrix=_mat4_tmp;__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["invert"](cam.view_matrix,view_inv_transp_matrix);__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["transpose"](view_inv_transp_matrix,view_inv_transp_matrix);__WEBPACK_IMPORTED_MODULE_15__libs_gl_matrix_vec4_js__["transformMat4"](cam.reflection_plane,view_inv_transp_matrix,plane);var corner_point=_vec4_tmp2; corner_point[0]=(__WEBPACK_IMPORTED_MODULE_13__util_js__["_50"](plane[0])+cam.proj_matrix[8])/cam.proj_matrix[0];corner_point[1]=(__WEBPACK_IMPORTED_MODULE_13__util_js__["_50"](plane[1])+cam.proj_matrix[9])/cam.proj_matrix[5];corner_point[2]=-1;corner_point[3]=(1+cam.proj_matrix[10])/cam.proj_matrix[14];var dot=plane[0]*corner_point[0]+plane[1]*corner_point[1]+plane[2]*corner_point[2]+plane[3]*corner_point[3];__WEBPACK_IMPORTED_MODULE_15__libs_gl_matrix_vec4_js__["scale"](plane,2/dot,plane);cam.proj_matrix[2]= plane[0];cam.proj_matrix[6]=plane[1];cam.proj_matrix[10]=plane[2]+1;cam.proj_matrix[14]=plane[3];update_proj_transformed_view(cam);if(!ignore_after_actions)set_view_projection_after(cam)}function set_view_eye_target_up(cam,eye,target,up){__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat4_js__["lookAt"](eye,target,up,cam.view_matrix);var active_scene=m_scenes.get_active();var subs_stereo=m_scenes.get_subs(active_scene,m_subs.STEREO);if(cam.type==exports.TYPE_STEREO_LEFT||subs_stereo&&subs_stereo.enable_hmd_stereo&& cam.type==exports.TYPE_HMD_LEFT)cam.view_matrix[12]+=cam.stereo_eye_dist/2;else if(cam.type==exports.TYPE_STEREO_RIGHT||subs_stereo&&subs_stereo.enable_hmd_stereo&&cam.type==exports.TYPE_HMD_RIGHT)cam.view_matrix[12]-=cam.stereo_eye_dist/2;__WEBPACK_IMPORTED_MODULE_12__tsr_js__["d"](cam.view_matrix,cam.view_tsr);calc_view_proj_inverse(cam);calc_sky_vp_inverse(cam);__WEBPACK_IMPORTED_MODULE_12__tsr_js__["v"](eye,cam.world_tsr)}exports.set_view_trans_quat=function(cam,trans,quat){var target=_vec3_tmp; target[0]=0;target[1]=0;target[2]=-1;__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["transformQuat"](target,quat,target);target[0]+=trans[0];target[1]+=trans[1];target[2]+=trans[2];var up=_vec3_tmp2;up[0]=0;up[1]=1;up[2]=0;__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["transformQuat"](up,quat,up);set_view_eye_target_up(cam,trans,target,up)};exports.set_look_at=set_look_at;function set_look_at(camobj,trans,look_at){var dest_vect=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](look_at, trans,_vec3_tmp);if(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["length"](dest_vect)){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](dest_vect,dest_vect);var quat=__WEBPACK_IMPORTED_MODULE_13__util_js__["_48"](__WEBPACK_IMPORTED_MODULE_13__util_js__["c"],dest_vect,_quat4_tmp);m_trans.set_rotation(camobj,quat)}m_trans.set_translation(camobj,trans)}var correct_up=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2= __WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp3=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var _quat_tmp2=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();return function correct_up(camobj,up_axis,strict){var render=camobj.render;var quat=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["g"](render.world_tsr,_quat_tmp);var z_cam_world=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat, __WEBPACK_IMPORTED_MODULE_13__util_js__["f"],_vec3_tmp);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](z_cam_world,z_cam_world);if(Math.abs(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](up_axis,z_cam_world))>.999999)var rotation=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["identity"](_quat_tmp2);else{var x_cam_world_new=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["cross"](up_axis,z_cam_world,_vec3_tmp2);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](x_cam_world_new, x_cam_world_new);var my_cam_world=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["b"],_vec3_tmp3);if(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](my_cam_world,up_axis)>0)__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["negate"](x_cam_world_new,x_cam_world_new);var x_cam_world=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["d"],_vec3_tmp3);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["normalize"](x_cam_world, x_cam_world);var cosine=__WEBPACK_IMPORTED_MODULE_13__util_js__["M"](__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](x_cam_world,x_cam_world_new),-1,1);if(cosine<=-.999999){var angle=Math.acos(cosine);var rotation=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["setAxisAngle"](z_cam_world,angle,_quat_tmp2)}else var rotation=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["rotationTo"](x_cam_world,x_cam_world_new,_quat_tmp2);__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["normalize"](rotation, rotation)}__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["multiply"](rotation,quat,quat);if(strict){var y_cam_world=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["e"],_vec3_tmp);if(__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](up_axis,y_cam_world)<0)__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["rotateZ"](quat,Math.PI,quat)}__WEBPACK_IMPORTED_MODULE_12__tsr_js__["r"](quat,render.world_tsr)}}();exports.correct_up=correct_up; var is_upside_down=function(){var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();return function is_upside_down(camobj){var quat=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["g"](camobj.render.world_tsr,_quat_tmp);var vertical_axis=camobj.render.vertical_axis;var y_world_cam=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["e"],_vec3_tmp);return __WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["dot"](y_world_cam, vertical_axis)<0}}();exports.set_look_at_corrected=set_look_at_corrected;function set_look_at_corrected(camobj,trans,look_at){var render=camobj.render;var ups_down=is_upside_down(camobj);set_look_at(camobj,trans,look_at);if(ups_down){var inv_axis=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](render.vertical_axis,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["negate"](inv_axis,inv_axis);correct_up(camobj,inv_axis,true)}else correct_up(camobj,render.vertical_axis, true)}var update_camera_transform=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp3=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();return function update_camera_transform(obj,cam_scene_data){var render=obj.render;var cameras=cam_scene_data.cameras;var quat=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["g"](render.world_tsr, _quat_tmp);var view_vector=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["c"],_vec3_tmp);var cam_loc=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["j"](render.world_tsr,_vec3_tmp2);var shadow_cameras=cam_scene_data.shadow_cameras;for(var i=0;irender.distance_limits.max){var scale=render.distance_limits.max/len;__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["scale"](dist_vector,scale,dist_vector);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["add"](render.pivot,dist_vector,trans)}else if(len2)dest[2]=(dir[2]/Math.abs(dir[3])+1)/2;return dest;default:m_print.error("Non-compatible camera");return dest}};exports.get_first_cam=function(camobj){return camobj.scenes_data[0].cameras[0]};exports.get_edge=function(cam,edge_type){switch(cam.type){case exports.TYPE_PERSP:case exports.TYPE_PERSP_ASPECT:case exports.TYPE_STEREO_LEFT:case exports.TYPE_STEREO_RIGHT:var top_1m=Math.tan(get_vfov(cam)/ 2);switch(edge_type){case "LEFT":return-top_1m*cam.aspect;case "RIGHT":return top_1m*cam.aspect;case "TOP":return top_1m;case "BOTTOM":return-top_1m}break;case exports.TYPE_ORTHO:case exports.TYPE_ORTHO_ASPECT:switch(edge_type){case "LEFT":return-get_vfov(cam)*cam.aspect;case "RIGHT":return get_vfov(cam)*cam.aspect;case "TOP":return get_vfov(cam);case "BOTTOM":return-get_vfov(cam)}break;case exports.TYPE_ORTHO_ASYMMETRIC:switch(edge_type){case "LEFT":return cam.left;case "RIGHT":return cam.right; case "TOP":return cam.top;case "BOTTOM":return cam.bottom}break;case exports.TYPE_HMD_LEFT:case exports.TYPE_HMD_RIGHT:var active_scene=m_scenes.get_active();var subs_stereo=m_scenes.get_subs(active_scene,m_subs.STEREO);if(subs_stereo&&subs_stereo.enable_hmd_stereo)switch(edge_type){case "LEFT":return-Math.tan(Math.min(cam.hmd_fov[1],cam.hmd_fov[3]));case "RIGHT":return Math.tan(Math.min(cam.hmd_fov[1],cam.hmd_fov[3]));case "TOP":return Math.tan(Math.min(cam.hmd_fov[0],cam.hmd_fov[2]));case "BOTTOM":return-Math.tan(Math.min(cam.hmd_fov[0], cam.hmd_fov[2]))}else{var top_1m=Math.tan(get_vfov(cam)/2);switch(edge_type){case "LEFT":return-top_1m*cam.aspect;case "RIGHT":return top_1m*cam.aspect;case "TOP":return top_1m;case "BOTTOM":return-top_1m}}break;default:m_assert.panic("Unknown camera type");break}};exports.is_ortho=is_ortho;function is_ortho(cam){switch(cam.type){case exports.TYPE_ORTHO:case exports.TYPE_ORTHO_ASPECT:case exports.TYPE_ORTHO_ASYMMETRIC:return true;default:return false}}exports.set_trans_pivot=function(camobj,trans, pivot){var render=camobj.render;__WEBPACK_IMPORTED_MODULE_12__tsr_js__["v"](trans,render.world_tsr);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](pivot,render.pivot)};exports.set_hover_pivot=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();return function set_hover_pivot(camobj,coords){var render=camobj.render;var pivot_delta=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](coords, render.hover_pivot,_vec3_tmp);var old_trans=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["j"](render.world_tsr,_vec3_tmp2);var trans=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["add"](pivot_delta,old_trans,pivot_delta);m_trans.set_translation(camobj,trans);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](coords,render.hover_pivot)}}();exports.set_target_pivot=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"](); return function set_target_pivot(camobj,coords){var render=camobj.render;var pivot_delta=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](coords,render.pivot,_vec3_tmp);var old_trans=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["j"](render.world_tsr,_vec3_tmp2);var trans=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["add"](pivot_delta,old_trans,pivot_delta);m_trans.set_translation(camobj,trans);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](coords,render.pivot)}}(); exports.get_eye=get_eye;function get_eye(camobj,dest){if(!dest)dest=new Float32Array(3);return __WEBPACK_IMPORTED_MODULE_12__tsr_js__["j"](camobj.render.world_tsr,dest)}exports.set_move_style=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();return function(camobj,move_style){camobj.render.move_style= move_style;camobj.render.horizontal_limits=null;camobj.render.vertical_limits=null;camobj.render.distance_limits=null;camobj.render.hover_horiz_trans_limits=null;camobj.render.hover_vert_trans_limits=null;init_ortho_props(camobj);switch(move_style){case exports.MS_STATIC:case exports.MS_EYE_CONTROLS:break;case exports.MS_HOVER_CONTROLS:var pos=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["j"](camobj.render.world_tsr,_vec3_tmp);var pivot=init_hover_pivot(camobj,0,_vec3_tmp2);setup_hover_model(camobj,pos, pivot,null,null,null,null,camobj.render.enable_hover_hor_rotation);break;case exports.MS_TARGET_CONTROLS:var cam_eye=get_eye(camobj,_vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_12__tsr_js__["g"](camobj.render.world_tsr,_quat_tmp);var view_vector=__WEBPACK_IMPORTED_MODULE_13__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_13__util_js__["c"],_vec3_tmp2);var pivot=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["scaleAndAdd"](cam_eye,view_vector,PIVOT_DEFAULT_DIST,view_vector);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](pivot, camobj.render.pivot);break}}}();exports.wipe_move_style=function(camobj){var render=camobj.render;render.move_style=0;__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["set"](0,0,0,render.pivot);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["set"](0,0,0,render.hover_pivot);render.use_panning=false;render.horizontal_limits=null;render.vertical_limits=null;render.distance_limits=null;render.hover_horiz_trans_limits=null;render.hover_vert_trans_limits=null;render.pivot_limits=null;render.enable_hover_hor_rotation= true};exports.set_eye_distance=function(cameras,eye_dist){for(var i=0;i=2)return true;return false}function resize_css(canvas_webgl, canvas_hud,width,height){canvas_webgl.style.width=width+"px";canvas_webgl.style.height=height+"px";if(canvas_hud){canvas_hud.style.width=width+"px";canvas_hud.style.height=height+"px"}}exports.resize=resize;function resize(width,height,update_canvas_css){var canvas_webgl=get_canvas();var canvas_hud=get_canvas_hud();if(update_canvas_css)resize_css(canvas_webgl,canvas_hud,width,height);if(canvas_hud){canvas_hud.width=width;canvas_hud.height=height;m_hud.update_dim()}var cw=Math.floor(width*cfg_def.canvas_resolution_factor); var ch=Math.floor(height*cfg_def.canvas_resolution_factor);canvas_webgl.width=cw;canvas_webgl.height=ch;var width_limit=Math.min(_gl.drawingBufferWidth,cfg_lim.max_renderbuffer_size,cfg_lim.max_viewport_dims[0]);var height_limit=Math.min(_gl.drawingBufferHeight,cfg_lim.max_renderbuffer_size,cfg_lim.max_viewport_dims[1]);if(cw>width_limit||ch>height_limit){m_print.warn("Canvas size exceeds platform limits, downscaling");var downscale=Math.min(width_limit/cw,width_limit/ch);cw*=downscale;ch*=downscale}if(width)var scale= cw/width;else var scale=1;canvas_webgl.width=Math.floor(cw);canvas_webgl.height=Math.floor(ch);m_scenes.setup_dim(canvas_webgl.width,canvas_webgl.height,scale);if(m_scenes.check_active())m_trans.update_transform(m_scenes.get_active()._camera);m_data.update_media_controls(canvas_webgl.width,canvas_webgl.height)}exports.resize_to_container=function(force){var container=get_container();var canvas=get_canvas();var w=container.clientWidth;var h=container.clientHeight;if(force||w!=canvas.clientWidth||h!= canvas.clientHeight){var old_width=canvas.width;var old_height=canvas.height;var canvas_webgl=get_canvas();var canvas_hud=get_canvas_hud();resize_css(canvas_webgl,canvas_hud,w,h);if(m_scenes.check_active()){var active_scene=m_scenes.get_active();var subs_stereo=m_scenes.get_subs(active_scene,m_subs.STEREO);if(subs_stereo&&subs_stereo.enable_hmd_stereo){resize(old_width,old_height,false);return}}resize(w,h,false)}};exports.reset=function(){_gl=null;_canvas=null;_canvas_hud=null;_canvas_cont=null}} var int_container_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__container",Int_container);__webpack_exports__["a"]=int_container_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__boundings_js__=__webpack_require__(25);var __WEBPACK_IMPORTED_MODULE_3__config_js__=__webpack_require__(4); var __WEBPACK_IMPORTED_MODULE_4__util_generator_js__=__webpack_require__(31);var __WEBPACK_IMPORTED_MODULE_5__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_6__extensions_js__=__webpack_require__(28);var __WEBPACK_IMPORTED_MODULE_7__graph_js__=__webpack_require__(29);var __WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_mat3_js__=__webpack_require__(27);var __WEBPACK_IMPORTED_MODULE_9__nodemat_js__=__webpack_require__(62);var __WEBPACK_IMPORTED_MODULE_10__obj_util_js__=__webpack_require__(9); var __WEBPACK_IMPORTED_MODULE_11__particles_js__=__webpack_require__(47);var __WEBPACK_IMPORTED_MODULE_12__primitives_js__=__webpack_require__(64);var __WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_14__renderer_js__=__webpack_require__(22);var __WEBPACK_IMPORTED_MODULE_15__scenegraph_js__=__webpack_require__(58);var __WEBPACK_IMPORTED_MODULE_16__scenes_js__=__webpack_require__(10);var __WEBPACK_IMPORTED_MODULE_17__shaders_js__=__webpack_require__(34); var __WEBPACK_IMPORTED_MODULE_18__subscene_js__=__webpack_require__(11);var __WEBPACK_IMPORTED_MODULE_19__textures_js__=__webpack_require__(17);var __WEBPACK_IMPORTED_MODULE_20__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_21__geometry_js__=__webpack_require__(20);var __WEBPACK_IMPORTED_MODULE_22__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_24__libs_gl_matrix_vec4_js__=__webpack_require__(7); function Int_batch(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_3__config_js__["a"])(ns);var m_generator=Object(__WEBPACK_IMPORTED_MODULE_4__util_generator_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_5__print_js__["a"])(ns);var m_extensions=Object(__WEBPACK_IMPORTED_MODULE_6__extensions_js__["a"])(ns);var m_graph=Object(__WEBPACK_IMPORTED_MODULE_7__graph_js__["a"])(ns);var m_nodemat=Object(__WEBPACK_IMPORTED_MODULE_9__nodemat_js__["a"])(ns); var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_10__obj_util_js__["a"])(ns);var m_particles=Object(__WEBPACK_IMPORTED_MODULE_11__particles_js__["a"])(ns);var m_primitives=Object(__WEBPACK_IMPORTED_MODULE_12__primitives_js__["a"])(ns);var m_render=Object(__WEBPACK_IMPORTED_MODULE_14__renderer_js__["a"])(ns);var m_scenegraph=Object(__WEBPACK_IMPORTED_MODULE_15__scenegraph_js__["a"])(ns);var m_scenes=Object(__WEBPACK_IMPORTED_MODULE_16__scenes_js__["a"])(ns);var m_shaders=Object(__WEBPACK_IMPORTED_MODULE_17__shaders_js__["a"])(ns); var m_subs=Object(__WEBPACK_IMPORTED_MODULE_18__subscene_js__["a"])(ns);var m_textures=Object(__WEBPACK_IMPORTED_MODULE_19__textures_js__["a"])(ns);var m_geom=Object(__WEBPACK_IMPORTED_MODULE_21__geometry_js__["a"])(ns);var cfg_def=m_cfg.defaults;var cfg_lim=m_cfg.context_limits;var cfg_scs=m_cfg.scenes;var cfg_hmd=m_cfg.hmd_params;var DEBUG_SAVE_SUBMESHES=false;var DEBUG_KEEP_BUFS_DATA_ARRAYS=false;var DEBUG_DO_NOT_BATCH=false;var STREE_CELL_COUNT=20;var DEFAULT_PART_SYS_QUAT=new Float32Array([0, 0,-Math.sqrt(.5),Math.sqrt(.5)]);var MAX_PARTICLES_COEF=2*100*1E3;var SINGLE_INST_ARR=1;var WH_GR_INST_ARR=2;var _vec3_tmp=new Float32Array(3);var _vec3_tmp2=new Float32Array(3);var _vec3_tmp3=new Float32Array(3);var _vec4_tmp=new Float32Array(4);var _quat_tmp=__WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_quat_js__["create"]();var _tsr_tmp=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"]();var _mat3_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_mat3_js__["create"]();var _batch_debug_storage={};var _bb_corners_tmp= new Float32Array(24);var REQUIRED_FOR_PART_SYS_BIN_FORMAT=[5,4];exports.batch_get_debug_storage=batch_get_debug_storage;function batch_get_debug_storage(batch_id){return _batch_debug_storage[batch_id]||null}exports.batch_set_debug_storage=batch_set_debug_storage;function batch_set_debug_storage(batch_id,value){_batch_debug_storage[batch_id]=value}function init_batch(type){var batch={type:type,subtype:"",id:0,data_id:0,cluster_id:-1,odd_id_prop:"",debug_id_color:-1,debug_main_batch_id:-1,debug_main_batch_render_time:0, debug_render_time:0,debug_render_time_queries:[],textures:[],texture_names:[],bpy_tex_names:[],material_names:[],common_attributes:[],uv_maps_usage:null,vertex_colors_usage:{},shader:null,shaders_info:m_shaders.init_shaders_info(),ngraph_proxy_id:"",attribute_setters:[],bufs_data:null,vaos:__WEBPACK_IMPORTED_MODULE_22__util_js__["S"](),use_shape_keys:false,debug_sphere:false,debug_sphere_dynamic:false,num_vertices:0,num_triangles:0,jitter_amp:0,jitter_freq:0,dynamic_grass:false,grass_scale_threshold:0, grass_size:0,grass_map_dim:new Float32Array(3),cube_fog:new Float32Array(16),alpha_clip:false,alpha_antialiasing:false,blend:false,depth_mask:false,xray:false,use_backface_culling:false,use_shadeless:false,dynamic_geometry:false,shadow_cast:false,shadow_cast_only:false,shadow_receive:false,reflexible:false,reflexible_only:false,reflective:false,draw_mode:m_geom.DM_DEFAULT,z_sort:false,forked_batch:false,do_not_cull:false,caustics:false,lod_dist_max:m_obj_util.LOD_DIST_MAX_INFINITY,lod_dist_min:0, lod_lower_border_range:0,lod_upper_border_range:0,lod_settings:init_lod_settings(),cube_reflection_id:-1,plane_reflection_id:-1,halo:false,halo_size:0,halo_hardness:0,halo_stars_blend:0,halo_stars_height:0,halo_rings_color:new Float32Array(3),halo_lines_color:new Float32Array(3),halo_particles:false,ambient:0,emit:0,diffuse_intensity:1,reflect_factor:0,specular_color_factor:0,specular_alpha:1,parallax_scale:0,diffuse_color_factor:0,alpha_factor:1,normal_factor:0,mirror_factor:0,offset_z:0,refr_bump:0, diffuse_params:new Float32Array(2),specular_params:new Float32Array(3),texture_scale:new Float32Array(3),specular_color:new Float32Array(3),diffuse_color:new Float32Array(4),fresnel_params:new Float32Array(2),lamp_uuid_indexes:null,lamp_light_positions:null,lamp_light_directions:null,lamp_light_color_intensities:null,has_nodes:false,wireframe_edge_color:__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["create"](),water:false,water_dynamic:false,water_shore_smoothing:false,water_generated_mesh:false, water_num_cascads:0,water_subdivs:0,water_detailed_dist:0,water_norm_uv_velocity:.1,shallow_water_col_fac:0,shore_water_col_fac:0,foam_factor:0,foam_uv_freq:new Float32Array(2),foam_mag:new Float32Array(2),foam_scale:new Float32Array(2),shallow_water_col:new Float32Array(3),shore_water_col:new Float32Array(3),normalmap_scales:null,refractive:false,is_sky:false,draw_proc_sky:false,particles_data:null,line_width:0,anchor_positions:null,part_node_data:null,node_values:[],node_value_inds:[],node_rgbs:[], node_rgb_inds:[],bounds_local:__WEBPACK_IMPORTED_MODULE_2__boundings_js__["L"](),use_be:false,submesh:null,cleanup_gl_data_on_unload:true,inst_array_state:0,obj_info_params:new Float32Array(3),lights:[]};batch.diffuse_color[3]=1;batch.depth_mask=true;batch.line_width=1;batch.lod_settings.hyst_prev_state=-1;return batch}exports.clone_batch=clone_batch;function clone_batch(batch){var batch_new=init_batch(batch.type);batch_new.subtype=batch.subtype;batch_new.id=batch.id;batch_new.cluster_id=batch.cluster_id; batch_new.odd_id_prop=batch.odd_id_prop;batch_new.debug_id_color=batch.debug_id_color;batch_new.debug_main_batch_id=batch.debug_main_batch_id;batch_new.debug_main_batch_render_time=batch.debug_main_batch_render_time;batch_new.debug_render_time=batch.debug_render_time;batch_new.debug_render_time_queries=[];batch_new.textures=batch.textures.slice();batch_new.texture_names=batch.texture_names.slice();batch_new.bpy_tex_names=batch.bpy_tex_names.slice();batch_new.material_names=batch.material_names.slice(); batch_new.common_attributes=batch.common_attributes.slice();batch_new.uv_maps_usage=__WEBPACK_IMPORTED_MODULE_22__util_js__["O"](batch.uv_maps_usage);batch_new.vertex_colors_usage=__WEBPACK_IMPORTED_MODULE_22__util_js__["O"](batch.vertex_colors_usage);batch_new.shader=batch.shader;batch_new.shaders_info=m_shaders.clone_shaders_info(batch.shaders_info);batch_new.ngraph_proxy_id=batch.ngraph_proxy_id;batch_new.attribute_setters=m_render.clone_attribute_setters(batch.attribute_setters);batch_new.bufs_data= batch.bufs_data;batch_new.use_shape_keys=batch.use_shape_keys;batch_new.debug_sphere=batch.debug_sphere;batch_new.debug_sphere_dynamic=batch.debug_sphere_dynamic;batch_new.num_vertices=batch.num_vertices;batch_new.num_triangles=batch.num_triangles;batch_new.jitter_amp=batch.jitter_amp;batch_new.jitter_freq=batch.jitter_freq;batch_new.grass_scale_threshold=batch.grass_scale_threshold;batch_new.grass_size=batch.grass_size;batch_new.grass_map_dim=batch.grass_map_dim;batch_new.cube_fog=batch.cube_fog; batch_new.alpha_clip=batch.alpha_clip;batch_new.alpha_antialiasing=batch.alpha_antialiasing;batch_new.blend=batch.blend;batch_new.depth_mask=batch.depth_mask;batch_new.xray=batch.xray;batch_new.use_backface_culling=batch.use_backface_culling;batch_new.use_shadeless=batch.use_shadeless;batch_new.dynamic_geometry=batch.dynamic_geometry;batch_new.shadow_cast=batch.shadow_cast;batch_new.shadow_cast_only=batch.shadow_cast_only;batch_new.shadow_receive=batch.shadow_receive;batch_new.reflexible=batch.reflexible; batch_new.reflexible_only=batch.reflexible_only;batch_new.reflective=batch.reflective;batch_new.dynamic_grass=batch.dynamic_grass;batch_new.draw_mode=batch.draw_mode;batch_new.z_sort=batch.z_sort;batch_new.forked_batch=batch.forked_batch;batch_new.do_not_cull=batch.do_not_cull;batch_new.caustics=batch.caustics;batch_new.lod_dist_max=batch.lod_dist_max;batch_new.lod_dist_min=batch.lod_dist_min;batch_new.lod_lower_border_range=batch.lod_lower_border_range;batch_new.lod_upper_border_range=batch.lod_upper_border_range; batch_new.lod_settings=clone_batch_lod_settings(batch.lod_settings);batch_new.cube_reflection_id=batch.cube_reflection_id;batch_new.plane_reflection_id=batch.plane_reflection_id;batch_new.halo=batch.halo;batch_new.halo_size=batch.halo_size;batch_new.halo_hardness=batch.halo_hardness;batch_new.halo_stars_blend=batch.halo_stars_blend;batch_new.halo_stars_height=batch.halo_stars_height;__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.halo_rings_color,batch_new.halo_rings_color);__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.halo_lines_color, batch_new.halo_lines_color);batch_new.halo_particles=batch.halo_particles;batch_new.ambient=batch.ambient;batch_new.emit=batch.emit;batch_new.diffuse_intensity=batch.diffuse_intensity;batch_new.reflect_factor=batch.reflect_factor;batch_new.specular_color_factor=batch.specular_color_factor;batch_new.specular_alpha=batch.specular_alpha;batch_new.parallax_scale=batch.parallax_scale;batch_new.diffuse_color_factor=batch.diffuse_color_factor;batch_new.alpha_factor=batch.alpha_factor;batch_new.normal_factor= batch.normal_factor;batch_new.mirror_factor=batch.mirror_factor;batch_new.offset_z=batch.offset_z;batch_new.refr_bump=batch.refr_bump;batch_new.diffuse_params[0]=batch.diffuse_params[0];batch_new.diffuse_params[1]=batch.diffuse_params[1];__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.specular_params,batch_new.specular_params);__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.texture_scale,batch_new.texture_scale);__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.specular_color, batch_new.specular_color);__WEBPACK_IMPORTED_MODULE_24__libs_gl_matrix_vec4_js__["copy"](batch.diffuse_color,batch_new.diffuse_color);batch_new.fresnel_params.set(batch.fresnel_params);batch_new.lamp_uuid_indexes=__WEBPACK_IMPORTED_MODULE_22__util_js__["O"](batch.lamp_uuid_indexes);if(batch.lamp_light_positions){batch_new.lamp_light_positions=new Float32Array(batch.lamp_light_positions);batch_new.lamp_light_directions=new Float32Array(batch.lamp_light_directions);batch_new.lamp_light_color_intensities= new Float32Array(batch.lamp_light_color_intensities)}batch_new.has_nodes=batch.has_nodes;__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.wireframe_edge_color,batch_new.wireframe_edge_color);batch_new.water=batch.water;batch_new.water_dynamic=batch.water_dynamic;batch_new.water_shore_smoothing=batch.water_shore_smoothing;batch_new.water_generated_mesh=batch.water_generated_mesh;batch_new.water_num_cascads=batch.water_num_cascads;batch_new.water_subdivs=batch.water_subdivs;batch_new.water_detailed_dist= batch.water_detailed_dist;batch_new.water_norm_uv_velocity=batch.water_norm_uv_velocity;batch_new.shallow_water_col_fac=batch.shallow_water_col_fac;batch_new.shore_water_col_fac=batch.shore_water_col_fac;batch_new.foam_factor=batch.foam_factor;batch_new.foam_uv_freq.set(batch.foam_uv_freq);batch_new.foam_mag.set(batch.foam_mag);batch_new.foam_scale.set(batch.foam_scale);__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.shallow_water_col,batch_new.shallow_water_col);__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["copy"](batch.shore_water_col, batch_new.shore_water_col);batch_new.normalmap_scales=__WEBPACK_IMPORTED_MODULE_22__util_js__["O"](batch.normalmap_scales);batch_new.refractive=batch.refractive;batch_new.is_sky=batch.is_sky;batch_new.draw_proc_sky=batch.draw_proc_sky;if(batch.particles_data)batch_new.particles_data=m_particles.clone_particles_data(batch.particles_data);batch_new.line_width=batch.line_width;if(batch.anchor_positions)batch_new.anchor_positions=new Float32Array(batch.anchor_positions);batch_new.part_node_data=__WEBPACK_IMPORTED_MODULE_22__util_js__["O"](batch.part_node_data); batch_new.node_values=batch.node_values.slice();batch_new.node_value_inds=batch.node_value_inds.slice();batch_new.node_rgbs=batch.node_rgbs.slice();batch_new.node_rgb_inds=batch.node_rgb_inds.slice();__WEBPACK_IMPORTED_MODULE_2__boundings_js__["t"](batch.bounds_local,batch_new.bounds_local);batch_new.use_be=batch.use_be;batch_new.cleanup_gl_data_on_unload=batch.cleanup_gl_data_on_unload;batch_new.obj_info_params=batch.obj_info_params;batch_new.lights=batch.lights;return batch_new}function init_lod_settings(){var lod_settings= {use_smoothing:false,coverage:0,cmp_logic:0,dest_coverage:0,hyst_prev_state:0,hyst_interval_min:0,hyst_interval_max:0,prev_dist:0};lod_settings.cmp_logic=1;return lod_settings}function clone_batch_lod_settings(lod_set){var new_lod_set=init_lod_settings();new_lod_set.use_smoothing=lod_set.use_smoothing;new_lod_set.coverage=lod_set.coverage;new_lod_set.cmp_logic=lod_set.cmp_logic;new_lod_set.dest_coverage=lod_set.dest_coverage;new_lod_set.hyst_prev_state=lod_set.hyst_prev_state;new_lod_set.hyst_interval_min= lod_set.hyst_interval_min;new_lod_set.hyst_interval_max=lod_set.hyst_interval_max;new_lod_set.prev_dist=lod_set.prev_dist;return new_lod_set}exports.generate_main_batches=function(scene,bpy_mesh_objects,lamps,meta_objects){var lights=(lamps||[]).map(function(lamp){return lamp.light});var metabatches=make_metabatches(bpy_mesh_objects,scene._render.graph,lights);metabatches=merge_metabatches(metabatches);for(var i=0;i0){var render_emitter=false;var need_emitter_submesh=false;for(var i=0;i1)var em_submesh=build_emitter_submesh(mesh,psystems,emitter_vc,bpy_obj._object.render);else var em_submesh= em_metabatch.submesh;else var em_submesh=null;var particles_metabatches=make_particles_metabatches(bpy_obj,render,graph,emitter_vc,em_submesh,lights);if(render_emitter)metabatches.push.apply(metabatches,particles_metabatches);else metabatches=particles_metabatches}return metabatches}function prepare_lens_flares(submesh){var base_length=submesh.base_length;var sub_pos=submesh.va_frames[0]["a_position"];var bb_dist_arr=[];var bb_vert_arr=[];for(var i=0;i=materials.length){m_print.warn("Wrong material used for rendering particle "+'system "'+psys["name"]+'"');mat_index=0}return mat_index}function merge_metabatches(metabatches){var merged_metabatches=[];var unique_data=[];var batches_ids={};for(var i=0;i1){var params={};if(batch_render.wind_bending||batch_render.billboard)params["au_center_pos"]=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](tsr,__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["create"]());if(batch_render.wind_bending){params["au_wind_bending_amp"]=[batch_render.wind_bending_amp];params["au_wind_bending_freq"]=[batch_render.wind_bending_freq]; params["au_detail_bending_amp"]=[batch_render.detail_bending_amp];params["au_detail_bending_freq"]=[batch_render.detail_bending_freq];params["au_branch_bending_amp"]=[batch_render.branch_bending_amp]}m_geom.submesh_apply_params(submesh,params);set_batch_directive(batch,"AU_QUALIFIER","GLSL_IN")}else{meta_render.center_pos.set(tsr.subarray(0,3));set_batch_directive(batch,"AU_QUALIFIER","uniform")}}if(submeshes.length==0)var submesh=m_geom.init_submesh(m_generator.unique_name("%empty"));else if(submeshes.length== 1)var submesh=submeshes[0];else{var short_submeshes=[];for(var j=0;j-1)mask|=1<<2-index}batch.vertex_colors_usage[name].src[0].mask=mask;break;case "TEX_COORD_NO":case "TEX_COORD_RE":case "GEOMETRY_NO":case "FRESNEL":case "LAYER_WEIGHT":set_batch_c_attr(batch,"a_tbn");break;case "TEX_COORD_OB":set_batch_directive(batch,"USE_MODEL_TSR_INVERSE",1);break;case "TEX_COORD_WI":set_batch_directive(batch, "USE_POSITION_CLIP",1);break;case "MATERIAL_BEGIN":var mat_data=attr.data.value;if(mat_data.use_tangent_shading){set_batch_directive(batch,"USE_TBN_SHADING",1);if(batch.type!="PARTICLES")set_batch_c_attr(batch,"a_shade_tangs")}set_batch_c_attr(batch,"a_tbn");has_shading_nodes=true;break;case "BSDF_BEGIN":has_shading_nodes=true;set_batch_c_attr(batch,"a_tbn");break;case "TEXTURE_COLOR":case "TEXTURE_ENVIRONMENT_CUBE":case "TEXTURE_ENVIRONMENT_EQUIRECTANGULAR":case "TEXTURE_ENVIRONMENT_MIRROR_BALL":var name= attr.data.name;var bpy_name=attr.data.bpy_name;var tex=attr.data.value;append_texture(batch,tex,name,bpy_name);break;case "TEXTURE_NORMAL":case "B4W_PARALLAX":set_batch_directive(batch,"CALC_TBN_SPACE",1);set_batch_c_attr(batch,"a_tbn");if(attr.data){var name=attr.data.name;var bpy_name=attr.data.bpy_name;var tex=attr.data.value;append_texture(batch,tex,name,bpy_name)}break;case "NORMAL_MAP":set_batch_c_attr(batch,"a_tbn");var space=Number(attr.dirs[0][1]);switch(space){case m_nodemat.NM_TANGENT:set_batch_directive(batch, "CALC_TBN_SPACE",1);break;case m_nodemat.NM_OBJECT:case m_nodemat.NM_BLENDER_OBJECT:set_batch_directive(batch,"USE_MODEL_TSR",1);break}break;case "LAMP":if(attr.data)batch.lamp_uuid_indexes=attr.data;break;case "B4W_REFRACTION":if(batch.blend)batch.refractive=true;else{batch.refractive=false;m_print.warn('Material "'+material.name+'" is not blend. '+"Disabling refractions.")}set_batch_directive(batch,"USE_POSITION_CLIP",1);break;case "VALTORGB":case "CURVE_VEC":case "CURVE_RGB":if(!node_texture)node_texture= attr.data.texture;break;case "PARTICLE_INFO":if(batch.type=="PARTICLES"&&attr.data)batch.part_node_data=attr.data;break;case "VECT_TRANSFORM":var conv_type=Number(attr.dirs[1][1]);switch(conv_type){case m_nodemat.VT_WORLD_TO_OBJECT:set_batch_directive(batch,"USE_MODEL_TSR_INVERSE",1);break;case m_nodemat.VT_WORLD_TO_CAMERA:set_batch_directive(batch,"USE_VIEW_TSR",1);break;case m_nodemat.VT_OBJECT_TO_WORLD:set_batch_directive(batch,"USE_MODEL_TSR",1);break;case m_nodemat.VT_OBJECT_TO_CAMERA:set_batch_directive(batch, "USE_MODEL_TSR",1);set_batch_directive(batch,"USE_VIEW_TSR",1);break;case m_nodemat.VT_CAMERA_TO_WORLD:set_batch_directive(batch,"USE_VIEW_TSR_INVERSE",1);break;case m_nodemat.VT_CAMERA_TO_OBJECT:set_batch_directive(batch,"USE_MODEL_TSR_INVERSE",1);set_batch_directive(batch,"USE_VIEW_TSR_INVERSE",1);break}break;case "OBJECT_INFO":set_batch_directive(batch,"USE_MODEL_TSR",1);batch.obj_info_params[1]=material.pass_index;batch.obj_info_params[2]=Math.random();break;case "B4W_VECTOR_VIEW":case "GEOMETRY_VW":set_batch_directive(batch, "USE_VIEW_TSR",1);break;case "B4W_REFLECT":set_batch_directive(batch,"USE_VIEW_TSR_INVERSE",1);break;case "BUMP":case "DISPLACEMENT_BUMP":set_batch_c_attr(batch,"a_tbn");if(m_extensions.get_standard_derivatives())set_batch_directive(batch,"USE_DERIVATIVES_EXT",1);else m_print.warn('"OES_standard_derivatives" extension is not available. '+'Disabling the BUMP node in the "'+material.name+'" material.');break;case "BSDF_TRANSPARENT":if(attr.data.value.use_alpha)set_batch_directive(batch,"USE_BSDF_TRANSPARENT_ALPHA", 1);else{batch.blend=true;batch.refractive=true;set_batch_directive(batch,"USE_BSDF_TRANSPARENT_REFRACT",1)}break;case "BSDF_GLOSSY":case "BSDF_DIFFUSE":set_batch_directive(batch,"USE_BSDF_SKY_DIM",1);if(m_extensions.get_texture_lod())set_batch_directive(batch,"USE_TEXTURE_LOD_EXT",1);break;case "BSDF_PRINCIPLED":set_batch_directive(batch,"USE_BSDF_SKY_DIM",1);if(m_extensions.get_texture_lod())set_batch_directive(batch,"USE_TEXTURE_LOD_EXT",1);if(attr.data.value.use_refract){batch.blend=true;batch.refractive= true;set_batch_directive(batch,"USE_BSDF_PRINCIPLED_REFRACT",1);set_batch_directive(batch,"USE_VIEW_TSR",1);set_batch_directive(batch,"USE_PROJ_MATRIX_FRAG",1)}break}});if(node_texture)append_texture(batch,node_texture,"u_nodes_texture");if(!has_shading_nodes)batch.use_shadeless=true;var node_elems=batch.shaders_info.node_elements=m_nodemat.compose_node_elements(ngraph_proxy.graph);prepare_nodemats_containers(ngraph_proxy.graph,batch,material.name);var node_value_inds=batch.node_value_inds;var node_rgb_inds= batch.node_rgb_inds;for(var i=0;i0)m_geom.submesh_init_shape_keys(submesh,submesh.va_frames[0],shape_key_values);batch.submesh=submesh}return}var draw_mode=batch.draw_mode;if(batch.halo&&batch.type!="PARTICLES")submesh=m_geom.extract_halo_submesh(submesh); if(batch.water_generated_mesh){var num_cascads=batch.water_num_cascads;var subdivs=batch.water_subdivs;var detailed_dist=batch.water_detailed_dist;submesh=m_primitives.generate_cascaded_grid(num_cascads,subdivs,detailed_dist)}var bufs_data=m_geom.submesh_to_bufs_data(submesh,draw_mode,batch.vertex_colors_usage);batch.bufs_data=bufs_data;if(!(DEBUG_KEEP_BUFS_DATA_ARRAYS||batch.dynamic_geometry||batch.z_sort||batch.use_shape_keys)){bufs_data.ibo_array=null;bufs_data.vbo_source_data.length=0}var frames= submesh.va_frames.length;batch.num_vertices=submesh.base_length*frames;if(is_triangle_batch(batch))if(m_geom.is_indexed(submesh))batch.num_triangles=submesh.indices.length/3*frames;else batch.num_triangles=submesh.base_length/3*frames;else batch.num_triangles=0;if(DEBUG_SAVE_SUBMESHES)batch.submesh=submesh}function is_triangle_batch(batch){switch(batch.draw_mode){case m_geom.DM_DEFAULT:case m_geom.DM_TRIANGLES:case m_geom.DM_DYNAMIC_TRIANGLES:return true;default:return false}}function update_batch_particles_emitter(batch, psystem,obj){var pset=psystem["settings"];switch(pset["b4w_billboard_align"]){case "VIEW":set_batch_directive(batch,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_VIEW");break;case "XY":set_batch_directive(batch,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_XY");break;case "YZ":set_batch_directive(batch,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_YZ");break;case "ZX":set_batch_directive(batch,"BILLBOARD_ALIGN","BILLBOARD_ALIGN_ZX");break;default:m_assert.panic("Wrong billboard align value");break}set_batch_directive(batch,"BILLBOARD", 0);var obj_soft_particles=pset["b4w_enable_soft_particles"]&&m_obj_util.check_obj_soft_particles_accessibility(obj,pset);var enable_softness=pset["b4w_particles_softness"]>0&&obj_soft_particles&&cfg_def.depth_tex_available;set_batch_directive(batch,"SOFT_PARTICLES",enable_softness?1:0);set_batch_directive(batch,"SOFT_STRENGTH",m_shaders.glsl_value(pset["b4w_particles_softness"]));var world_space=pset["b4w_coordinate_system"]=="WORLD"?1:0;m_shaders.set_directive(batch.shaders_info,"WORLD_SPACE",world_space)} function make_hair_particles_metabatches(bpy_em_obj,render,emitter_vc,em_submesh,bpy_part_objs,batch_types_arr,objs_ptrans,pset,psys,use_grass_map,seed,reset_seed,lights){var em_obj=bpy_em_obj._object;var metabatches=[];var dyn_grass=pset["b4w_dynamic_grass"];if(!use_grass_map&&dyn_grass)return metabatches;var inst_inherit_bend=pset["b4w_wind_bend_inheritance"]=="INSTANCE";var inst_inherit_shadow=pset["b4w_shadow_inheritance"]=="INSTANCE";var inst_inherit_reflection=pset["b4w_reflection_inheritance"]== "INSTANCE";var objs_hair_render=[];var objs_tsr_array=[];for(var i=0;i 1){var atr_num=0;for(var name in src_submesh.va_frames)atr_num++;realy_need_use_inst=src_submesh.indices.length*tsr_array.length*atr_num*part_mat_data[material.name]>MAX_PARTICLES_COEF*mat_number}var can_use_inst=cfg_def.allow_instanced_arrays_ext&&realy_need_use_inst&&batch.type!="PHYSICS";if(can_use_inst){batch.inst_array_state=pset["use_whole_group"]?WH_GR_INST_ARR:SINGLE_INST_ARR;var submesh=m_geom.clone_submesh(src_submesh);m_geom.calc_unit_boundings(src_submesh,submesh,tsr_array);submesh.instanced_array_data= {tsr_array:tsr_array,stat_part_em_tsr:stat_part_em_tsr,static_hair:render.type=="STATIC",submesh_params:submesh_params,part_inh_attrs:{},dyn_grass:dyn_grass};if(hair_render.wind_bending&&hair_render.bend_center_only){var origin=__WEBPACK_IMPORTED_MODULE_23__libs_gl_matrix_vec3_js__["fromValues"](0,0,0);__WEBPACK_IMPORTED_MODULE_20__tsr_js__["D"](origin,em_obj.render.world_tsr,origin);var center_data=[];for(var l=0;l 0)for(var i=0;i0){calc_nearest=true;break}}if(inst_array)var part_inh_attrs=submesh.instanced_array_data.part_inh_attrs; if(calc_nearest){var nearest_points=calc_emitter_nearest_points(em_bb_local,em_submesh.va_frames[0]["a_position"],transforms,spatial_tree);var particle_verts_count=submesh.base_length/transforms.length;for(var i=0;i0){var emitter_comp_count=__WEBPACK_IMPORTED_MODULE_22__util_js__["_43"](em_mask);var particle_comp_count=__WEBPACK_IMPORTED_MODULE_22__util_js__["_43"](p_mask);var mask_from= em_mask&p_mask;var channel_presence_from=__WEBPACK_IMPORTED_MODULE_22__util_js__["_44"](mask_from);if(mask_from!=p_mask)m_print.error("Wrong color extraction from "+em_attr+" to "+p_attr+".");if(!inst_array){if(p_attr=="a_bending_col_main"||p_attr=="a_bending_col_detail")submesh.va_common[p_attr]=new Float32Array(submesh.base_length*particle_comp_count);for(var j=0;j=weight_sum_array[i]&&weight_sum_rand-1)batch.textures[index]=texture};exports.create_shadeless_batch=function(submesh,color,alpha){var batch=init_batch("MAIN");if(alpha<1)batch.blend=true;__WEBPACK_IMPORTED_MODULE_24__libs_gl_matrix_vec4_js__["set"](color[0],color[1],color[2],alpha,batch.diffuse_color);batch.draw_mode=m_geom.DM_TRIANGLES;update_batch_geometry(batch,submesh);apply_shader(batch,"main.glslv","main_stack.glslf");set_batch_directive(batch, "SHADELESS",1);update_shader(batch);return batch};exports.update_shader=update_shader;function update_shader(batch){if(!batch.shaders_info)m_assert.panic("No shaders info for batch "+batch.name);batch.shader=m_shaders.get_compiled_shader(batch.shaders_info);validate_batch(batch);if(batch.shaders_info.status===m_shaders.VALID){m_render.assign_uniform_setters(batch.shader);m_render.assign_attribute_setters(batch);m_render.assign_texture_uniforms(batch);return true}return false}function validate_batch(batch){var shaders_info= batch.shaders_info;if(shaders_info.status===m_shaders.VALID){var shader=batch.shader;var attributes=shader.attributes;var pointers=batch.bufs_data.pointers;for(var attr in attributes){var p=pointers[attr];if(!p)m_assert.panic('missing data for "'+attr+'" attribute')}}if(shaders_info.status&m_shaders.INVALID_TEX_IMAGE_UNITS)m_print.error("Texture limit exceeded for shader - "+shaders_info.frag+', materials: "'+batch.material_names.join(", ")+'". '+"Maximum texture count: "+cfg_lim.max_texture_image_units+ ", actual texture count: "+shaders_info.texture_count);if(shaders_info.status&m_shaders.INVALID_F_UNIFORM_VECTORS)m_print.error("Fragment uniform limit exceeded for shader - "+shaders_info.frag+', materials: "'+batch.material_names.join(", ")+'". ');if(shaders_info.status&m_shaders.INVALID_V_UNIFORM_VECTORS)m_print.error("Vertex uniform limit exceeded for shader - "+shaders_info.vert+', materials: "'+batch.material_names.join(", ")+'". ');if(shaders_info.status&m_shaders.INVALID_VERTEX_ATTRIBS)m_print.error("Vertex attribute limit exceeded for shader - "+ shaders_info.vert+', materials: "'+batch.material_names.join(", ")+'". '+"Maximum attribute count: "+cfg_lim.max_vertex_attribs+", actual attribute count: "+shaders_info.attribute_count);if(shaders_info.status&m_shaders.INVALID_VARYING_VECTORS)warn_batch_varyings(batch);if(shaders_info.status&m_shaders.COMPILATION_ERROR)m_print.error("Shader compilation/linking error: "+shaders_info.vert+", "+shaders_info.frag+', materials: "'+batch.material_names.join(", ")+'"')}function warn_batch_varyings(batch){if(batch.type== "MAIN"&&!batch.has_nodes)m_print.error("Varying limit exceeded for shader - "+batch.shaders_info.frag+', materials: "'+batch.material_names.join(", ")+'"');if(batch.type=="MAIN"&&batch.has_nodes||batch.type=="NODES_GLOW"){var used_uv=0;var used_vc=0;if(batch.uv_maps_usage)used_uv=__WEBPACK_IMPORTED_MODULE_22__util_js__["_8"](batch.uv_maps_usage);if(batch.vertex_colors_usage)used_vc=__WEBPACK_IMPORTED_MODULE_22__util_js__["_8"](batch.vertex_colors_usage);m_print.error("Varying limit exceeded for node shader - "+ batch.shaders_info.frag+", uv: "+used_uv+", vc: "+used_vc+', materials: "'+batch.material_names.join(", ")+'"')}}exports.generate_line_batches=function(scene,line_objects){for(var i=0;i=0&&bpy_mat_index-1;var is_pvr=path.indexOf(".pvr")>-1;if(is_dds)texture.img_comp_method="dds";else if(is_pvr)texture.img_comp_method="pvr";else texture.img_comp_method="";texture.img_filepath=path;texture.img_full_filepath= full_path;texture.img_uuid=__WEBPACK_IMPORTED_MODULE_9__util_js__["_4"]();_img_textures_cache.textures.push(texture);_img_textures_cache.loaded_status.push(true)}function clone_w_texture(texture,texture_new){_gl.bindTexture(texture.w_target,texture.w_texture);var texture_mag_filter=_gl.getTexParameter(texture.w_target,_gl.TEXTURE_MAG_FILTER);var texture_min_filter=_gl.getTexParameter(texture.w_target,_gl.TEXTURE_MIN_FILTER);var texture_wrap_s=_gl.getTexParameter(texture.w_target,_gl.TEXTURE_WRAP_S); var texture_wrap_t=_gl.getTexParameter(texture.w_target,_gl.TEXTURE_WRAP_T);texture_new.w_texture=_gl.createTexture();_gl.bindTexture(texture_new.w_target,texture_new.w_texture);_gl.texParameteri(texture_new.w_target,_gl.TEXTURE_MAG_FILTER,texture_mag_filter);_gl.texParameteri(texture_new.w_target,_gl.TEXTURE_MIN_FILTER,texture_min_filter);_gl.texParameteri(texture_new.w_target,_gl.TEXTURE_WRAP_S,texture_wrap_s);_gl.texParameteri(texture_new.w_target,_gl.TEXTURE_WRAP_T,texture_wrap_t);_gl.bindTexture(texture_new.w_target, null)}exports.create_texture=create_texture;function create_texture(type,use_comparison,use_mipmap){var texture=init_texture();texture.type=type;texture.source="NONE";texture.use_mipmap=use_mipmap;if(type==exports.TT_RB_RGBA||type==exports.TT_RB_DEPTH||type==exports.TT_RB_RGBA_MS||type==exports.TT_RB_DEPTH_MS)texture.w_renderbuffer=_gl.createRenderbuffer();else{var w_target=_gl.TEXTURE_2D;var w_texture=_gl.createTexture();_gl.bindTexture(w_target,w_texture);_gl.texParameteri(w_target,_gl.TEXTURE_MAG_FILTER, _gl.LINEAR);if(use_mipmap)_gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,LEVELS[cfg_def.texture_min_filter]);else _gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,_gl.LINEAR);_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_S,_gl.CLAMP_TO_EDGE);_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_T,_gl.CLAMP_TO_EDGE);var format=get_image2d_format(texture);var iformat=get_image2d_iformat(texture);var tex_type=get_image2d_type(texture);if(type==exports.TT_DEPTH)var image_data=null;else if(type==exports.TT_RGBA_FLOAT)var image_data= new Float32Array([.8*255,.8*255,.8*255,1*255]);else var image_data=new Uint8Array([.8*255,.8*255,.8*255,1*255]);_gl.texImage2D(w_target,0,iformat,1,1,0,format,tex_type,image_data);if(cfg_def.compared_mode_depth&&use_comparison)_gl.texParameterf(w_target,_gl.TEXTURE_COMPARE_MODE,_gl.COMPARE_REF_TO_TEXTURE);_gl.bindTexture(w_target,null);texture.w_target=w_target;texture.w_texture=w_texture}return texture}exports.create_cubemap_texture=function(size,use_mipmap){var w_texture=_gl.createTexture();var w_target= _gl.TEXTURE_CUBE_MAP;_gl.bindTexture(w_target,w_texture);_gl.texParameteri(w_target,_gl.TEXTURE_MAG_FILTER,_gl.LINEAR);if(use_mipmap)_gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,LEVELS[cfg_def.texture_min_filter]);else _gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,_gl.LINEAR);_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_S,_gl.CLAMP_TO_EDGE);_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_T,_gl.CLAMP_TO_EDGE);for(var i=0;i<6;i++){var info=CUBE_MAP_TARGETS[i];_gl.texImage2D(_gl[info],0,_gl.RGBA, size,size,0,_gl.RGBA,_gl.UNSIGNED_BYTE,null)}_gl.bindTexture(w_target,null);var texture=init_texture();texture.type=exports.TT_RGBA_INT;texture.source="NONE";texture.width=3*size;texture.height=2*size;texture.compress_ratio=1;texture.use_mipmap=use_mipmap;texture.w_texture=w_texture;texture.w_target=_gl.TEXTURE_CUBE_MAP;return texture};exports.set_cubemap_tex_size=function(cube_texture,size){var w_texture=cube_texture.w_texture;var w_target=cube_texture.w_target;_gl.bindTexture(w_target,w_texture); for(var i=0;i<6;i++){var info=CUBE_MAP_TARGETS[i];_gl.texImage2D(_gl[info],0,_gl.RGBA,size,size,0,_gl.RGBA,_gl.UNSIGNED_BYTE,null)}_gl.bindTexture(w_target,null);cube_texture.width=3*size;cube_texture.height=2*size};exports.set_filters=function(texture,min_filter,mag_filter){var w_target=texture.w_target;var w_texture=texture.w_texture;_gl.bindTexture(w_target,w_texture);if(min_filter)_gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,min_filter);if(mag_filter)_gl.texParameteri(w_target,_gl.TEXTURE_MAG_FILTER, mag_filter);_gl.bindTexture(w_target,null)};exports.resize=function(texture,width,height){width=Math.max(width,1);height=Math.max(height,1);if(texture.width==width&&texture.height==height)return;switch(texture.type){case exports.TT_RB_RGBA:_gl.bindRenderbuffer(_gl.RENDERBUFFER,texture.w_renderbuffer);_gl.renderbufferStorage(_gl.RENDERBUFFER,_gl.RGB565,width,height);_gl.bindRenderbuffer(_gl.RENDERBUFFER,null);break;case exports.TT_RB_DEPTH:_gl.bindRenderbuffer(_gl.RENDERBUFFER,texture.w_renderbuffer); _gl.renderbufferStorage(_gl.RENDERBUFFER,get_depth_format(cfg_lim.depth_bits),width,height);_gl.bindRenderbuffer(_gl.RENDERBUFFER,null);break;case exports.TT_RB_RGBA_MS:_gl.bindRenderbuffer(_gl.RENDERBUFFER,texture.w_renderbuffer);_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER,cfg_def.msaa_samples,_gl.RGBA8,width,height);_gl.bindRenderbuffer(_gl.RENDERBUFFER,null);break;case exports.TT_RB_DEPTH_MS:_gl.bindRenderbuffer(_gl.RENDERBUFFER,texture.w_renderbuffer);_gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, cfg_def.msaa_samples,get_depth_format(cfg_lim.depth_bits),width,height);_gl.bindRenderbuffer(_gl.RENDERBUFFER,null);break;default:var w_tex=texture.w_texture;var w_target=texture.w_target;_gl.bindTexture(w_target,w_tex);var format=get_image2d_format(texture);var iformat=get_image2d_iformat(texture);var type=get_image2d_type(texture);if(texture.use_mipmap){if(!cfg_def.webgl2){var size=Math.max(width,height);width=calc_pot_size(size);height=calc_pot_size(size)}texture.mipmap_count=Math.round(Math.log(Math.max(width, height))/Math.log(2)+.5)}_gl.texImage2D(w_target,0,iformat,width,height,0,format,type,null);_gl.bindTexture(w_target,null);break}if(check_texture_size(width,height)){m_assert.panic('Slink texture "'+texture.type+'" has unsupported size: '+width+"x"+height+". Max available: "+cfg_lim.max_texture_size+"x"+cfg_lim.max_texture_size+".");return}texture.width=width;texture.height=height};exports.create_texture_bpy=function(bpy_texture,global_af,bpy_scenes,thread_id,dir_path){var tex_type=bpy_texture["type"]; if(tex_type=="BLEND")return null;var image=bpy_texture["image"];var texture=init_texture();texture.type=exports.TT_RGBA_INT;texture.width=1;texture.height=1;setup_anisotropic_filtering(texture,bpy_texture,global_af);setup_texture_repeat(texture,bpy_texture);if(image){if(tex_type=="IMAGE"&&image["source"]=="MOVIE")setup_tex_movie_props(texture,bpy_texture);texture.source=tex_type;var norm_path=Object(__WEBPACK_IMPORTED_MODULE_16__util_path_js__["b"])(dir_path+image["filepath"]);var cached_tex=find_similar_tex(norm_path, texture);if(cached_tex)return cached_tex;append_img_info(texture,image,dir_path)}var image_data=new Uint8Array([.8*255,.8*255,.8*255,1*255]);switch(tex_type){case "IMAGE":var w_texture=_gl.createTexture();var w_target=_gl.TEXTURE_2D;_gl.bindTexture(w_target,w_texture);_gl.texImage2D(w_target,0,_gl.RGBA,1,1,0,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data);break;case "NONE":if(bpy_texture["b4w_source_type"]=="NONE")return null;var w_texture=_gl.createTexture();var w_target=_gl.TEXTURE_2D;texture.source=bpy_texture["b4w_source_type"]; if(texture.source=="SCENE"){if(!bpy_texture["b4w_source_id"])return null;var name=bpy_texture["b4w_source_id"];var scene=__WEBPACK_IMPORTED_MODULE_9__util_js__["_19"]("name",name,bpy_scenes);if(!scene)return null;texture.source_id=bpy_texture["b4w_source_id"];texture.source_size=bpy_texture["b4w_source_size"];scene._render_to_textures=scene._render_to_textures||[];scene._render_to_textures.push(texture);_gl.bindTexture(w_target,w_texture);_gl.texImage2D(w_target,0,_gl.RGBA,1,1,0,_gl.RGBA,_gl.UNSIGNED_BYTE, image_data)}else if(texture.source=="CANVAS"){setup_tex_canvas(texture,bpy_texture,thread_id);_gl.bindTexture(w_target,w_texture)}break;case "ENVIRONMENT_MAP":var w_texture=_gl.createTexture();var w_target=_gl.TEXTURE_CUBE_MAP;_gl.bindTexture(w_target,w_texture);var targets=["POSITIVE_X","NEGATIVE_X","POSITIVE_Y","NEGATIVE_Y","POSITIVE_Z","NEGATIVE_Z"];for(var i=0;i<6;i++)_gl.texImage2D(_gl["TEXTURE_CUBE_MAP_"+targets[i]],0,_gl.RGBA,1,1,0,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data);break;default:m_print.error('texture "'+ bpy_texture["name"]+'" has unsupported type "'+tex_type+'"');return null}texture.w_texture=w_texture;texture.w_target=w_target;if(tex_type=="NONE"){if(!texture.enable_canvas_mipmapping)_gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,_gl.LINEAR);else _gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,LEVELS[cfg_def.texture_min_filter]);if(texture.anisotropic_filtering)_gl.texParameterf(w_target,m_ext.get_aniso().TEXTURE_MAX_ANISOTROPY_EXT,texture.anisotropic_filtering);if(texture.source=="CANVAS")update_texture_canvas(texture)}else{_gl.generateMipmap(w_target); _gl.bindTexture(w_target,null)}return texture};function setup_anisotropic_filtering(texture,bpy_texture,global_af){if(cfg_def.anisotropic_available){var af=bpy_texture["b4w_anisotropic_filtering"];if(af==="DEFAULT")af=global_af;if(af!=="OFF"&&cfg_def.anisotropic_filtering){var af_value=parseFloat(af.split("x")[0]);texture.anisotropic_filtering=af_value}}}function setup_texture_repeat(texture,bpy_texture){var tex_extension=bpy_texture["extension"];if(tex_extension!="REPEAT"||bpy_texture["b4w_shore_dist_map"])texture.repeat= false}function setup_tex_movie_props(texture,bpy_texture){texture.is_movie=true;texture.video_tex_name=bpy_texture["name"];texture.frame_start=bpy_texture["frame_start"];texture.frame_offset=bpy_texture["frame_offset"];texture.frame_duration=bpy_texture["frame_duration"];texture.use_auto_refresh=bpy_texture["use_auto_refresh"];texture.use_cyclic=bpy_texture["use_cyclic"];texture.movie_length=bpy_texture["movie_length"];texture.use_nla=bpy_texture["b4w_nla_video"];if(texture.frame_offset!=0)m_print.warn('Frame offset for texture "'+ bpy_texture["name"]+'" has a nonzero value. Can lead to undefined behaviour'+" for mobile devices.")}function setup_tex_canvas(texture,bpy_texture,thread_id){var id=bpy_texture["b4w_source_id"];var size=bpy_texture["b4w_source_size"];texture.source_id=id;texture.enable_canvas_mipmapping=bpy_texture["b4w_enable_canvas_mipmapping"];var canvas=document.createElement("canvas");canvas.width=size;canvas.height=size;texture.canvas_context=canvas.getContext("2d");if(!(thread_id in _canvas_textures_cache))_canvas_textures_cache[thread_id]= {};_canvas_textures_cache[thread_id][id]=texture}exports.update_texture_canvas=update_texture_canvas;function update_texture_canvas(texture){var w_texture=texture.w_texture;var w_target=texture.w_target;_gl.bindTexture(w_target,w_texture);var w_format=get_image2d_format(texture);var w_iformat=get_image2d_iformat(texture);var w_type=get_image2d_type(texture);var canvas=texture.canvas_context.canvas;_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,true);_gl.texImage2D(w_target,0,w_iformat,w_format,w_type,canvas); _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,false);if(texture.enable_canvas_mipmapping)_gl.generateMipmap(w_target);_gl.bindTexture(w_target,null);texture.width=canvas.width;texture.height=canvas.height}exports.update_video_texture=update_video_texture;function update_video_texture(texture){var w_texture=texture.w_texture;var w_target=texture.w_target;_gl.bindTexture(w_target,w_texture);_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,true);if(texture.video_file.length!=4)if(texture.need_resize)draw_resized_image(texture, texture.video_file,texture.width*texture.scale_fac,texture.height*texture.scale_fac,false);else _gl.texImage2D(w_target,0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,texture.video_file);else _gl.texImage2D(w_target,0,_gl.RGBA,1,1,0,_gl.RGBA,_gl.UNSIGNED_BYTE,texture.video_file);_gl.bindTexture(w_target,null)}exports.update_seq_video_texture=update_seq_video_texture;function update_seq_video_texture(texture){var w_texture=texture.w_texture;var w_target=texture.w_target;_gl.bindTexture(w_target,w_texture); _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,true);if(texture.need_resize)draw_resized_image(texture,texture.seq_video[texture.seq_cur_frame],texture.width*texture.scale_fac,texture.height*texture.scale_fac,false);else _gl.texImage2D(w_target,0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,texture.seq_video[texture.seq_cur_frame]);_gl.bindTexture(w_target,null)}function get_tmp_canvas(){if(!_tmpcanvas)_tmpcanvas=document.createElement("canvas");return _tmpcanvas}function draw_resized_image(texture,image_data,width, height,is_dds){if(!is_dds){setup_resized_tex_data(_gl.TEXTURE_2D);_gl.texImage2D(_gl.TEXTURE_2D,0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data)}_gl.bindTexture(_gl.TEXTURE_2D,null);var fbuf_tmp=get_framebuffer_tmp();var wtex_tmp=get_wtex_tmp();m_ren.draw_resized_texture(texture,width,height,fbuf_tmp,wtex_tmp,"NONE")}function resize_cube_map(texture,image_data,pot_dim,img_dim){setup_resized_tex_data(_gl.TEXTURE_2D);_gl.texImage2D(_gl.TEXTURE_2D,0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data);_gl.bindTexture(_gl.TEXTURE_2D, null);for(var i=0;i<6;i++)_gl.texImage2D(_gl["TEXTURE_CUBE_MAP_POSITIVE_X"]+i,0,_gl.RGBA,pot_dim,pot_dim,0,_gl.RGBA,_gl.UNSIGNED_BYTE,null);_gl.bindTexture(texture.w_target,null);var fbuf_tmp=get_framebuffer_tmp();_gl.bindFramebuffer(_gl.FRAMEBUFFER,fbuf_tmp);var wtex_tmp=get_wtex_tmp();for(var i=0;i<6;i++)m_ren.draw_resized_cubemap_texture(texture,_gl[CUBE_MAP_TARGETS[i]],pot_dim,img_dim,wtex_tmp,i);_gl.bindFramebuffer(_gl.FRAMEBUFFER,null);_gl.bindTexture(texture.w_target,texture.w_texture);_gl.texParameteri(texture.w_target, _gl.TEXTURE_MIN_FILTER,LEVELS[cfg_def.texture_min_filter]);_gl.texParameteri(texture.w_target,_gl.TEXTURE_MAG_FILTER,_gl.LINEAR)}function resize_cube_map_canvas(texture,image_data,img_dim,pot_dim){for(var i=0;i<6;i++){var target=CUBE_MAP_TARGETS[i];var offset=CUBE_MAP_OFFSETS[i];var tmpcanvas=get_tmp_canvas();tmpcanvas.width=pot_dim;tmpcanvas.height=pot_dim;var ctx=tmpcanvas.getContext("2d");ctx.translate(pot_dim/2,pot_dim/2);if(target=="TEXTURE_CUBE_MAP_POSITIVE_X"){ctx.rotate(Math.PI/2);ctx.scale(1, -1)}else if(target=="TEXTURE_CUBE_MAP_NEGATIVE_X"){ctx.rotate(Math.PI/2);ctx.scale(-1,1)}else if(target=="TEXTURE_CUBE_MAP_POSITIVE_Y"||target=="TEXTURE_CUBE_MAP_POSITIVE_Z")ctx.scale(1,-1);else if(target=="TEXTURE_CUBE_MAP_NEGATIVE_Y"||target=="TEXTURE_CUBE_MAP_NEGATIVE_Z")ctx.scale(-1,1);ctx.drawImage(image_data,offset[0]*img_dim,offset[1]*img_dim,img_dim,img_dim,-pot_dim/2,-pot_dim/2,pot_dim,pot_dim);if(cfg_def.d3d9_canvas_resizing_hack)_gl.texImage2D(_gl[target],0,_gl.RGBA,pot_dim,pot_dim,0,_gl.RGBA, _gl.UNSIGNED_BYTE,new Uint8Array(ctx.getImageData(0,0,pot_dim,pot_dim).data.buffer));else _gl.texImage2D(_gl[target],0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,tmpcanvas)}}function setup_resized_tex_data(w_target){_gl.bindTexture(w_target,null);var wtex_tmp=get_wtex_tmp();_gl.bindTexture(w_target,wtex_tmp);prepare_npot_texture(w_target)}exports.update_texture=update_texture;function update_texture(texture,image_data,thread_id){var tex_type=texture.source;var w_texture=texture.w_texture;var w_target=texture.w_target; var comp_method=texture.img_comp_method;var filepath=texture.img_filepath;var width=1;var height=1;_gl.bindTexture(w_target,w_texture);if(texture.repeat){_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_S,_gl.REPEAT);_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_T,_gl.REPEAT)}else{_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_S,_gl.CLAMP_TO_EDGE);_gl.texParameteri(w_target,_gl.TEXTURE_WRAP_T,_gl.CLAMP_TO_EDGE)}if(texture.is_movie||tex_type=="NODE_TEX")_gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,_gl.LINEAR); else _gl.texParameteri(w_target,_gl.TEXTURE_MIN_FILTER,LEVELS[cfg_def.texture_min_filter]);if(texture.anisotropic_filtering)_gl.texParameterf(w_target,m_ext.get_aniso().TEXTURE_MAX_ANISOTROPY_EXT,texture.anisotropic_filtering);if(image_data.length==4){var update_color=true;image_data=new Uint8Array([image_data[0]*255,image_data[1]*255,image_data[2]*255,image_data[3]*255])}if(tex_type=="IMAGE")if(update_color){_gl.texImage2D(w_target,0,_gl.RGBA,1,1,0,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data);texture.width= 1;texture.height=1}else if(comp_method){var comp_img_wh=m_texcomp.get_width_height(image_data,comp_method);var is_npot=__WEBPACK_IMPORTED_MODULE_9__util_js__["L"](comp_img_wh.width)||__WEBPACK_IMPORTED_MODULE_9__util_js__["L"](comp_img_wh.height);if(check_texture_size(comp_img_wh.width,comp_img_wh.height)){m_print.error('Image "'+filepath+'" has unsupported size: '+comp_img_wh.width+"x"+comp_img_wh.height+". Max available: "+cfg_lim.max_texture_size+"x"+cfg_lim.max_texture_size+".");return}width= comp_img_wh.width;height=comp_img_wh.height;if(is_npot||comp_method=="pvr"){texture.need_resize=true;setup_resized_tex_data(w_target);width=calc_pot_size(width*texture.scale_fac);height=calc_pot_size(height*texture.scale_fac)}if(comp_method=="dds")m_texcomp.upload_dds_levels(_gl,m_ext.get_s3tc(),image_data,true);else if(comp_method=="pvr")m_texcomp.upload_pvr_levels(_gl,m_ext.get_pvr(),image_data,true);if(texture.need_resize){draw_resized_image(texture,null,width,height,true);_gl.bindTexture(w_target, w_texture);_gl.generateMipmap(w_target)}texture.width=width;texture.height=height;texture.compress_ratio=m_texcomp.get_compress_ratio(image_data,comp_method)}else{_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,true);if(texture.is_movie)if(cfg_def.seq_video_fallback){width=image_data[0].width;height=image_data[0].height}else{width=image_data.videoWidth;height=image_data.videoHeight}else{width=image_data.width;height=image_data.height}texture.width=width;texture.height=height;if(check_texture_size(width,height)){m_print.warn('Image "'+ filepath+'" has unsupported size: '+width+"x"+height+". Max available: "+cfg_lim.max_texture_size+"x"+cfg_lim.max_texture_size+". Reduced image size will be used.");texture.scale_fac=Math.min(cfg_lim.max_texture_size/width,cfg_lim.max_texture_size/height);texture.need_resize=true}if(texture.is_movie){if(!(thread_id in _video_textures_cache))_video_textures_cache[thread_id]={};_video_textures_cache[thread_id][texture.video_tex_name]=texture;if(!cfg_def.seq_video_fallback){texture.video_file=image_data; texture.video_file.loop=texture.use_cyclic;texture.fps=image_data.duration?texture.movie_length/image_data.duration:m_time.get_framerate();if(!cfg_sfx.disable_playback_rate_hack){image_data.playbackRate=m_time.get_framerate()/texture.fps;if(cfg_sfx.clamp_playback_rate_hack&&image_data.playbackRate>PLAYBACK_RATE)image_data.playbackRate=PLAYBACK_RATE}var draw_data=image_data;create_oncanplay_handler(texture)}else{texture.seq_video=image_data;texture.seq_movie_length=image_data.length;texture.fps=texture.seq_fps* texture.movie_length/image_data.length;var draw_data=image_data[0]}}else var draw_data=image_data;width=calc_pot_size(texture.width*texture.scale_fac);height=calc_pot_size(texture.height*texture.scale_fac);if(texture.need_resize||cfg_def.resize_texture_canvas_hack){var canvas=get_tmp_canvas();var ctx=canvas.getContext("2d");canvas.width=width;canvas.height=height;ctx.drawImage(draw_data,0,0,texture.width,texture.height,0,0,width,height);if(cfg_def.d3d9_canvas_resizing_hack)_gl.texImage2D(w_target, 0,_gl.RGBA,width,height,0,_gl.RGBA,_gl.UNSIGNED_BYTE,new Uint8Array(ctx.getImageData(0,0,width,height).data.buffer));else _gl.texImage2D(w_target,0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,canvas)}else if(!cfg_def.webgl2&&(__WEBPACK_IMPORTED_MODULE_9__util_js__["L"](texture.width)||__WEBPACK_IMPORTED_MODULE_9__util_js__["L"](texture.height))){draw_resized_image(texture,draw_data,width,height,false);texture.need_resize=true}else _gl.texImage2D(w_target,0,_gl.RGBA,_gl.RGBA,_gl.UNSIGNED_BYTE,draw_data);texture.width= width;texture.height=height;if(!texture.is_movie){_gl.bindTexture(w_target,w_texture);_gl.generateMipmap(w_target)}}else if(tex_type=="ENVIRONMENT_MAP")if(update_color){for(var i=0;i<6;i++){var target=CUBE_MAP_TARGETS[i];_gl.texImage2D(_gl["TEXTURE_CUBE_MAP_"+target],0,_gl.RGBA,1,1,0,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data)}texture.width=3;texture.height=2}else{_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,false);if(image_data.width%3||image_data.height%2){m_print.error('Cubemap Image "'+filepath+'" has unsupported size: '+ image_data.width+"x"+image_data.height+". The width must be multiple"+" of three and the height - multiple of two.");return}var img_dim=image_data.width/3;if(check_cube_map_size(img_dim)){m_print.warn('Cubemap Image "'+filepath+'" has unsupported size: '+image_data.width+"x"+image_data.height+". Max available: "+cfg_lim.max_cube_map_texture_size*3+"x"+cfg_lim.max_cube_map_texture_size*2+". "+"Reduced image size will be used.");var scale_fac=cfg_lim.max_cube_map_texture_size/img_dim;var tex_dim=calc_pot_size(img_dim* scale_fac);texture.need_resize=true}else{var tex_dim=calc_pot_size(img_dim);if(!cfg_def.webgl2&&check_texture_size(3*tex_dim,2*tex_dim))texture.need_resize=true}if(texture.need_resize||cfg_def.resize_cubemap_canvas_hack)resize_cube_map_canvas(texture,image_data,img_dim,tex_dim);else resize_cube_map(texture,image_data,tex_dim,img_dim);if(m_debug_check.ff_cubemap_out_of_memory()){m_print.warn("Firefox detected, setting max cubemap size to 256, use canvas for resizing.");resize_cube_map_canvas(texture, image_data,img_dim,m_compat.NVIDIA_OLD_GPU_CUBEMAP_MAX_SIZE)}texture.width=3*tex_dim;texture.height=2*tex_dim;_gl.generateMipmap(w_target)}else if(tex_type=="NODE_TEX"){_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL,false);_gl.texImage2D(w_target,0,_gl.RGBA,image_data.width,image_data.height,0,_gl.RGBA,_gl.UNSIGNED_BYTE,image_data.data);texture.width=image_data.width;texture.height=image_data.height}_gl.bindTexture(w_target,null)}function create_oncanplay_handler(tex){tex.video_file.oncanplay=function(){if(video_update_is_available(tex))update_video_texture(tex)}} function prepare_npot_texture(tex_target){_gl.texParameteri(tex_target,_gl.TEXTURE_WRAP_S,_gl.CLAMP_TO_EDGE);_gl.texParameteri(tex_target,_gl.TEXTURE_WRAP_T,_gl.CLAMP_TO_EDGE);_gl.texParameteri(tex_target,_gl.TEXTURE_MAG_FILTER,_gl.LINEAR);_gl.texParameteri(tex_target,_gl.TEXTURE_MIN_FILTER,_gl.LINEAR)}exports.calc_pot_size=calc_pot_size;function calc_pot_size(num){if(__WEBPACK_IMPORTED_MODULE_9__util_js__["L"](num)){var size=Math.pow(2,(num|0).toString(2).length);return __WEBPACK_IMPORTED_MODULE_9__util_js__["M"](size, 2,cfg_lim.max_texture_size)}return num}function get_image2d_format(texture){var format;switch(texture.type){case exports.TT_RGBA_INT:format=_gl.RGBA;break;case exports.TT_RGB_INT:format=_gl.RGB;break;case exports.TT_RGBA_FLOAT:format=_gl.RGBA;break;case exports.TT_RGB_FLOAT:format=_gl.RGB;break;case exports.TT_DEPTH:format=_gl.DEPTH_COMPONENT;break;default:m_assert.panic("Wrong texture type");break}return format}function get_image2d_iformat(texture){var format;switch(texture.type){case exports.TT_RGBA_INT:format= cfg_def.webgl2?_gl.RGBA8:_gl.RGBA;break;case exports.TT_RGB_INT:format=cfg_def.webgl2?_gl.RGB8:_gl.RGB;break;case exports.TT_RGBA_FLOAT:format=cfg_def.webgl2?_gl.RGBA32F:_gl.RGBA;break;case exports.TT_RGB_FLOAT:format=cfg_def.webgl2?_gl.RGB8:_gl.RGB;break;case exports.TT_DEPTH:format=cfg_def.webgl2?get_depth_format(cfg_lim.depth_bits):_gl.DEPTH_COMPONENT;break;default:m_assert.panic("Wrong texture type");break}return format}function get_depth_format(depth_bits){var format;switch(depth_bits){case 16:format= _gl.DEPTH_COMPONENT16;break;case 24:format=_gl.DEPTH_COMPONENT24;break;case 32:format=_gl.DEPTH_COMPONENT32F;break;default:format=_gl.DEPTH_COMPONENT24;break}return format}function get_image2d_type(texture){var type;switch(texture.type){case exports.TT_RGBA_INT:type=_gl.UNSIGNED_BYTE;break;case exports.TT_RGB_INT:type=_gl.UNSIGNED_BYTE;break;case exports.TT_RGBA_FLOAT:type=_gl.FLOAT;break;case exports.TT_RGB_FLOAT:type=_gl.FLOAT;break;case exports.TT_DEPTH:type=_gl.UNSIGNED_INT;break;default:m_assert.panic("Wrong texture type"); break}return type}function delete_texture(tex){if(tex.w_texture)_gl.deleteTexture(tex.w_texture);var ind=_img_textures_cache.textures.indexOf(tex);if(ind!=-1){_img_textures_cache.textures.splice(ind,1);_img_textures_cache.loaded_status.splice(ind,1)}}exports.is_texture=function(tex){if(tex&&(tex.w_texture||tex.w_renderbuffer))return true;else return false};exports.is_renderbuffer=is_renderbuffer;function is_renderbuffer(tex){if(tex&&tex.w_renderbuffer)return true;else return false}exports.is_float= function(tex){if(tex.type==exports.TT_RGBA_FLOAT||tex.type==exports.TT_RGB_FLOAT)return true;else return false};exports.get_texture_texel_size=function(tex){var size=0;switch(tex.type){case exports.TT_RGBA_INT:case exports.TT_RGB_INT:size=4;break;case exports.TT_RGBA_FLOAT:case exports.TT_RGB_FLOAT:size=32;break;case exports.TT_DEPTH:size=3;break;case exports.TT_RB_RGBA:case exports.TT_RB_DEPTH:size=2;break;case exports.TT_RB_RGBA_MS:size=4*cfg_def.msaa_samples;break;case exports.TT_RB_DEPTH_MS:size= 3*cfg_def.msaa_samples;break}return size};function check_texture_size(width,height){return width>cfg_lim.max_texture_size||height>cfg_lim.max_texture_size}function check_cube_map_size(size){return size>cfg_lim.max_cube_map_texture_size}exports.cleanup=function(){if(!cfg_def.seq_video_fallback)for(var data_id in _video_textures_cache)for(var tex in _video_textures_cache[data_id]){_video_textures_cache[data_id][tex].video_file.pause();_video_textures_cache[data_id][tex].video_file.src="";_video_textures_cache[data_id][tex].video_file.load()}_img_textures_cache.textures.length= 0;_img_textures_cache.loaded_status.length=0;_canvas_textures_cache={};_video_textures_cache={}};exports.pause=function(){for(var data_id in _video_textures_cache)for(var vtex_name in _video_textures_cache[data_id]){var vtex=_video_textures_cache[data_id][vtex_name];if(!video_is_played(vtex))continue;pause_video(vtex)}};exports.reset=function(){for(var data_id in _video_textures_cache)for(var vtex_name in _video_textures_cache[data_id]){var vtex=_video_textures_cache[data_id][vtex_name];reset_video(vtex)}}; exports.play=function(resume_stopped_only){for(var data_id in _video_textures_cache)for(var vtex_name in _video_textures_cache[data_id]){var vtex=_video_textures_cache[data_id][vtex_name];if(resume_stopped_only&&!vtex.video_was_stopped)continue;play_video(vtex)}};exports.get_video_texture=get_video_texture;function get_video_texture(vtex_name,data_id){if(data_id in _video_textures_cache&&vtex_name in _video_textures_cache[data_id])return _video_textures_cache[data_id][vtex_name];return null}exports.video_allow_nla= video_allow_nla;function video_allow_nla(vtex){return vtex.use_nla}exports.play_video=play_video;function play_video(vtex){if(vtex.video_file)vtex.video_file.play();else if(vtex.seq_video)vtex.seq_video_played=true;vtex.video_was_stopped=false}exports.pause_video=pause_video;function pause_video(vtex){if(vtex.video_file)vtex.video_file.pause();else if(vtex.seq_video)vtex.seq_video_played=false;vtex.video_was_stopped=true}exports.reset_video=reset_video;function reset_video(vtex){if(vtex.video_file)vtex.video_file.currentTime= vtex.frame_offset/vtex.fps;else if(vtex.seq_video){vtex.seq_cur_frame=video_frame_to_seq_frame(vtex,vtex.frame_offset);update_seq_video_texture(vtex)}}exports.set_frame_video=function(vtex_name,frame,data_id){if(data_id in _video_textures_cache&&vtex_name in _video_textures_cache[data_id]){var vtex=_video_textures_cache[data_id][vtex_name];if(vtex.video_file)vtex.video_file.currentTime=frame/vtex.fps;else if(vtex.seq_video){vtex.seq_cur_frame=frame;update_seq_video_texture(vtex)}return true}else return false}; exports.video_is_played=video_is_played;function video_is_played(vtex){if(vtex.video_file)return!vtex.video_file.paused;else if(vtex.seq_video)return vtex.seq_video_played;else return false}exports.video_update_is_available=video_update_is_available;function video_update_is_available(vtex){if(!vtex.video_file&&!vtex.seq_video)return 0;if(vtex.video_file)return vtex.video_file.readyState>=2;else return true}exports.video_get_current_frame=function(vtex){if(!vtex.video_file&&!vtex.seq_video)return 0; if(vtex.video_file)return Math.round(vtex.video_file.currentTime*vtex.fps);else return vtex.seq_cur_frame};exports.video_get_start_frame=function(vtex){if(!vtex.video_file&&!vtex.seq_video)return 0;if(vtex.video_file)return vtex.frame_offset;else return video_frame_to_seq_frame(vtex,vtex.frame_offset)};exports.video_get_end_frame=function(vtex){if(!vtex.video_file&&!vtex.seq_video)return 0;var duration=Math.min(vtex.frame_duration,vtex.movie_length-vtex.frame_offset);if(vtex.video_file)return vtex.frame_offset+ duration;else return video_frame_to_seq_frame(vtex,vtex.frame_offset+duration)};exports.seq_video_get_discrete_timemark=function(vtex,time){return Math.round(time*vtex.seq_fps*(m_time.get_framerate()/vtex.fps))};exports.video_get_duration=function(vtex){return Math.min(vtex.frame_duration,vtex.movie_length-vtex.frame_offset)};exports.video_frame_to_seq_frame=video_frame_to_seq_frame;function video_frame_to_seq_frame(vtex,frame){return Math.round(frame*vtex.seq_movie_length/vtex.movie_length)}exports.get_canvas_context_by_object= function(object,texture_name){var texture=get_texture_by_name(object,texture_name);if(texture&&texture.source=="CANVAS")return texture.canvas_context;else return null};exports.get_texture_by_name=get_texture_by_name;function get_texture_by_name(object,texture_name){if(m_obj_util.is_dynamic(object))return get_texture_by_name_obj(object,texture_name);else{var objects=object.meta_objects;for(var i=0;i=0)if(left_elem){if(is_color_ramp)var cur_dist=curr_pos- left_elem["position"];else var cur_dist=curr_pos-elements[i][1][0];if(dist<=cur_dist)left_elem=elements[i]}else left_elem=elements[i]}return left_elem}function find_right_elem(elements,curr_pos,is_color_ramp){var right_elem=null;for(var i=0;i=0)if(right_elem){if(is_color_ramp)var cur_dist=right_elem["position"]-curr_pos;else var cur_dist=right_elem[1][0]-curr_pos;if(dist<= cur_dist)right_elem=elements[i]}else right_elem=elements[i]}return right_elem}exports.extract_vec_curves_data=function(nodes,points_num){var _vec3_tmp=new Float32Array(3);var vec=new Float32Array(3);var textures=[];for(var q=0;q2){if(curve_handle_types[0]=="AUTO"){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](bezts[0][2],bezts[0][1],_vec3_tmp);var hlen=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["length"](_vec3_tmp);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](bezts[1][0],vec);if(vec[0]FLT_EPSILON){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["scale"](vec,hlen/nlen,vec);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["add"](bezts[0][1],vec,bezts[0][2]);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](bezts[0][1],vec,bezts[0][0])}}var a=bezts.length-1;if(curve_handle_types[0]=="AUTO"){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](bezts[a][0], bezts[a][1],_vec3_tmp);var hlen=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["length"](_vec3_tmp);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["copy"](bezts[a-1][2],vec);if(vec[0]>bezts[a][1][0])vec[0]=bezts[a][1][0];__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](vec,bezts[a][1],vec);var nlen=__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["length"](vec);if(nlen>FLT_EPSILON){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["scale"](vec,hlen/nlen, vec);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["add"](bezts[a][1],vec,bezts[a][0]);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_vec3_js__["subtract"](bezts[a][1],vec,bezts[a][2])}}}for(var a=0;atimeout.expire_time){_timeouts.splice(i,1);i--;timeout.callback()}}for(var i=0;i<_animators.length;i++){var animator=_animators[i];var time_amount=1-(animator.expire_time-_timeline)/animator.duration;time_amount=Math.min(time_amount,1);var value=animator.from+time_amount*(animator.to-animator.from);animator.callback(value);if(time_amount== 1){_animators.splice(i,1);i--}}};exports.get_timeline=get_timeline;function get_timeline(){return _timeline}function get_timeout_id(){_timeout_counter++;return _timeout_counter}function get_animation_id(){_animator_counter++;return _animator_counter}exports.set_delta=function(delta){_delta_from_prev_frame=delta};exports.get_delta=function(){return _delta_from_prev_frame};exports.set_timeout=function(callback,time){var id=get_timeout_id();var timeout={id:id,callback:callback,expire_time:_timeline+ (performance.now()-_timeline_epoch+time)/1E3};_timeouts.push(timeout);return id};exports.clear_timeout=function(id){for(var i=0;i<_timeouts.length;i++){var timeout=_timeouts[i];if(timeout.id==id){_timeouts.splice(i,1);break}}};exports.clear_animation=function(id){for(var i=_animators.length;i--;){var animator=_animators[i];if(animator.id==id){_animators.splice(i,1);break}}};exports.animate=function(from,to,timeout,anim_cb){var duration=timeout/1E3;var id=get_animation_id();var animator={id:id,callback:anim_cb, from:from,to:to,expire_time:_timeline+duration,duration:duration};_animators.push(animator);anim_cb(from);return id};exports.reset=function(id){_timeline=0;_timeline_epoch=0;_timeouts.length=0;_animators.length=0;_timeout_counter=0;_animator_counter=0};exports.get_framerate=get_framerate;function get_framerate(){if(m_cfg.animation.framerate!==-1)return m_cfg.animation.framerate;else return _framerate}exports.set_framerate=function(value){_framerate=value};exports.get_frame=function(timeline){return timeline* get_framerate()}}var int_time_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__time",Int_time);__webpack_exports__["a"]=int_time_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_3__debug_telemetry_js__=__webpack_require__(63); var __WEBPACK_IMPORTED_MODULE_4__ipc_js__=__webpack_require__(87);var __WEBPACK_IMPORTED_MODULE_5__obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_6__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_8__scenes_js__=__webpack_require__(10);var __WEBPACK_IMPORTED_MODULE_9__subscene_js__=__webpack_require__(11);var __WEBPACK_IMPORTED_MODULE_10__transform_js__=__webpack_require__(13);var __WEBPACK_IMPORTED_MODULE_11__tsr_js__= __webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_12__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_14__version_js__=__webpack_require__(37);var __WEBPACK_IMPORTED_MODULE_15__navmesh_js__=__webpack_require__(73);var __WEBPACK_IMPORTED_MODULE_16__batch_js__=__webpack_require__(16);function Int_physics(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_cfg= Object(__WEBPACK_IMPORTED_MODULE_2__config_js__["a"])(ns);var m_debug_telemetry=Object(__WEBPACK_IMPORTED_MODULE_3__debug_telemetry_js__["a"])(ns);var m_ipc=Object(__WEBPACK_IMPORTED_MODULE_4__ipc_js__["a"])(ns);var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_5__obj_util_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_6__print_js__["a"])(ns);var m_scs=Object(__WEBPACK_IMPORTED_MODULE_8__scenes_js__["a"])(ns);var m_subs=Object(__WEBPACK_IMPORTED_MODULE_9__subscene_js__["a"])(ns);var m_trans= Object(__WEBPACK_IMPORTED_MODULE_10__transform_js__["a"])(ns);var m_navmesh=Object(__WEBPACK_IMPORTED_MODULE_15__navmesh_js__["a"])(ns);var m_batch=Object(__WEBPACK_IMPORTED_MODULE_16__batch_js__["a"])(ns);var cfg_phy=m_cfg.physics;var cfg_def=m_cfg.defaults;var cfg_ldr=m_cfg.assets;var _phy_fps=0;var _workers=[];var _scenes=[];var _bounding_objects={};var _bounding_objects_arr=[];var _collision_ids=["ANY"];var _unique_counter={body:0,constraint:0,ray_test:0};var _vec3_tmp=new Float32Array(3);var _vec3_tmp2= new Float32Array(3);var _quat_tmp=new Float32Array(4);var _tsr_tmp=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["b"]();var _tsr_tmp2=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["b"]();var VT_CHASSIS=10;var VT_HULL=20;exports.init_scene_physics=function(scene){scene._physics={worker_loaded:false,bundles:[],ray_tests:{},ray_tests_arr:[]};var path=cfg_phy.uranium_path;if(cfg_ldr.prevent_caching)path+="?v="+Object(__WEBPACK_IMPORTED_MODULE_14__version_js__["c"])();m_print.log("%cLOAD PHYSICS","color: #0a0",cfg_phy.use_workers? "Using Separate Worker Thread,":"Using Same Thread,","Max FPS: "+cfg_phy.max_fps);m_print.log("%cPHYSICS PATH","color: #0a0",path);var worker=m_ipc.create_worker(path,!cfg_phy.use_workers);m_ipc.attach_handler(worker,process_message);_workers.push(worker);_scenes.push(scene);if(cfg_phy.ping)setInterval(function(){m_ipc.post_msg(worker,m_ipc.OUT_PING,performance.now())},1E3)};exports.check_worker_loaded=function(scene){if(scene._physics)return scene._physics.worker_loaded;else return true};exports.cleanup= function(){for(var i=0;i<_workers.length;i++)m_ipc.terminate(_workers[i]);_workers.length=0;_scenes.length=0;_bounding_objects={};_bounding_objects_arr.length=0;_collision_ids=["ANY"];for(var cnt in _unique_counter)_unique_counter[cnt]=0};function add_compound_children(parent,container){var children=parent.cons_descends;for(var i=0;i0){var subs=m_scs.get_subs(scene,m_subs.MAIN_OPAQUE);var wind=__WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_vec3_js__["length"](subs.wind)||1;m_ipc.post_msg(_workers[i],m_ipc.OUT_SET_WATER_TIME,subs.time*wind)}}};function update_worker(worker,timeline,delta){if(worker&& m_ipc.is_fallback(worker))m_ipc.post_msg(worker,m_ipc.OUT_UPDATE_WORLD,timeline,delta);for(var i=0;i<_bounding_objects_arr.length;i++){var obj=_bounding_objects_arr[i];var phy=obj.physics;if(phy.simulated&&phy.curr_time){if(m_ipc.is_fallback(worker))var d=timeline-phy.curr_time;else var d=performance.now()/1E3-phy.curr_time;d=Math.min(d,10*1/cfg_phy.max_fps);d-=1/cfg_phy.max_fps;if(cfg_def.no_phy_interp_hack)d=0;var tsr=_tsr_tmp;__WEBPACK_IMPORTED_MODULE_11__tsr_js__["n"](phy.curr_tsr,d,phy.linvel, phy.angvel,_tsr_tmp);m_trans.set_tsr(obj,tsr);m_trans.update_transform(obj);sync_transform(obj);if(obj.vehicle)update_prop_transforms(obj);if(obj.vehicle&&obj.vehicle.steering_wheel)update_steering_wheel_coords(obj);if(obj.vehicle&&obj.vehicle.speedometer)update_speedometer(obj);if(obj.vehicle&&obj.vehicle.tachometer)update_tachometer(obj)}}m_ipc.post_msg_arr(worker)}function update_prop_transforms(obj_chassis_hull){var obj_props=obj_chassis_hull.vehicle.props;var chass_hull_tsr=obj_chassis_hull.render.world_tsr; var prop_tsr=_tsr_tmp;for(var i=0;i0?-1:1;var angle=Math.acos(cos)*sign;return angle}}();var init_floater=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_vec3_js__["create"]();var _tsr_tmp=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["b"]();return function init_floater(obj,worker){var floating_factor=obj.floater.floating_factor;var water_lin_damp=obj.floater.water_lin_damp;var water_rot_damp=obj.floater.water_rot_damp;var body_id=obj.physics.body_id;m_ipc.post_msg(worker,m_ipc.OUT_APPEND_FLOATER, body_id,floating_factor,water_lin_damp,water_rot_damp);if(obj.floater.bobs){var bob_objs=obj.floater.bobs;for(var i=0;i0&&phy.is_ghost==false)return true; else return false};exports.has_simulated_physics=function(obj){var phy=obj.physics;if(phy&&phy.simulated)return true;else return false};exports.set_gravity=function(obj,grav_x,grav_y,grav_z){var body_id=obj.physics.body_id;var worker=find_worker_by_body_id(body_id);m_ipc.post_msg(worker,m_ipc.OUT_SET_GRAVITY,body_id,grav_x,grav_y,grav_z)};var process_rigid_body_joints=function(){var _quat_tmp=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["create"]();var _tsr_tmp=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["b"](); var _tsr_tmp2=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["b"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_vec3_js__["create"]();return function process_rigid_body_joints(obj){if(has_constraint(obj))return;for(var i=0;ibody_id_b&&!has_pair(pairs,body_id_b,body_id_a)){pairs.push([body_id_b,body_id_a]);pair_results.push(false)}}m_ipc.post_msg(worker,m_ipc.OUT_ACTIVATE,body_id_a);m_ipc.post_msg(worker,m_ipc.OUT_APPEND_COLLISION_TEST,pairs,test.calc_pos_norm)}function has_pair(pairs,body_id_a,body_id_b){for(var i=0;ivehicle.max_speed_angle)angle=vehicle.max_speed_angle;var rotation=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["setAxisAngle"](sp_axis_world,-angle,_quat_tmp);var sp_obj_quat=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["g"](sp_obj.render.world_tsr,_quat_tmp2);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["multiply"](rotation, sp_obj_quat,sp_obj_quat);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["normalize"](sp_obj_quat,sp_obj_quat);__WEBPACK_IMPORTED_MODULE_11__tsr_js__["r"](sp_obj_quat,sp_obj.render.world_tsr);m_trans.update_transform(sp_obj)}}();var update_tachometer=function(){var _quat_tmp=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["create"]();var _quat_tmp2=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["create"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_vec3_js__["create"](); return function update_tachometer(obj_chassis){var vehicle=obj_chassis.vehicle;var tach_obj=vehicle.tachometer;if(!tach_obj)return;var tach_tsr=obj_chassis.vehicle.tachometer_tsr;var tach_axis=obj_chassis.vehicle.tachometer_axis;__WEBPACK_IMPORTED_MODULE_11__tsr_js__["q"](obj_chassis.render.world_tsr,tach_tsr,tach_obj.render.world_tsr);var tach_axis_world=_vec3_tmp;__WEBPACK_IMPORTED_MODULE_11__tsr_js__["y"](tach_axis,obj_chassis.render.world_tsr,tach_axis_world);var rotation=_quat_tmp;__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["setAxisAngle"](tach_axis_world, -Math.abs(vehicle.engine_force)*vehicle.delta_tach_angle,rotation);var tach_obj_quat=__WEBPACK_IMPORTED_MODULE_11__tsr_js__["g"](tach_obj.render.world_tsr,_quat_tmp2);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["multiply"](rotation,tach_obj_quat,tach_obj_quat);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["normalize"](tach_obj_quat,tach_obj_quat);__WEBPACK_IMPORTED_MODULE_11__tsr_js__["r"](tach_obj_quat,tach_obj.render.world_tsr);m_trans.update_transform(tach_obj)}}();exports.is_vehicle_chassis= is_vehicle_chassis;function is_vehicle_chassis(obj){return obj.is_vehicle&&obj.vehicle_settings.part=="CHASSIS"}exports.is_vehicle_hull=is_vehicle_hull;function is_vehicle_hull(obj){return obj.is_vehicle&&obj.vehicle_settings.part=="HULL"}exports.is_navigation_mesh=is_navigation_mesh;function is_navigation_mesh(obj){return obj.physics_settings.physics_type=="NAVMESH"}exports.is_car_wheel=function(obj){if(!obj.is_vehicle)return false;var part=obj.vehicle_settings.part;if(part=="WHEEL_FRONT_LEFT"|| part=="WHEEL_FRONT_RIGHT"||part=="WHEEL_BACK_LEFT"||part=="WHEEL_BACK_RIGHT")return true;else return false};exports.is_boat_bob=function(obj){if(!obj.is_vehicle)return false;var part=obj.vehicle_settings.part;if(part=="BOB")return true;else return false};exports.is_floater_bob=function(obj){if(!obj.is_floating)return false;var part=obj.floating_settings.part;if(part=="BOB")return true;else return false};exports.is_vehicle_steering_wheel=function(obj){if(obj.is_vehicle&&obj.vehicle_settings.part== "STEERING_WHEEL")return true;else return false};exports.is_vehicle_speedometer=function(obj){if(obj.is_vehicle&&obj.vehicle_settings.part=="SPEEDOMETER")return true;else return false};exports.is_vehicle_tachometer=function(obj){if(obj.is_vehicle&&obj.vehicle_settings.part=="TACHOMETER")return true;else return false};exports.get_vehicle_speed=function(obj){var vehicle=obj.vehicle;return vehicle.speed};exports.wheel_index=function(vehicle_part){switch(vehicle_part){case "WHEEL_FRONT_RIGHT":return 0; case "WHEEL_FRONT_LEFT":return 1;case "WHEEL_BACK_LEFT":return 2;case "WHEEL_BACK_RIGHT":return 3}};exports.has_character_physics=function(obj){return obj.physics&&obj.physics.is_character};exports.is_floater_main=is_floater_main;function is_floater_main(obj){return obj.is_floating&&obj.floating_settings.part=="MAIN_BODY"}exports.get_fps=function(){return _phy_fps};exports.debug_workers=function(){for(var i=0;i<_workers.length;i++){var worker=_workers[i];m_ipc.post_msg(worker,m_ipc.OUT_DEBUG)}};exports.remove_object= function(obj){var body_id=obj.physics.body_id;if(obj.physics.type=="BOUNDING"){var ind=_bounding_objects_arr.indexOf(obj);if(ind==-1)m_print.error("Object "+obj.name+" doesn't have bounding physics");delete _bounding_objects[body_id];_bounding_objects_arr.splice(ind,1)}var worker=find_worker_by_body_id(body_id);var scene=find_scene_by_worker(worker);remove_collision_pairs_by_id(scene,worker,body_id);if(has_collision_impulse_test(obj))clear_collision_impulse_test(obj);var bundles=scene._physics.bundles; for(var i=0;i0&&(phy_set.physics_type=="DYNAMIC"||phy_set.physics_type=="RIGID_BODY")}}var int_physics_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__physics", Int_physics);__webpack_exports__["a"]=int_physics_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__boundings_js__=__webpack_require__(25);var __WEBPACK_IMPORTED_MODULE_3__util_generator_js__=__webpack_require__(31);var __WEBPACK_IMPORTED_MODULE_4__extensions_js__=__webpack_require__(28);var __WEBPACK_IMPORTED_MODULE_5__print_js__= __webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_7__tbn_js__=__webpack_require__(36);var __WEBPACK_IMPORTED_MODULE_8__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_9__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec4_js__=__webpack_require__(7);function Int_geometry(ns,exports){var m_assert= Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_ext=Object(__WEBPACK_IMPORTED_MODULE_4__extensions_js__["a"])(ns);var m_generator=Object(__WEBPACK_IMPORTED_MODULE_3__util_generator_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_5__print_js__["a"])(ns);var _tbn_tmp=__WEBPACK_IMPORTED_MODULE_7__tbn_js__["c"]();var _tbn_tmp2=__WEBPACK_IMPORTED_MODULE_7__tbn_js__["c"]();var _tbn_tmp3=__WEBPACK_IMPORTED_MODULE_7__tbn_js__["c"]();var _vec3_tmp=new Float32Array(3);var _vec3_tmp2= new Float32Array(3);var _vec3_tmp3=new Float32Array(3);var _quat_tmp=__WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_quat_js__["create"]();var _tsr_tmp=__WEBPACK_IMPORTED_MODULE_8__tsr_js__["b"]();var MAX_SUBMESH_LENGTH=256*256;var COMB_SORT_JUMP_COEFF=1.247330950103979;var POS_NUM_COMP=3;var NOR_NUM_COMP=3;var COL_NUM_COMP=3;var TCO_NUM_COMP=2;var SHD_TAN_NUM_COMP=3;var INFLUENCE_NUM_COMP=4;exports.DM_TRIANGLES=10;exports.DM_DYNAMIC_TRIANGLES=20;exports.SORT_NUMERIC=0;exports.SORT_STRING=1;exports.DM_DEFAULT= exports.DM_TRIANGLES;var _gl=null;var VBO_FLOAT="float";var VBO_SHORT="short";var VBO_UBYTE="unsigned_byte";exports.VBO_FLOAT=VBO_FLOAT;exports.VBO_SHORT=VBO_SHORT;exports.VBO_UBYTE=VBO_UBYTE;exports.setup_context=function(gl){_gl=gl};function init_attr_pointer(){var p={length:0,frames:1,num_comp:0,offset:0,divisor:0};return p}exports.submesh_to_bufs_data=function(submesh,draw_mode,vc_usage){if(is_long_submesh(submesh))submesh_drop_indices(submesh);var indices=submesh.indices;var base_length=submesh.base_length; var va_frames=submesh.va_frames;var va_common={};for(var attr_name in submesh.va_common)if(!(attr_name in vc_usage)||vc_usage[attr_name].generate_buffer)va_common[attr_name]=submesh.va_common[attr_name];var bufs_data=init_bufs_data();if(submesh.shape_keys.length>0)submesh_init_shape_keys(submesh,va_frames[0]);generate_bufs_data_arrays(bufs_data,indices,va_frames,va_common,base_length,submesh.instanced_array_data);update_draw_mode(bufs_data,draw_mode);update_gl_buffers(bufs_data);bufs_data.shape_keys= submesh.shape_keys;return bufs_data};exports.submesh_init_shape_keys=submesh_init_shape_keys;function submesh_init_shape_keys(submesh,frame,shape_key_values){var f_a_tbn=frame["a_tbn"];var f_a_pos=frame["a_position"];var pos_length=f_a_pos.length;var count=submesh.shape_keys.length;if(shape_key_values){var a_pos=submesh.shape_keys[0].geometry["a_position"];for(var j=0;jMAX_SUBMESH_LENGTH){if(m_ext.get_elem_index_uint())return false;return true}return false}exports.is_indexed=is_indexed;function is_indexed(submesh){if(submesh.indices.length>0)return true;else return false}exports.submesh_drop_indices=submesh_drop_indices; function submesh_drop_indices(submesh,count,is_manually_dropped){if(!is_indexed(submesh))return submesh;count=count||1;if(!is_manually_dropped)m_print.log('%cDEBUG max vertices exceeded for indexed submesh "'+submesh.name+'": '+submesh.base_length*count+", will use drawArrays","color: #aa0");var indices=submesh.indices;var base_length=submesh.base_length;var va_common=submesh.va_common;var va_frames=submesh.va_frames;for(var name in va_common){var arr=va_common[name];var nc=num_comp(arr,base_length); va_common[name]=expand_vertex_array_i(indices,arr,nc)}for(var i=0;i1){p=pointers[name+"_next"]=init_attr_pointer();p.length=len;p.frames=frames_count;p.num_comp=ncomp;p.offset=offsets[type]+len}for(var i=0;i0)__WEBPACK_IMPORTED_MODULE_8__tsr_js__["z"](shade_tangs,transform,shade_tangs,0)}var au_center_pos=submesh.va_common["au_center_pos"];if(au_center_pos&&au_center_pos.length)__WEBPACK_IMPORTED_MODULE_8__tsr_js__["F"](au_center_pos,transform,au_center_pos,0);bounding_data_apply_transform(submesh.submesh_bd,transform);return submesh};exports.submesh_apply_particle_transform=function(submesh,transform){var au_center_pos=submesh.va_common["au_center_pos"]; if(au_center_pos&&au_center_pos.length){var cen_pos_transformed=new Float32Array(au_center_pos);__WEBPACK_IMPORTED_MODULE_8__tsr_js__["F"](cen_pos_transformed,transform,cen_pos_transformed,0);for(var i=0;i0)for(var i=0;i0)for(var j=0;jMAX_SUBMESH_LENGTH&&!m_ext.get_elem_index_uint())submesh_drop_indices(src_submesh,count);var indices=src_submesh.indices;var base_length= src_submesh.base_length;var va_common=src_submesh.va_common;var va_frames=src_submesh.va_frames;for(var param in params){var param_len=params[param].length;var len=param_len*base_length;va_common[param]=new Float32Array(len);for(var i=0;i0)use_shape_keys=true;for(var i=0;i1&&!use_shape_keys){var va_frame0=submesh.va_frames[0];var va_frame={};for(var prop in va_frame0)va_frame[prop]= new Float32Array(va_frame0[prop]);submesh.va_frames.push(va_frame)}if(has_attr(attr_names,"a_polyindex")){submesh_drop_indices(submesh,1,true);submesh.va_common["a_polyindex"]=extract_polyindices(submesh)}submesh_bd_to_b4w(bsub["boundings"],submesh.submesh_bd);return submesh}function submesh_bd_to_b4w(submesh_bd,bd){bd.bb_local=__WEBPACK_IMPORTED_MODULE_2__boundings_js__["w"]();bd.bb_local.max_x=submesh_bd["bb"]["max_x"];bd.bb_local.max_y=submesh_bd["bb"]["max_y"];bd.bb_local.max_z=submesh_bd["bb"]["max_z"]; bd.bb_local.min_x=submesh_bd["bb"]["min_x"];bd.bb_local.min_y=submesh_bd["bb"]["min_y"];bd.bb_local.min_z=submesh_bd["bb"]["min_z"];var bbr_data=submesh_bd["rbb"];var cov_axis_x=submesh_bd["caxis_x"];var cov_axis_y=submesh_bd["caxis_y"];var cov_axis_z=submesh_bd["caxis_z"];var be_axes_len=submesh_bd["be_ax"];bd.be_local=__WEBPACK_IMPORTED_MODULE_2__boundings_js__["e"](cov_axis_x,cov_axis_y,cov_axis_z,submesh_bd["be_cen"]);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](bd.be_local.axis_x, be_axes_len[0],bd.be_local.axis_x);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](bd.be_local.axis_y,be_axes_len[1],bd.be_local.axis_y);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](bd.be_local.axis_z,be_axes_len[2],bd.be_local.axis_z);bd.bs_local=__WEBPACK_IMPORTED_MODULE_2__boundings_js__["B"](bd.be_local);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["copy"](bbr_data["rbb_c"],bd.bbr_local.center);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["copy"](cov_axis_x, bd.bbr_local.axis_x);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["copy"](cov_axis_y,bd.bbr_local.axis_y);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["copy"](cov_axis_z,bd.bbr_local.axis_z);var rbb_scales=bbr_data["rbb_s"];__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](bd.bbr_local.axis_x,rbb_scales[0],bd.bbr_local.axis_x);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](bd.bbr_local.axis_y,rbb_scales[1],bd.bbr_local.axis_y);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](bd.bbr_local.axis_z, rbb_scales[2],bd.bbr_local.axis_z)}function create_frame(bsub,base_length,use_tbn,use_tangent_shading,frame_index){var va_frame={};var pos_arr=new Float32Array(base_length*POS_NUM_COMP);var tbn_arr=__WEBPACK_IMPORTED_MODULE_7__tbn_js__["c"](use_tbn?base_length:0);var from_index=frame_index*base_length*POS_NUM_COMP;var to_index=from_index+base_length*POS_NUM_COMP;pos_arr.set(bsub["position"].subarray(from_index,to_index),0);if(use_tbn){from_index=frame_index*base_length;__WEBPACK_IMPORTED_MODULE_7__tbn_js__["b"](bsub["tbn"], from_index,base_length,tbn_arr)}if(use_tangent_shading){var shading_tan_arr=new Float32Array(base_length*SHD_TAN_NUM_COMP);to_index=base_length*SHD_TAN_NUM_COMP;shading_tan_arr.set(bsub["shade_tangs"].subarray(0,to_index),0);va_frame["a_shade_tangs"]=shading_tan_arr}va_frame["a_position"]=pos_arr;va_frame["a_tbn"]=tbn_arr;return va_frame}function extract_texcoords(mesh,material_index){var texcoords=null;var material=mesh["materials"][material_index];var submesh=mesh["submeshes"][material_index];if(material.texture_slots.length){var slot= material.texture_slots[0];switch(slot["texture_coords"]){case "UV":texcoords=extract_uv_layer(submesh,slot["uv_layer"]||mesh["active_uv_name"],mesh["name"]);break;case "ORCO":texcoords=generate_orco_texcoords(mesh["b4w_boundings"]["bb_src"],submesh);break}}if(texcoords===null)texcoords=new Float32Array(submesh["base_length"]*TCO_NUM_COMP);return texcoords}function extract_uv_layer(submesh,uv_name,mesh_name){var layer_len=submesh["base_length"]*TCO_NUM_COMP;var index=submesh["uv_layers"].indexOf(uv_name); if(index==-1){m_print.warn('uv layer "'+uv_name+'" for mesh "'+mesh_name+'" not found');return new Float32Array(layer_len)}var from=index*layer_len;var to=from+layer_len;return submesh["texcoord"].subarray(from,to)}function extract_orco_texcoords_nodes(mesh,submesh){var bb=mesh["b4w_boundings"]["bb_src"];var local_coords=new Float32Array(submesh["base_length"]*3);var pos=submesh["position"];var size_x=bb["max_x"]-bb["min_x"];var size_y=bb["max_y"]-bb["min_y"];var size_z=bb["max_z"]-bb["min_z"];var localco_index= 0;for(var i=0;i-1)return true;else return false}exports.extract_submesh_all_mats=function(mesh,attr_names,common_vc_usage){var submeshes=[];for(var i=0;i3?groups_num:4;var weights_buf=new Float32Array(buf_length);var bones_buf=new Uint32Array(buf_length);var res_buf=new Float32Array(INFLUENCE_NUM_COMP);var zero_weights=new Float32Array(buf_length);var zero_bones=new Uint32Array(buf_length);var zero_res=new Float32Array(INFLUENCE_NUM_COMP);for(var i=0;i1||swapped){if(gap>1)gap=Math.floor(gap/COMB_SORT_JUMP_COEFF);swapped=false;for(var i=0;gap+i1||swapped){if(gap>1)gap=Math.floor(gap/COMB_SORT_JUMP_COEFF);swapped=false;for(var i=0;gap+i1){w1=1-w1;w2=1-w2}var w0=1-w1-w2;var x=w0*x0+w1*x1+w2*x2;var y=w0*y0+w1*y1+w2*y2;var z=w0*z0+w1*z1+w2*z2;dest[0]=x;dest[1]=y;dest[2]=z;return dest}exports.gen_bb_vertices=gen_bb_vertices;function gen_bb_vertices(count){var quad=new Float32Array([0,0,0,1,1,1,1,0]);var bb_vertices=new Float32Array(count*8);for(var i=0;i1||cfg_def.safari_glow_hack){_gl.enable(_gl.POLYGON_OFFSET_FILL);_gl.polygonOffset(-2,-2);break}default:_gl.disable(_gl.POLYGON_OFFSET_FILL);_gl.cullFace(_gl.BACK)}}function clear_binded_framebuffer(subscene){if(subscene){var bitfield=(subscene.clear_color?_gl.COLOR_BUFFER_BIT:0)|(subscene.clear_depth?_gl.DEPTH_BUFFER_BIT:0);if(!bitfield)return;switch(subscene.type){case m_subs.MAIN_GLOW:var bc=BLACK_BG_COLOR;break;case m_subs.SHADOW_CAST:var bc= SHADOW_BG_COLOR;break;case m_subs.SHADOW_RECEIVE:var bc=DEPTH_BG_COLOR;break;case m_subs.COLOR_PICKING:case m_subs.COLOR_PICKING_XRAY:case m_subs.ANCHOR_VISIBILITY:var bc=COLOR_PICKING_BG_COLOR;break;case m_subs.MAIN_OPAQUE:case m_subs.OUTLINE_MASK:case m_subs.SMAA_BLENDING_WEIGHT_CALCULATION:case m_subs.SMAA_EDGE_DETECTION:var bc=BLACK_BG_COLOR;break;default:var bc=cfg_def.background_color;break}}else{var bitfield=_gl.COLOR_BUFFER_BIT|_gl.DEPTH_BUFFER_BIT;var bc=cfg_def.background_color}_gl.colorMask(true, true,true,true);_gl.depthMask(true);_gl.clearColor(bc[0],bc[1],bc[2],bc[3]);_gl.clear(bitfield)}function setup_smaa_jitter(subscene){var jitter=JITTER[_subpixel_index];var camera=subscene.camera;subscene.jitter_projection_space[0]=jitter[0]*2/camera.width;subscene.jitter_projection_space[1]=jitter[1]*2/camera.height;if(subscene.type==m_subs.SMAA_BLENDING_WEIGHT_CALCULATION)subscene.jitter_subsample_ind=SUBSAMPLE_IND[_subpixel_index]}function draw_bundle(subscene,obj_render,batch,shader){var transient_uniform_setters= shader.transient_uniform_setters;var i=transient_uniform_setters.length;while(i--){var setter=transient_uniform_setters[i];setter.fun(_gl,setter.loc,obj_render,batch)}if(shader.need_uniforms_update&&!shader.no_permanent_uniforms){if(!shader.permanent_uniform_setters.length)assign_uniform_setters(shader);var permanent_uniform_setters=shader.permanent_uniform_setters;var j=permanent_uniform_setters.length;while(j--){var setter=permanent_uniform_setters[j];setter.fun(_gl,setter.loc,obj_render,batch)}shader.need_uniforms_update= false}_gl.depthMask(batch.depth_mask);if(USE_BACKFACE_CULLING)if(batch.use_backface_culling)_gl.enable(_gl.CULL_FACE);else _gl.disable(_gl.CULL_FACE);setup_textures(batch.textures);if(subscene.type==m_subs.SKY||subscene.type==m_subs.IRRADIANCE){draw_sky(subscene,batch,shader);subscene.debug_render_calls+=6}else if(subscene.type==m_subs.ROUGHNESS_CONVOLUTION){draw_r_convolution(subscene,batch,shader);subscene.debug_render_calls+=6*5}else{_draw_batch(batch,obj_render.va_frame);subscene.debug_render_calls++}} function zsort(batch,obj_render,info,eye){var bufs_data=batch.bufs_data;var cam_shift=__WEBPACK_IMPORTED_MODULE_15__libs_gl_matrix_vec3_js__["dist"](eye,info.zsort_eye_last);var shift_param=cfg_def.alpha_sort_threshold*Math.min(info.bb_min_side,1);var batch_cam_updated=cam_shift>shift_param;if(!batch_cam_updated&&!obj_render.force_zsort)return;m_geom.update_buffers_movable(bufs_data,info,obj_render.world_tsr,eye);__WEBPACK_IMPORTED_MODULE_15__libs_gl_matrix_vec3_js__["copy"](eye,info.zsort_eye_last); obj_render.force_zsort=false}function draw_sky(subscene,batch,shader){var camera=subscene.camera;var uniforms=shader.uniforms;var color_attachment=camera.color_attachment;var w_tex=color_attachment.w_texture;var w_tar=color_attachment.w_target;var v_matrs=subscene.cube_view_matrices;for(var i=0;i<6;i++){var w_target=get_cube_target_by_id(i);if(cfg_def.clear_procedural_sky_hack){var w_target_cube=_gl.TEXTURE_CUBE_MAP;_gl.bindTexture(w_target_cube,w_tex);_gl.texImage2D(w_target,0,_gl.RGBA,1,1,0,_gl.RGBA, _gl.UNSIGNED_BYTE,SKY_HACK_COLOR)}else{_gl.uniformMatrix4fv(uniforms["u_cube_view_matrix"],false,v_matrs[i]);_gl.uniform4fv(uniforms["u_sky_tex_fac"],subscene.sky_tex_fac);_gl.uniform3fv(uniforms["u_sky_tex_color"],subscene.sky_tex_color);_gl.uniform1f(uniforms["u_sky_tex_dvar"],subscene.sky_tex_default_value);_gl.uniform3fv(uniforms["u_horizon_color"],subscene.horizon_color);_gl.uniform3fv(uniforms["u_zenith_color"],subscene.zenith_color);_gl.framebufferTexture2D(_gl.FRAMEBUFFER,_gl.COLOR_ATTACHMENT0, w_target,w_tex,0);_draw_batch(batch,0)}if(subscene.need_fog_update&&i!=CUBEMAP_BOTTOM_SIDE)update_subs_sky_fog(subscene,i)}if(cfg_def.texture_lod_available){_gl.bindTexture(w_tar,w_tex);_gl.generateMipmap(w_tar);_gl.texParameteri(w_tar,_gl.TEXTURE_MIN_FILTER,m_textures.TF_LINEAR_MIPMAP_LINEAR)}_gl.bindFramebuffer(_gl.FRAMEBUFFER,null)}function draw_r_convolution(subscene,batch,shader){var camera=subscene.camera;var uniforms=shader.uniforms;var color_attachment=camera.color_attachment;var w_tex=color_attachment.w_texture; var w_tar=color_attachment.w_target;var v_matrs=subscene.cube_view_matrices;if(cfg_def.texture_lod_available){_gl.activeTexture(_gl.TEXTURE7);_gl.bindTexture(w_tar,w_tex);_gl.generateMipmap(w_tar);_gl.texParameteri(w_tar,_gl.TEXTURE_MIN_FILTER,m_textures.TF_LINEAR_MIPMAP_LINEAR)}var maxMipLevels=5;for(var mip=0;mip1?p.length*type_size:0,num_comp:p.num_comp,divisor:p.divisor};attr_setters.push(setter)}if(Object(__WEBPACK_IMPORTED_MODULE_14__version_js__["d"])()=="DEBUG")for(var name in pointers){var vbo_type=m_geom.get_vbo_type_by_attr_name(name);var index=m_geom.search_vbo_index_by_type(bufs_data.vbo_data, vbo_type);var vbo_obj=bufs_data.vbo_data[index];var sh_pair_str=batch.shaders_info.vert+" | "+batch.shaders_info.frag;var byte_size=pointers[name].length*pointers[name].frames*m_geom.get_type_size_by_attr_name(name);m_debug.fill_vbo_garbage_info(vbo_obj.debug_id,sh_pair_str,name,byte_size,name in attributes)}if(cfg_def.allow_vao_ext)assign_vao(batch)};exports.assign_vao=assign_vao;function assign_vao(batch){var vao_ext=m_ext.get_vertex_array_object();var attr_setters=batch.attribute_setters;var bufs_data= batch.bufs_data;var pointers=bufs_data.pointers;batch.vaos.length=0;var frames=1;for(var name in pointers)frames=Math.max(frames,pointers[name].frames);for(var i=0;i-1)return extension;else if(_supported_audio.indexOf("m4a")> -1)return"m4a";else if(_supported_audio.indexOf("oga")>-1)return"oga";else return""};exports.detect_video_container=function(extension){if(!extension)extension="webm";if(_supported_video.indexOf(extension)>-1)return extension;else if(_supported_video.indexOf("m4v")>-1)return"m4v";else if(_supported_video.indexOf("webm")>-1)return"webm";else return""};exports.update_object=function(bpy_obj,obj){var speaker=bpy_obj["data"];var sfx=obj.sfx;if(!bpy_obj["data"]["sound"])return;sfx.uuid=bpy_obj["data"]["sound"]["uuid"]; sfx.filepath=bpy_obj["data"]["sound"]["filepath"];switch(speaker["b4w_behavior"]){case "POSITIONAL":case "BACKGROUND_SOUND":sfx.behavior=_wa?speaker["b4w_behavior"]:"NONE";break;case "BACKGROUND_MUSIC":sfx.behavior=_wa?check_media_element_node()&&!cfg_def.chrome_html_bkg_music_hack?"BACKGROUND_MUSIC":"BACKGROUND_SOUND":"NONE";break;default:m_assert.panic("Wrong speaker behavior");break}if(!speaker["sound"])sfx.behavior="NONE";sfx.enable_doppler=speaker["b4w_enable_doppler"];sfx.muted=speaker["muted"]; sfx.volume=speaker["volume"];sfx.pitch=speaker["pitch"];sfx.attenuation=speaker["attenuation"];sfx.dist_ref=speaker["distance_reference"];sfx.dist_max=speaker["distance_max"]||1E4;sfx.cone_angle_inner=speaker["cone_angle_inner"];sfx.cone_angle_outer=speaker["cone_angle_outer"];sfx.cone_volume_outer=speaker["cone_volume_outer"];sfx.autoplay=speaker["b4w_auto_play"];sfx.cyclic=speaker["b4w_cyclic_play"];sfx.loop=speaker["b4w_loop"];sfx.loop_start=speaker["b4w_loop_start"];sfx.loop_end=speaker["b4w_loop_end"]; sfx.delay=speaker["b4w_delay"];sfx.delay_random=speaker["b4w_delay_random"];sfx.volume_random=speaker["b4w_volume_random"];sfx.pitch_random=speaker["b4w_pitch_random"];sfx.fade_in=speaker["b4w_fade_in"];sfx.fade_out=speaker["b4w_fade_out"];_speaker_objects.push(obj)};function check_media_element_node(){if(window.MediaElementAudioSourceNode)return true;else{m_print.warn("MediaElementAudioSourceNode not found");return false}}exports.source_type=function(obj){if(obj.type!="SPEAKER")m_assert.panic("Wrong object type"); switch(obj.sfx.behavior){case "POSITIONAL":return exports.AST_ARRAY_BUFFER;case "BACKGROUND_SOUND":return exports.AST_ARRAY_BUFFER;case "BACKGROUND_MUSIC":return exports.AST_HTML_ELEMENT;case "NONE":return exports.AST_NONE;default:m_assert.panic("Wrong speaker behavior")}};exports.update_spkobj=function(obj,sound_data){var sfx=obj.sfx;switch(sfx.behavior){case "POSITIONAL":case "BACKGROUND_SOUND":case "BACKGROUND_MUSIC":sfx.src=sound_data;break;case "NONE":break;default:m_assert.panic("Wrong speaker behavior")}}; exports.play_empty_sound=function(){var source=_wa.createBufferSource();source.buffer=_wa.createBuffer(1,22050,22050);source.connect(_wa.destination);source.start(0)};exports.decode_audio_data=function(arr_buf,decode_cb,fail_cb){if(_wa)_wa.decodeAudioData(arr_buf,decode_cb,fail_cb);else fail_cb()};exports.speaker_remove=function(obj){stop(obj);obj.sfx=null;_speaker_objects.splice(_speaker_objects.indexOf(obj),1)};exports.cleanup=function(){for(var i=0;i<_speaker_objects.length;i++){var obj=_speaker_objects[i]; var sfx=obj.sfx;if(sfx.behavior=="BACKGROUND_MUSIC"){var audio_el=sfx.src;if(audio_el)audio_el.pause()}else{if(sfx.source_node)sfx.source_node.disconnect();if(sfx.source_node2)sfx.source_node2.disconnect()}}if(_active_scene&&_active_scene._sfx){var scene_sfx=_active_scene._sfx;scene_sfx.listener_last_eye[0]=0;scene_sfx.listener_last_eye[1]=0;scene_sfx.listener_last_eye[2]=0;scene_sfx.listener_velocity[0]=0;scene_sfx.listener_velocity[1]=0;scene_sfx.listener_velocity[2]=0}_active_scene=null;_speaker_objects.splice(0); _playlist=null};exports.update=function(timeline,elapsed){if(!_wa||_speaker_objects.length==0)return;for(var i=0;i<_speaker_objects.length;i++){var obj=_speaker_objects[i];var sfx=obj.sfx;var source=sfx.source_node;var curr_time=_wa.currentTime;if(!sfx.loop&&sfx.state==SPKSTATE_PLAY&&sfx.duration&&sfx.start_time+sfx.duration_playlist.active_start_time+_playlist.durations[_playlist.active]))playlist_switch_next(_playlist,timeline)};function playlist_switch_next(playlist,timeline){if(playlist.active>-1)stop(playlist.speakers[playlist.active]);if(playlist.active==-1&&playlist.random)var next=Math.round(Math.random()*(playlist.speakers.length- 1));else if(playlist.random){var advance=1+Math.round(Math.random()*(playlist.speakers.length-2));var next=(playlist.active+advance)%playlist.speakers.length}else var next=(playlist.active+1)%playlist.speakers.length;play_def(playlist.speakers[next]);playlist.active=next;playlist.active_start_time=timeline}var update_proc_chain=function(){var _quat_tmp=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_quat_js__["create"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["create"](); return function update_proc_chain(obj,scene_sfx){var sfx=obj.sfx;if(sfx.proc_chain_in)return;if(cfg_sfx.mix_mode){var filter_node=_wa.createBiquadFilter();filter_node.type="peaking"}else var filter_node=null;var fade_gnode=_wa.createGain();switch(sfx.behavior){case "POSITIONAL":var ap=_wa.createPanner();if(typeof ap.panningModel!="string"){ap.panningModel=ap.EQUALPOWER;ap.distanceModel=ap.INVERSE_DISTANCE}else{ap.panningModel="equalpower";ap.distanceModel=scene_sfx.distance_model}var pos=__WEBPACK_IMPORTED_MODULE_6__tsr_js__["j"](obj.render.world_tsr, _vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_6__tsr_js__["g"](obj.render.world_tsr,_quat_tmp);ap.setPosition(pos[0],pos[1],pos[2]);__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["copy"](pos,sfx.last_position);var orient=_vec3_tmp;__WEBPACK_IMPORTED_MODULE_7__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_7__util_js__["c"],orient);ap.setOrientation(orient[0],orient[1],orient[2]);ap.refDistance=sfx.dist_ref;ap.maxDistance=sfx.dist_max;ap.rolloffFactor=sfx.attenuation;ap.coneInnerAngle=sfx.cone_angle_inner; ap.coneOuterAngle=sfx.cone_angle_outer;ap.coneOuterGain=sfx.cone_volume_outer;var gnode=_wa.createGain();gnode.gain.value=calc_gain(sfx);if(filter_node){ap.connect(filter_node);filter_node.connect(gnode)}else ap.connect(gnode);gnode.connect(fade_gnode);sfx.proc_chain_in=ap;if(sfx.volume_random){var rand_gnode=_wa.createGain();fade_gnode.connect(rand_gnode);rand_gnode.connect(scene_sfx.proc_chain_in)}else{var rand_gnode=null;fade_gnode.connect(scene_sfx.proc_chain_in)}break;case "BACKGROUND_SOUND":var ap= null;var gnode=_wa.createGain();gnode.gain.value=calc_gain(sfx);if(filter_node){sfx.proc_chain_in=filter_node;filter_node.connect(gnode)}else sfx.proc_chain_in=gnode;gnode.connect(fade_gnode);if(sfx.volume_random){var rand_gnode=_wa.createGain();fade_gnode.connect(rand_gnode);rand_gnode.connect(scene_sfx.proc_chain_in)}else{var rand_gnode=null;fade_gnode.connect(scene_sfx.proc_chain_in)}break;case "BACKGROUND_MUSIC":var ap=null;var rand_gnode=null;var gnode=_wa.createGain();gnode.gain.value=calc_gain(sfx); if(filter_node){sfx.proc_chain_in=filter_node;filter_node.connect(gnode)}else sfx.proc_chain_in=gnode;gnode.connect(fade_gnode);fade_gnode.connect(scene_sfx.proc_chain_in);break}sfx.panner_node=ap;sfx.filter_node=filter_node;sfx.gain_node=gnode;sfx.fade_gain_node=fade_gnode;sfx.rand_gain_node=rand_gnode}}();exports.play=play;function play(obj,when,duration){var sfx=obj.sfx;if(sfx.behavior=="NONE")return;var loop=sfx.loop;var playrate=sfx.pitch;if(!(sfx.src&&(loop||duration>=0)))return;sfx.base_seed= Math.floor(5E4*Math.random());var start_time=_wa.currentTime+when;start_time=Math.max(0,start_time);sfx.start_time=start_time;sfx.state=SPKSTATE_PLAY;var scene_sfx=_active_scene._sfx;if(sfx.behavior=="POSITIONAL"&&scene_sfx.distance_model=="none")sfx.behavior="BACKGROUND_SOUND";update_proc_chain(obj,_active_scene._sfx);if(sfx.behavior=="POSITIONAL"||sfx.behavior=="BACKGROUND_SOUND"){var source=_wa.createBufferSource();source.buffer=sfx.src;source.playbackRate.value=playrate;if(loop){if(sfx.source_node)sfx.source_node.disconnect(); if(sfx.source_node2)sfx.source_node2.disconnect();source.loop=true;source.loopStart=sfx.loop_start;source.loopEnd=sfx.loop_end;if(sfx.loop_end){var source2=_wa.createBufferSource();source2.buffer=sfx.src;source2.playbackRate.value=playrate;sfx.source_node2=source2;source2.connect(sfx.proc_chain_in)}source.start(start_time);sfx.duration=0}else{var buf_dur=source.buffer?source.buffer.duration:0;if(duration>buf_dur){var to=start_time+duration+sfx.fade_out;source.loop=true;source.start(start_time);source.stop(to); sfx.duration=duration}else{source.loop=false;source.start(start_time);sfx.duration=buf_dur}}source.connect(sfx.proc_chain_in);sfx.source_node=source;schedule_onended(sfx);reset_volume_pitch_random(sfx);schedule_volume_pitch_random(sfx)}else if(sfx.behavior=="BACKGROUND_MUSIC"){m_time.clear_timeout(sfx.bgm_start_timeout);m_time.clear_timeout(sfx.bgm_stop_timeout);var start_cb=function(){fire_audio_element(obj)};if(when==0)start_cb();else sfx.bgm_start_timeout=m_time.set_timeout(start_cb,when*1E3); if(loop)sfx.duration=0;else{var el_dur=get_duration(obj);sfx.duration=el_dur}}schedule_fades(sfx,start_time)}exports.play_def=play_def;function play_def(obj){var sfx=obj.sfx;var duration=sfx.duration;var delay=sfx.delay+sfx.delay_random*Math.random();play(obj,delay,duration)}function get_gain_node(scene){if(_wa)return scene._sfx.gain_node;else return null}function get_fade_node(scene){if(_wa)return scene._sfx.fade_gain_node;else return null}function schedule_onended(sfx){var source=sfx.source_node2|| sfx.source_node;if(__WEBPACK_IMPORTED_MODULE_7__util_js__["_17"](source.onended))source.onended=function(){sfx.state=SPKSTATE_FINISH}}function reset_volume_pitch_random(sfx){if(sfx.volume_random)sfx.rand_gain_node.gain.cancelScheduledValues(sfx.start_time);if(sfx.pitch_random){sfx.source_node.playbackRate.cancelScheduledValues(sfx.start_time);if(sfx.source_node2)sfx.source_node2.playbackRate.cancelScheduledValues(sfx.start_time)}sfx.vp_rand_end_time=sfx.start_time}function schedule_volume_pitch_random(sfx){if(!(sfx.volume_random|| sfx.pitch_random))return;var rand_gnode=sfx.rand_gain_node;var source=sfx.source_node;var buf_dur=source.buffer?source.buffer.duration:0;if(!buf_dur)return;var time=sfx.start_time;_seed_tmp[0]=sfx.base_seed;for(var cnt=0;cnt=sfx.vp_rand_end_time){if(sfx.volume_random){var gain=1-__WEBPACK_IMPORTED_MODULE_7__util_js__["M"](sfx.volume_random,0,1)*Math.random();rand_gnode.gain.setTargetAtTime(gain, time,GAIN_CHANGE_DURATION)}if(sfx.pitch_random){source.playbackRate.setTargetAtTime(playrate,time,GAIN_CHANGE_DURATION);if(sfx.source_node2)sfx.source_node2.playbackRate.setTargetAtTime(playrate,time,GAIN_CHANGE_DURATION)}cnt++}time+=buf_dur/playrate}sfx.vp_rand_end_time=time-.001}function schedule_fades(sfx,from_time){if(!(sfx.fade_in||sfx.fade_out))return;var fade_gnode=sfx.fade_gain_node;fade_gnode.gain.cancelScheduledValues(from_time);if(sfx.fade_in){fade_gnode.gain.setTargetAtTime(0,from_time, GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(1,from_time+sfx.fade_in)}else fade_gnode.gain.setTargetAtTime(1,from_time,GAIN_CHANGE_DURATION);if(sfx.fade_out&&!sfx.loop){fade_gnode.gain.setTargetAtTime(1,from_time+sfx.duration,GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(0,from_time+sfx.duration+sfx.fade_out)}}function fire_audio_element(obj){var sfx=obj.sfx;var audio=sfx.src;if(audio){audio.volume=1;audio.loop=sfx.loop;sfx.source_node=sfx.source_node||_wa.createMediaElementSource(audio); sfx.source_node.connect(sfx.proc_chain_in);if(sfx.state==SPKSTATE_PLAY){if(audio.currentTime)audio.currentTime=0;audio.play()}}}function stop_audio_element(obj){var sfx=obj.sfx;var audio=sfx.src;if(audio){if(audio.currentTime)audio.currentTime=0;audio.pause()}}exports.stop=stop;function stop(sobj){if(sobj.type!="SPEAKER")m_assert.panic("Wrong object type");var sfx=sobj.sfx;if(sfx.state==SPKSTATE_FINISH){sfx.state=SPKSTATE_STOP;return}else if(sfx.state!=SPKSTATE_PLAY&&sfx.state!=SPKSTATE_PAUSE)return; var fade_gnode=sfx.fade_gain_node;var current_time=_wa.currentTime;if(sfx.fade_out){fade_gnode.gain.setTargetAtTime(fade_gnode.gain.value,current_time,GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(0,current_time+sfx.fade_out,GAIN_CHANGE_DURATION)}if(sfx.behavior=="BACKGROUND_MUSIC"){var audio_el=sfx.src;if(audio_el){var stop_cb=function(){stop_audio_element(sobj)};m_time.clear_timeout(sfx.bgm_start_timeout);m_time.clear_timeout(sfx.bgm_stop_timeout);sfx.bgm_stop_timeout=m_time.set_timeout(stop_cb, sfx.fade_out*1E3)}}else{var source=sfx.source_node;source.onended=function(){};if(sfx.durationsfx.start_time)sfx.buf_offset=calc_buf_offset(sfx,current_time);else sfx.buf_offset=0;sfx.source_node.onended=function(){};sfx.source_node.stop(0);sfx.source_node.disconnect();reset_volume_pitch_random(sfx)}sfx.state=SPKSTATE_PAUSE}function calc_buf_offset(sfx,current_time){_seed_tmp[0]=sfx.base_seed; var buf_dur=sfx.source_node.buffer.duration;var time=sfx.start_time;var playrate;while(time0){var speed_of_sound=scene_sfx.speed_of_sound;if(__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["dot"](sfx.velocity,sfx.velocity)!=0||__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["dot"](scene_sfx.listener_velocity,scene_sfx.listener_velocity)!=0){var spk_to_listener=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["subtract"](sfx.last_position, scene_sfx.listener_last_eye,_vec3_tmp);var dist=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["length"](spk_to_listener);var listener_proj=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["dot"](spk_to_listener,scene_sfx.listener_velocity)/dist;var spk_proj=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["dot"](spk_to_listener,sfx.velocity)/dist;listener_proj=-listener_proj;spk_proj=-spk_proj;var scaled_speed_of_sound=speed_of_sound/doppler_factor;listener_proj=Math.min(listener_proj, scaled_speed_of_sound);spk_proj=Math.min(spk_proj,scaled_speed_of_sound);doppler_shift=(speed_of_sound-doppler_factor*listener_proj)/(speed_of_sound-doppler_factor*spk_proj);if(!isFinite(doppler_shift))doppler_shift=0;doppler_shift=Math.min(doppler_shift,16);doppler_shift=Math.max(doppler_shift,.125);doppler_shift=__WEBPACK_IMPORTED_MODULE_7__util_js__["_51"](doppler_shift,sfx.last_doppler_shift,elapsed,DOPPLER_SMOOTH_PERIOD);sfx.source_node.playbackRate.value=doppler_shift;sfx.last_doppler_shift= doppler_shift}}}exports.listener_stride=function(){var scene_sfx=_active_scene._sfx;if(!scene_sfx)return;scene_sfx.listener_stride=true};exports.speaker_update_transform=function(obj,elapsed,upd_cnt){var sfx=obj.sfx;if(!(spk_is_active(obj)&&sfx.behavior=="POSITIONAL"))return;var pos=__WEBPACK_IMPORTED_MODULE_6__tsr_js__["j"](obj.render.world_tsr,_vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_6__tsr_js__["g"](obj.render.world_tsr,_quat_tmp);var panner=sfx.panner_node;panner.setPosition(pos[0],pos[1], pos[2]);var orient=_vec3_tmp2;__WEBPACK_IMPORTED_MODULE_7__util_js__["_34"](quat,__WEBPACK_IMPORTED_MODULE_7__util_js__["c"],orient);panner.setOrientation(orient[0],orient[1],orient[2]);if(!sfx.enable_doppler)return;var lpos=sfx.last_position;if(elapsed&&sfx.update_counter!=upd_cnt){if(!sfx.stride){var vel=sfx.velocity;vel[0]=(pos[0]-lpos[0])/elapsed;vel[1]=(pos[1]-lpos[1])/elapsed;vel[2]=(pos[2]-lpos[2])/elapsed;__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["copy"](pos,lpos);calc_doppler(sfx, _active_scene._sfx,elapsed)}else{__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["copy"](pos,lpos);sfx.stride=false}sfx.update_counter=upd_cnt}else __WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["copy"](pos,lpos)};exports.speaker_stride=function(obj){var sfx=obj.sfx;if(spk_is_active(obj)&&sfx.behavior=="POSITIONAL"&&sfx.enable_doppler)sfx.stride=true};exports.get_spk_behavior=function(obj){return obj.sfx.behavior};exports.check_active_speakers=function(){for(var i=0;i<_speaker_objects.length;i++)if(spk_is_active(_speaker_objects[i]))return true; return false};function spk_is_active(obj){var sfx=obj.sfx;if(sfx&&(sfx.state==SPKSTATE_PLAY||sfx.state==SPKSTATE_PAUSE||sfx.state==SPKSTATE_STOP||sfx.state==SPKSTATE_FINISH))return true;else return false}function calc_gain(sfx){var volume=sfx.muted?0:sfx.volume;return volume}exports.set_master_volume=function(volume){var scene_sfx=_active_scene._sfx;if(scene_sfx){scene_sfx.volume=volume;if(_wa)scene_sfx.gain_node.gain.value=calc_gain(scene_sfx)}};exports.get_master_volume=function(){var scene_sfx= _active_scene._sfx;if(scene_sfx)return scene_sfx.volume;else return 0};exports.set_volume=function(obj,volume){var sfx=obj.sfx;sfx.volume=volume;if(spk_is_active(obj))sfx.gain_node.gain.value=calc_gain(sfx)};exports.get_volume=function(obj){return obj.sfx.volume};exports.mute=function(obj,muted){obj.sfx.muted=Boolean(muted);if(spk_is_active(obj))obj.sfx.gain_node.gain.value=calc_gain(obj.sfx)};exports.is_muted=function(obj){return obj.sfx.muted};exports.mute_master=function(muted){var scene_sfx=_active_scene._sfx; if(scene_sfx){scene_sfx.muted=Boolean(muted);if(_wa)scene_sfx.gain_node.gain.value=calc_gain(scene_sfx)}};exports.is_master_muted=function(){var scene_sfx=_active_scene._sfx;if(scene_sfx)return scene_sfx.muted;else return false};exports.get_speaker_objects=function(){return _speaker_objects};exports.pause=function(){for(var i=0;i<_speaker_objects.length;i++)speaker_pause(_speaker_objects[i])};exports.resume=function(){for(var i=0;i<_speaker_objects.length;i++)speaker_resume(_speaker_objects[i])}; exports.set_compressor_params=function(scene,params){if(!(scene._sfx&&scene._sfx.compressor_node))return;var compressor=scene._sfx.compressor_node;compressor.threshold.value=params["threshold"];compressor.knee.value=params["knee"];compressor.ratio.value=params["ratio"];compressor.attack.value=params["attack"];compressor.release.value=params["release"]};exports.get_compressor_params=function(scene){if(!(scene._sfx&&scene._sfx.compressor_node))return null;var compressor=scene._sfx.compressor_node;var params= {"threshold":compressor.threshold.value,"knee":compressor.knee.value,"ratio":compressor.ratio.value,"attack":compressor.attack.value,"release":compressor.release.value};return params};exports.duck=function(obj,value,time){if(!spk_is_active(obj))return;var sfx=obj.sfx;var fade_gnode=sfx.fade_gain_node;var current_time=_wa.currentTime;fade_gnode.gain.setTargetAtTime(fade_gnode.gain.value,current_time,GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(value,current_time+time);sfx.duck_time= time};exports.unduck=function(obj){if(!spk_is_active(obj))return;var sfx=obj.sfx;var fade_gnode=sfx.fade_gain_node;var current_time=_wa.currentTime;fade_gnode.gain.setTargetAtTime(fade_gnode.gain.value,current_time,GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(1,current_time+sfx.duck_time);sfx.duck_time=0};exports.duck_master=function(value,time){if(!_wa)return;var scene_sfx=_active_scene._sfx;var fade_gnode=scene_sfx.fade_gain_node;var current_time=_wa.currentTime;fade_gnode.gain.setTargetAtTime(fade_gnode.gain.value, current_time,GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(value,current_time+time);scene_sfx.duck_time=time};exports.unduck_master=function(){if(!_wa)return;var scene_sfx=_active_scene._sfx;var fade_gnode=scene_sfx.fade_gain_node;var current_time=_wa.currentTime;fade_gnode.gain.setTargetAtTime(fade_gnode.gain.value,current_time,GAIN_CHANGE_DURATION);fade_gnode.gain.linearRampToValueAtTime(1,current_time+scene_sfx.duck_time);scene_sfx.duck_time=0};exports.apply_playlist=function(objs, delay,random){_playlist={active:-1,active_start_time:0,random:random,speakers:[],durations:[]};for(var i=0;i=bb.max_x||s_max_x<=bb.min_x||s_min_y>=bb.max_y||s_max_y<=bb.min_y||s_min_z>=bb.max_z||s_max_z<=bb.min_z){bb_new.min_x=-.1;bb_new.max_x=.1;bb_new.min_y=-.1;bb_new.max_y=.1;bb_new.min_z=-.2;bb_new.max_z=-.1;return bb_new}bb_new.min_x=Math.max(bb.min_x,s_min_x);bb_new.max_x=Math.min(bb.max_x,s_max_x);bb_new.min_y=Math.max(bb.min_y,s_min_y);bb_new.max_y=Math.min(bb.max_y,s_max_y);bb_new.min_z=Math.max(bb.min_z,s_min_z);bb_new.max_z=Math.min(bb.max_z,s_max_z);return bb_new} function stretch_bounding_box(bb,factor,bb_new){if(!bb_new)bb_new=create_bb();var size_x=bb.max_x-bb.min_x;var size_y=bb.max_y-bb.min_y;var size_z=bb.max_z-bb.min_z;bb_new.min_x=bb.min_x-.5*(factor-1)*size_x;bb_new.max_x=bb.max_x+.5*(factor-1)*size_x;bb_new.min_y=bb.min_y-.5*(factor-1)*size_y;bb_new.max_y=bb.max_y+.5*(factor-1)*size_y;bb_new.min_z=bb.min_z-.5*(factor-1)*size_z;bb_new.max_z=bb.max_z+.5*(factor-1)*size_z;return bb_new}function bounding_sphere_transform(bs,tsr,bs_new){if(!bs_new)bs_new= create_bs();__WEBPACK_IMPORTED_MODULE_0__tsr_js__["D"](bs.center,tsr,bs_new.center);var scale=__WEBPACK_IMPORTED_MODULE_0__tsr_js__["i"](tsr);bs_new.radius=bs.radius*(scale<0?-scale:scale);return bs_new}function bounding_ellipsoid_transform(be,tsr,be_new){if(!be_new)be_new=create_be();__WEBPACK_IMPORTED_MODULE_0__tsr_js__["D"](be.center,tsr,be_new.center);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.axis_x,be_new.axis_x);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.axis_y, be_new.axis_y);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.axis_z,be_new.axis_z);__WEBPACK_IMPORTED_MODULE_0__tsr_js__["y"](be_new.axis_x,tsr,be_new.axis_x);__WEBPACK_IMPORTED_MODULE_0__tsr_js__["y"](be_new.axis_y,tsr,be_new.axis_y);__WEBPACK_IMPORTED_MODULE_0__tsr_js__["y"](be_new.axis_z,tsr,be_new.axis_z);return be_new}function bounding_rot_box_transform(bb,tsr,bb_new){if(!bb_new)bb_new=create_rot_bb();__WEBPACK_IMPORTED_MODULE_0__tsr_js__["D"](bb.center,tsr,bb_new.center); __WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](bb.axis_x,bb_new.axis_x);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](bb.axis_y,bb_new.axis_y);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](bb.axis_z,bb_new.axis_z);__WEBPACK_IMPORTED_MODULE_0__tsr_js__["y"](bb_new.axis_x,tsr,bb_new.axis_x);__WEBPACK_IMPORTED_MODULE_0__tsr_js__["y"](bb_new.axis_y,tsr,bb_new.axis_y);__WEBPACK_IMPORTED_MODULE_0__tsr_js__["y"](bb_new.axis_z,tsr,bb_new.axis_z);return bb_new} function bs_from_values(radius,center){var bs=create_bs();__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](center,bs.center);bs.radius=radius;return bs}function rot_bb_from_values(bbrcen,axis_x,axis_y,axis_z,bbrscale){var bb=create_rot_bb();__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](bbrcen,bb.center);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](axis_x,bb.axis_x);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](axis_y,bb.axis_y);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](axis_z, bb.axis_z);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](bb.axis_x,bbrscale[0],bb.axis_x);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](bb.axis_y,bbrscale[1],bb.axis_y);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](bb.axis_z,bbrscale[2],bb.axis_z);return bb}function create_bs(){return{center:new Float32Array(3),radius:0}}function copy_bs(bs_from,bs_to){bs_to.center[0]=bs_from.center[0];bs_to.center[1]=bs_from.center[1];bs_to.center[2]=bs_from.center[2]; bs_to.radius=bs_from.radius;return bs_to}function create_be(){return{axis_x:new Float32Array(3),axis_y:new Float32Array(3),axis_z:new Float32Array(3),center:new Float32Array(3)}}function copy_be(be,be_new){__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.axis_x,be_new.axis_x);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.axis_y,be_new.axis_y);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.axis_z,be_new.axis_z);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](be.center, be_new.center);return be_new}function clone_be(be){var be_new=create_be();copy_be(be,be_new);return be_new}function clone_bs(bs){var bs_new=create_bs();copy_bs(bs,bs_new);return bs_new}function be_from_values(axis_x,axis_y,axis_z,center){return{axis_x:new Float32Array(axis_x),axis_y:new Float32Array(axis_y),axis_z:new Float32Array(axis_z),center:new Float32Array([center[0],center[1],center[2]])}}function big_bounding_sphere(dest){if(!dest)dest=create_bs();__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["set"](0, 0,0,dest.center);dest.radius=1E12;return dest}function expand_bounding_sphere(bs,bs_exp){var v=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](bs_exp.center,bs.center,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());if(__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["length"](v)==0)__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["set"](1,0,0,v);var vn=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["normalize"](v,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]()); var e1p=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](vn,bs.radius,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](e1p,bs.center,e1p);var e1n=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](vn,-bs.radius,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](e1n,bs.center,e1n);var e2p=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](vn, bs_exp.radius,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](e2p,bs_exp.center,e2p);var e2n=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](vn,-bs_exp.radius,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](e2n,bs_exp.center,e2n);var min_max=find_min_max_extent([e1p,e1n,e2p,e2n],vn);var min=min_max[0];var max=min_max[1];bs.center= __WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](min,max,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]()),.5,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());bs.radius=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["length"](__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](max,min,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]()))/2}function extract_rot_bb_corners(bbr, corners){__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp,bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp, bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]); __WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp, bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp,bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]); __WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2]);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](bbr.center,bbr.axis_y,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp, bbr.axis_x,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](_vec3_tmp,bbr.axis_z,_vec3_tmp);corners.push(_vec3_tmp[0],_vec3_tmp[1],_vec3_tmp[2])}function create_be_by_bb(points,use_rotation){var center=__WEBPACK_IMPORTED_MODULE_3__math_js__["g"](points,_vec3_tmp4);if(use_rotation)var cov_matrix=__WEBPACK_IMPORTED_MODULE_3__math_js__["e"](points,center,_mat3_tmp2);else var cov_matrix=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_mat3_js__["identity"](_mat3_tmp2);var t_mat= __WEBPACK_IMPORTED_MODULE_3__math_js__["L"](cov_matrix,MATRIX_PRES,_mat3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](points,_vec3_tmp);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["transformMat3"](_vec3_tmp,t_mat,_vec3_tmp);var max_dot_x=_vec3_tmp[0];var min_dot_x=max_dot_x;var max_dot_y=_vec3_tmp[1];var min_dot_y=max_dot_y;var max_dot_z=_vec3_tmp[2];var min_dot_z=max_dot_z;var max_x=0;var min_x=0;var max_y=0;var min_y=0;var max_z=0;var min_z=0;for(var i=3;imax_dot_x)max_dot_x=dot_x;if(dot_xmax_dot_y)max_dot_y=dot_y;if(dot_ymax_dot_z)max_dot_z=dot_z;if(dot_zb?a:b;radius=c>radius?c:radius;bs.center=be.center;bs.radius=radius;return bs}function is_be_optimized(be,bs){var a=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["length"](be.axis_x);var b=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["length"](be.axis_y);var c=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["length"](be.axis_z);var be_volume=a*b*c;var bs_volume=bs.radius*bs.radius*bs.radius; return.75*bs_volume>be_volume}function find_min_max_extent(exts,dir){var dir_n=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["normalize"](dir,__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]());var min=exts[0];var max=exts[0];for(var i=1;i__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["dot"](max, dir_n))max=exts[i]}return[min,max]}function init_bcap_bcyl_bcon(){return{radius:0,height:0,center:new Float32Array(3)}}function bcap_from_values(radius,bounding_box){var max_z=bounding_box.max_z;var min_z=bounding_box.min_z;var height=Math.max(0,max_z-min_z-2*radius);var bcap_local=init_bcap_bcyl_bcon();bcap_local.radius=radius;bcap_local.height=height;bcap_local.center[0]=0;bcap_local.center[1]=0;bcap_local.center[2]=(max_z+min_z)/2;return bcap_local}function bcyl_from_values(radius,bounding_box){var max_z= bounding_box.max_z;var min_z=bounding_box.min_z;var height=Math.max(0,max_z-min_z);var bcyl_local=init_bcap_bcyl_bcon();bcyl_local.radius=radius;bcyl_local.height=height;bcyl_local.center[0]=0;bcyl_local.center[1]=0;bcyl_local.center[2]=(max_z+min_z)/2;return bcyl_local}function bcon_from_values(radius,bounding_box){var max_z=bounding_box.max_z;var min_z=bounding_box.min_z;var height=Math.max(0,max_z-min_z);var bcon_local=init_bcap_bcyl_bcon();bcon_local.radius=radius;bcon_local.height=height;bcon_local.center[0]= 0;bcon_local.center[1]=0;bcon_local.center[2]=(max_z+min_z)/2;return bcon_local}function copy_bcap_bcyl_bcon(bcap_bcyl_bcon_from,bcap_bcyl_bcon_to){bcap_bcyl_bcon_to.radius=bcap_bcyl_bcon_from.radius;bcap_bcyl_bcon_to.height=bcap_bcyl_bcon_from.height;bcap_bcyl_bcon_to.center.set(bcap_bcyl_bcon_from.center);return bcap_bcyl_bcon_to}function check_bb_intersection(bb1,bb2){if(bb1.min_x>bb2.max_x||bb1.max_xbb2.max_y||bb1.max_y bb2.max_z||bb1.max_zbs.radius)bs=mec_step1(bs,points,points[i],i-1);return bs}function mec_step1(bs, points,q,points_range){bs=mec_by_2_points(bs,q,points[0]);for(var i=1;i<=points_range;i++)if(__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["distance"](bs.center,points[i])>bs.radius)bs=mec_step2(bs,points,q,points[i],i-1);return bs}function mec_step2(bs,points,q0,q1,points_range){bs=mec_by_2_points(bs,q0,q1);for(var i=0;i<=points_range;i++)if(__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["distance"](bs.center,points[i])>bs.radius)bs=mec_by_3_points(bs,q0,q1,points[i]);return bs}function mec_by_2_points(bs, A,B){__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["add"](A,B,bs.center);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](bs.center,.5,bs.center);bs.radius=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["distance"](bs.center,A);return bs}function mec_by_3_points(bs,A,B,C){var BC=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](B,C,_vec3_tmp3);var a_sq=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["squaredLength"](BC);var AC=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](A, C,_vec3_tmp3);var b_sq=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["squaredLength"](AC);var AB=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["subtract"](A,B,_vec3_tmp3);var c_sq=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["squaredLength"](AB);var a_coeff=a_sq*(b_sq+c_sq-a_sq);var b_coeff=b_sq*(c_sq+a_sq-b_sq);var c_coeff=c_sq*(a_sq+b_sq-c_sq);var sum=a_coeff+b_coeff+c_coeff;__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["copy"](A,bs.center);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scale"](bs.center, a_coeff/sum,bs.center);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scaleAndAdd"](bs.center,B,b_coeff/sum,bs.center);__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["scaleAndAdd"](bs.center,C,c_coeff/sum,bs.center);bs.radius=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["distance"](bs.center,A);return bs}},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__= __webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__intern_compat_js__=__webpack_require__(35);var __WEBPACK_IMPORTED_MODULE_3__util_generator_js__=__webpack_require__(31);var __WEBPACK_IMPORTED_MODULE_4__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_6__intern_tbn_js__=__webpack_require__(36);var __WEBPACK_IMPORTED_MODULE_7__intern_util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__= __webpack_require__(3);function Util(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_compat=Object(__WEBPACK_IMPORTED_MODULE_2__intern_compat_js__["a"])(ns);var m_generator=Object(__WEBPACK_IMPORTED_MODULE_3__util_generator_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_4__intern_print_js__["a"])(ns);exports.AXIS_X=new Float32Array([1,0,0]);exports.AXIS_Y=new Float32Array([0,1,0]);exports.AXIS_Z=new Float32Array([0,0,1]);exports.AXIS_MX=new Float32Array([-1, 0,0]);exports.AXIS_MY=new Float32Array([0,-1,0]);exports.AXIS_MZ=new Float32Array([0,0,-1]);exports.XYX=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["o"];exports.YZY=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["v"];exports.ZXZ=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["x"];exports.XZX=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["q"];exports.YXY=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["s"];exports.ZYZ=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["z"];exports.XYZ=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["p"]; exports.YZX=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["u"];exports.ZXY=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["w"];exports.XZY=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["r"];exports.YXZ=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["t"];exports.ZYX=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["y"];exports.f32=function(param){param=param||0;return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_1"](param)};exports.assert=m_assert.assert;exports.keyfind=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_18"]; exports.keysearch=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_19"];exports.matrix_to_quat=function(matrix){return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_24"](matrix)};exports.euler_to_quat=function(euler,quat){if(!quat)quat=new Float32Array(4);return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["Y"](euler,quat)};exports.ordered_angles_to_quat=function(angles,order,quat){if(!quat)quat=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_quat_js__["create"]();return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_27"](angles, order,quat)};exports.quat_to_ordered_angles=function(quat,order,angles){if(!angles)angles=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["create"]();return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_37"](quat,order,angles)};exports.quat_to_euler=function(quat,euler){if(!euler)euler=new Float32Array(3);return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_36"](quat,euler)};exports.sign=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_50"];exports.clamp=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["M"]; exports.quat_to_dir=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_34"];exports.ground_project_cam_quat=function(quat,dest){return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_30"](quat,__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["c"],__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["f"],__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["e"],dest)};exports.cam_quat_to_mesh_quat=function(cam_quat,dest){return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["I"](cam_quat,dest)};exports.quat_project=function(quat, quat_ident_dir,plane,plane_ident_dir,dest){if(__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["dot"](plane,plane_ident_dir)!=0){m_print.error("Wrong in-plane direction");return null}return __WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_30"](quat,quat_ident_dir,plane,plane_ident_dir,dest)};exports.hash_code=function(){return m_generator.hash_code.apply(m_generator,arguments)};exports.smooth=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_51"];exports.smooth_v=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_54"]; exports.is_vector=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_16"];exports.correct_cam_quat_up=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["R"];exports.quat_to_angle_axis=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_33"];exports.random_from_array=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_41"];exports.horizontal_direction=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_12"];exports.angle_wrap_0_2pi=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["A"];exports.angle_wrap_periodic=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["B"]; exports.smooth_step=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_53"];exports.lerp=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_20"];exports.deg_to_rad=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["T"];exports.rad_to_deg=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_39"];exports.dir_to_quat=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["U"];exports.is_ie11=m_compat.is_ie11;exports.gen_tbn_quats=function(normals,tangents){m_print.error_once("util.gen_tbn_quats() deprecated. "+"Do not use it anymore."); return __WEBPACK_IMPORTED_MODULE_6__intern_tbn_js__["d"](normals,tangents)};exports.trunc=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_64"]}var util_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("util",Util);__webpack_exports__["a"]=util_factory},function(module,__webpack_exports__,__webpack_require__){Object.defineProperty(__webpack_exports__,"__esModule",{value:true});__webpack_exports__["create"]=create;__webpack_exports__["fromMat4"]=fromMat4;__webpack_exports__["clone"]= clone;__webpack_exports__["copy"]=copy;__webpack_exports__["identity"]=identity;__webpack_exports__["transpose"]=transpose;__webpack_exports__["invert"]=invert;__webpack_exports__["adjoint"]=adjoint;__webpack_exports__["determinant"]=determinant;__webpack_exports__["multiply"]=multiply;__webpack_require__.d(__webpack_exports__,"mul",function(){return multiply});__webpack_exports__["translate"]=translate;__webpack_exports__["rotate"]=rotate;__webpack_exports__["scale"]=scale;__webpack_exports__["fromTranslation"]= fromTranslation;__webpack_exports__["fromRotation"]=fromRotation;__webpack_exports__["fromScaling"]=fromScaling;__webpack_exports__["fromMat2d"]=fromMat2d;__webpack_exports__["fromQuat"]=fromQuat;__webpack_exports__["normalFromMat4"]=normalFromMat4;__webpack_exports__["str"]=str;__webpack_exports__["frob"]=frob;var GLMAT_EPSILON=1E-7;var GLMAT_ARRAY_TYPE=typeof Float32Array!=="undefined"?Float32Array:Array;var GLMAT_RANDOM=Math.random;function create(){var out=new GLMAT_ARRAY_TYPE(9);out[0]=1;out[1]= 0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out}function fromMat4(a,out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[4];out[4]=a[5];out[5]=a[6];out[6]=a[8];out[7]=a[9];out[8]=a[10];return out}function clone(a){var out=new GLMAT_ARRAY_TYPE(9);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out}function copy(a,out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]= a[7];out[8]=a[8];return out}function identity(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out}function transpose(a,out){if(out===a){var a01=a[1],a02=a[2],a12=a[5];out[1]=a[3];out[2]=a[6];out[3]=a01;out[5]=a[7];out[6]=a02;out[7]=a12}else{out[0]=a[0];out[1]=a[3];out[2]=a[6];out[3]=a[1];out[4]=a[4];out[5]=a[7];out[6]=a[2];out[7]=a[5];out[8]=a[8]}return out}function invert(a,out){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7], a22=a[8],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,det=a00*b01+a01*b11+a02*b21;if(!det)return null;det=1/det;out[0]=b01*det;out[1]=(-a22*a01+a02*a21)*det;out[2]=(a12*a01-a02*a11)*det;out[3]=b11*det;out[4]=(a22*a00-a02*a20)*det;out[5]=(-a12*a00+a02*a10)*det;out[6]=b21*det;out[7]=(-a21*a00+a01*a20)*det;out[8]=(a11*a00-a01*a10)*det;return out}function adjoint(a,out){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];out[0]=a11*a22-a12*a21;out[1]=a02* a21-a01*a22;out[2]=a01*a12-a02*a11;out[3]=a12*a20-a10*a22;out[4]=a00*a22-a02*a20;out[5]=a02*a10-a00*a12;out[6]=a10*a21-a11*a20;out[7]=a01*a20-a00*a21;out[8]=a00*a11-a01*a10;return out}function determinant(a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];return a00*(a22*a11-a12*a21)+a01*(-a22*a10+a12*a20)+a02*(a21*a10-a11*a20)}function multiply(a,b,out){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b00=b[0],b01=b[1],b02= b[2],b10=b[3],b11=b[4],b12=b[5],b20=b[6],b21=b[7],b22=b[8];out[0]=b00*a00+b01*a10+b02*a20;out[1]=b00*a01+b01*a11+b02*a21;out[2]=b00*a02+b01*a12+b02*a22;out[3]=b10*a00+b11*a10+b12*a20;out[4]=b10*a01+b11*a11+b12*a21;out[5]=b10*a02+b11*a12+b12*a22;out[6]=b20*a00+b21*a10+b22*a20;out[7]=b20*a01+b21*a11+b22*a21;out[8]=b20*a02+b21*a12+b22*a22;return out}function translate(a,v,out){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],x=v[0],y=v[1];out[0]=a00;out[1]=a01;out[2]= a02;out[3]=a10;out[4]=a11;out[5]=a12;out[6]=x*a00+y*a10+a20;out[7]=x*a01+y*a11+a21;out[8]=x*a02+y*a12+a22;return out}function rotate(a,rad,out){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],s=Math.sin(rad),c=Math.cos(rad);out[0]=c*a00+s*a10;out[1]=c*a01+s*a11;out[2]=c*a02+s*a12;out[3]=c*a10-s*a00;out[4]=c*a11-s*a01;out[5]=c*a12-s*a02;out[6]=a20;out[7]=a21;out[8]=a22;return out}function scale(a,v,out){var x=v[0],y=v[1];out[0]=x*a[0];out[1]=x*a[1];out[2]=x*a[2]; out[3]=y*a[3];out[4]=y*a[4];out[5]=y*a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out}function fromTranslation(v,out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=v[0];out[7]=v[1];out[8]=1;return out}function fromRotation(rad,out){var s=Math.sin(rad),c=Math.cos(rad);out[0]=c;out[1]=s;out[2]=0;out[3]=-s;out[4]=c;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out}function fromScaling(v,out){out[0]=v[0];out[1]=0;out[2]=0;out[3]=0;out[4]=v[1];out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out} function fromMat2d(a,out){out[0]=a[0];out[1]=a[1];out[2]=0;out[3]=a[2];out[4]=a[3];out[5]=0;out[6]=a[4];out[7]=a[5];out[8]=1;return out}function fromQuat(q,out){var x=q[0],y=q[1],z=q[2],w=q[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,yx=y*x2,yy=y*y2,zx=z*x2,zy=z*y2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;out[0]=1-yy-zz;out[3]=yx-wz;out[6]=zx+wy;out[1]=yx+wz;out[4]=1-xx-zz;out[7]=zy-wx;out[2]=zx-wy;out[5]=zy+wx;out[8]=1-xx-yy;return out}function normalFromMat4(a,out){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11= a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;if(!det)return null;det=1/det;out[0]=(a11*b11-a12*b10+a13*b09)*det;out[1]=(a12*b08-a10*b11-a13*b07)*det;out[2]= (a10*b10-a11*b08+a13*b06)*det;out[3]=(a02*b10-a01*b11-a03*b09)*det;out[4]=(a00*b11-a02*b08+a03*b07)*det;out[5]=(a01*b08-a00*b10-a03*b06)*det;out[6]=(a31*b05-a32*b04+a33*b03)*det;out[7]=(a32*b02-a30*b05-a33*b01)*det;out[8]=(a30*b04-a31*b02+a33*b00)*det;return out}function str(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"}function frob(a){return Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2)+Math.pow(a[3],2)+Math.pow(a[4],2)+ Math.pow(a[5],2)+Math.pow(a[6],2)+Math.pow(a[7],2)+Math.pow(a[8],2))}},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_2__print_js__=__webpack_require__(1);function Int_extensions(ns,exports){var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_1__config_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_2__print_js__["a"])(ns); var cfg_def=m_cfg.defaults;var _gl=null;var _ext_cache={};exports.setup_context=function(gl){_gl=gl};exports.get_s3tc=function(){var ext_s3tc=get("WEBGL_compressed_texture_s3tc")||get("WEBKIT_WEBGL_compressed_texture_s3tc");return ext_s3tc};exports.get_pvr=function(){var ext_pvr=get("WEBKIT_WEBGL_compressed_texture_pvrtc")||get("WEBGL_compressed_texture_pvrtc");return ext_pvr};exports.get_depth_texture=function(){if(cfg_def.webgl2)return webgl2_get("WEBGL_depth_texture");var ext_dtex=get("WEBGL_depth_texture")|| get("WEBKIT_WEBGL_depth_texture");return ext_dtex};exports.get_texture_float=function(){if(cfg_def.webgl2)return webgl2_get("OES_texture_float");var ext_texf=get("OES_texture_float");return ext_texf};exports.get_texture_half_float=function(){if(cfg_def.webgl2)return webgl2_get("OES_texture_half_float");var ext_texhf=get("OES_texture_half_float");return ext_texhf};exports.get_texture_float_linear=get_texture_float_linear;function get_texture_float_linear(){if(cfg_def.webgl2)return webgl2_get("OES_texture_float_linear"); var ext_texflin=get("OES_texture_float_linear");return ext_texflin}exports.get_texture_half_float_linear=function(){if(cfg_def.webgl2)return get_texture_float_linear();var ext_texflin=get("OES_texture_half_float_linear");return ext_texflin};exports.get_color_buffer_float=get_color_buffer_float;function get_color_buffer_float(){if(cfg_def.webgl2)return webgl2_get("EXT_color_buffer_float");var ext_cbf=get("WEBGL_color_buffer_float");return ext_cbf}exports.get_color_buffer_half_float=function(){if(cfg_def.webgl2)return get_color_buffer_float(); var ext_cbhf=get("EXT_color_buffer_half_float");return ext_cbhf};exports.get_aniso=function(){var ext_aniso=get("EXT_texture_filter_anisotropic")||get("WEBKIT_EXT_texture_filter_anisotropic");return ext_aniso};exports.get_texture_lod=function(){if(cfg_def.webgl2)return webgl2_get("EXT_shader_texture_lod");var ext_tex_lod=get("EXT_shader_texture_lod");return ext_tex_lod};exports.get_debug_shaders=function(){var ext_ds=get("WEBGL_debug_shaders");return ext_ds};exports.get_renderer_info=function(){var ext_ri= get("WEBGL_debug_renderer_info");return ext_ri};exports.get_elem_index_uint=function(){if(cfg_def.webgl2)return webgl2_get("OES_element_index_uint");var ext_elem_index_uint=get("OES_element_index_uint");return ext_elem_index_uint};exports.get_standard_derivatives=function(){if(cfg_def.webgl2)return webgl2_get("OES_standard_derivatives");var ext_standard_derivatives=get("OES_standard_derivatives");return ext_standard_derivatives};exports.get_disjoint_timer_query=function(){if(cfg_def.webgl2)var ext= webgl2_get("EXT_disjoint_timer_query_webgl2");else var ext=get("EXT_disjoint_timer_query");if(ext==null)return ext;if(ext.createQueryEXT)var ext_complete={createQuery:function(){return ext.createQueryEXT()},beginQuery:function(query){ext.beginQueryEXT(ext.TIME_ELAPSED_EXT,query)},endQuery:function(){ext.endQueryEXT(ext.TIME_ELAPSED_EXT)},getQueryAvailable:function(query){return ext.getQueryObjectEXT(query,ext.QUERY_RESULT_AVAILABLE_EXT)},getQueryObject:function(query){return ext.getQueryObjectEXT(query, ext.QUERY_RESULT_EXT)},getDisjoint:function(){return _gl.getParameter(ext.GPU_DISJOINT_EXT)}};else var ext_complete={createQuery:function(){return _gl.createQuery()},beginQuery:function(query){_gl.beginQuery(ext.TIME_ELAPSED_EXT,query)},endQuery:function(){_gl.endQuery(ext.TIME_ELAPSED_EXT)},getQueryAvailable:function(query){return _gl.getQueryParameter(query,_gl.QUERY_RESULT_AVAILABLE)},getQueryObject:function(query){return _gl.getQueryParameter(query,_gl.QUERY_RESULT)},getDisjoint:function(){return _gl.getParameter(ext.GPU_DISJOINT_EXT)}}; return ext_complete};exports.get_instanced_arrays=function(){if(cfg_def.webgl2)return webgl2_get("ANGLE_instanced_arrays");var ext=get("ANGLE_instanced_arrays");if(ext==null)return ext;var ext_complete={drawElementsInstanced:function(mode,count,type,offset,primcount){ext.drawElementsInstancedANGLE(mode,count,type,offset,primcount)},vertexAttribDivisor:function(loc,div){ext.vertexAttribDivisorANGLE(loc,div)},drawArraysInstanced:function(mode,first,count,primcount){ext.drawArraysInstancedANGLE(mode, first,count,primcount)}};return ext_complete};exports.get_vertex_array_object=function(){if(cfg_def.webgl2)return webgl2_get("OES_vertex_array_object");var ext=get("OES_vertex_array_object");if(ext==null)return ext;var ext_complete={bindVertexArray:function(vao){ext.bindVertexArrayOES(vao)},createVertexArray:function(){return ext.createVertexArrayOES()},deleteVertexArray:function(vao){ext.deleteVertexArrayOES(vao)},isVertexArray:function(vao){return ext.isVertexArrayOES(vao)}};return ext_complete}; function get(name){if(name in _ext_cache)return _ext_cache[name];var ext=_gl.getExtension(name)||null;_ext_cache[name]=ext;if(ext)var color="0a0";else var color="a00";m_print.log("%cGET EXTENSION","color: #"+color,name);return ext}function webgl2_get(name){if(name in _ext_cache)return _ext_cache[name];switch(name){case "WEBGL_depth_texture":case "OES_element_index_uint":case "OES_standard_derivatives":case "EXT_shader_texture_lod":case "OES_texture_float":case "OES_texture_half_float":var ext={}; break;case "ANGLE_instanced_arrays":case "OES_vertex_array_object":var ext=_gl;break;default:var ext=_gl.getExtension(name)||null;break}_ext_cache[name]=ext;if(ext)var color="0a0";else var color="a00";m_print.log("%cGET EXTENSION (WebGL 2)","color: #"+color,name);return ext}exports.cleanup=function(){_ext_cache={}};exports.reset=function(){_gl=null}}var int_extensions_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__extensions",Int_extensions);__webpack_exports__["a"]=int_extensions_factory}, function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__util_js__=__webpack_require__(2);function Int_graph(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var NULL_NODE=-1;var NULL=0;var FORWARD_DIR=10;var BACKWARD_DIR=20;var TWO_WAY=30;var _next_pair_cache=[NULL_NODE,NULL_NODE]; exports.NULL_NODE=NULL_NODE;exports.FORWARD_DIR=FORWARD_DIR;exports.BACKWARD_DIR=BACKWARD_DIR;exports.TWO_WAY=TWO_WAY;exports.create=function(){var node_edge_arr=arguments;var nodes=[];var edges=[];for(var i=0;istate.n2||state.t1both_len>state.t2both_len||state.t1out_len>state.t2out_len||state.t1in_len>state.t2in_len}function state_next_pair(state,next_pair,prev_n1,prev_n2){if(prev_n1==NULL_NODE)prev_n1=0;if(prev_n2==NULL_NODE)prev_n2=0;else prev_n2++;var t1both_len=state.t1both_len;var t2both_len=state.t2both_len;var t1out_len= state.t1out_len;var t2out_len=state.t2out_len;var t1in_len=state.t1in_len;var t2in_len=state.t2in_len;var core_len=state.core_len;var n1=state.n1;var n2=state.n2;var core_1=state.core_1;var core_2=state.core_2;var in_1=state.in_1;var in_2=state.in_2;var out_1=state.out_1;var out_2=state.out_2;if(t1both_len>core_len&&t2both_len>core_len)while(prev_n1core_len&&t2out_len>core_len)while(prev_n1< n1&&(core_1[prev_n1]!=NULL_NODE||out_1[prev_n1]==0)){prev_n1++;prev_n2=0}else if(t1in_len>core_len&&t2in_len>core_len)while(prev_n1core_len&&t2both_len>core_len)while(prev_n2core_len&&t2out_len>core_len)while(prev_n2core_len&&t2in_len>core_len)while(prev_n2 "+String(node2);if(edge_label_cb)dot_str+=' [label="'+edge_label_cb(node1,node2,attr)+'"]';dot_str+=";\n"}dot_str+="}";return dot_str}}var int_graph_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__graph",Int_graph);__webpack_exports__["a"]=int_graph_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_batch_js__=__webpack_require__(16); var __WEBPACK_IMPORTED_MODULE_2__intern_camera_js__=__webpack_require__(14);var __WEBPACK_IMPORTED_MODULE_3__intern_container_js__=__webpack_require__(15);var __WEBPACK_IMPORTED_MODULE_4__intern_data_js__=__webpack_require__(43);var __WEBPACK_IMPORTED_MODULE_5__intern_graph_js__=__webpack_require__(29);var __WEBPACK_IMPORTED_MODULE_6__intern_objects_js__=__webpack_require__(12);var __WEBPACK_IMPORTED_MODULE_7__intern_obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_8__intern_print_js__= __webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_9__intern_physics_js__=__webpack_require__(19);var __WEBPACK_IMPORTED_MODULE_10__intern_scenes_js__=__webpack_require__(10);var __WEBPACK_IMPORTED_MODULE_11__intern_subscene_js__=__webpack_require__(11);var __WEBPACK_IMPORTED_MODULE_12__intern_util_js__=__webpack_require__(2);function Scenes(ns,exports){var m_batch=Object(__WEBPACK_IMPORTED_MODULE_1__intern_batch_js__["a"])(ns);var m_cam=Object(__WEBPACK_IMPORTED_MODULE_2__intern_camera_js__["a"])(ns); var m_cont=Object(__WEBPACK_IMPORTED_MODULE_3__intern_container_js__["a"])(ns);var m_data=Object(__WEBPACK_IMPORTED_MODULE_4__intern_data_js__["a"])(ns);var m_graph=Object(__WEBPACK_IMPORTED_MODULE_5__intern_graph_js__["a"])(ns);var m_obj=Object(__WEBPACK_IMPORTED_MODULE_6__intern_objects_js__["a"])(ns);var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_7__intern_obj_util_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_8__intern_print_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_9__intern_physics_js__["a"])(ns); var m_scenes=Object(__WEBPACK_IMPORTED_MODULE_10__intern_scenes_js__["a"])(ns);var m_subs=Object(__WEBPACK_IMPORTED_MODULE_11__intern_subscene_js__["a"])(ns);exports.DATA_ID_ALL=m_obj.DATA_ID_ALL;exports.set_active=function(scene_name){var scenes=m_scenes.get_all_scenes();m_scenes.set_active(__WEBPACK_IMPORTED_MODULE_12__intern_util_js__["_19"]("name",scene_name,scenes))};exports.get_active=function(){if(!m_scenes.check_active())return"";else return m_scenes.get_active()["name"]};exports.get_scenes= function(){var scenes=m_scenes.get_all_scenes();var scene_names=[];for(var i=0;i51*51*51)m_print.error("Color ID pool depleted");var r=Math.floor(counter/(51*51));counter%=51*51;var g=Math.floor(counter/51);counter%=51;var b=counter;var color_id=new Float32Array([r/51,g/51,b/51]);return color_id};exports.rand=function(){_next=(_next*69069+5)%Math.pow(2, 32);return Math.round(_next/65536)%32768/32767};exports.srand=function(seed){_next=seed};exports.calc_variable_id=function(a,init_val){return hash_code(a,init_val)};exports.hash_code=hash_code;function hash_code(a,init_val){var hash=init_val;switch(typeof a){case "object":if(a)switch(a.constructor){case Object:for(var prop in a)hash=hash_code(a[prop],hash);break;case Int8Array:case Uint8Array:case Uint8ClampedArray:case Int16Array:case Uint16Array:case Int32Array:case Uint32Array:case Float32Array:case Float64Array:for(var i= 0;iparams.dist_lim.max){m_print.error("target_setup(): Wrong distance limits object"); return}params.dist_lim.min=Math.max(params.dist_lim.min,0);params.dist_lim.max=Math.max(params.dist_lim.max,0)}if(params.pivot_lim)if(typeof params.pivot_lim.min_y!="number"||typeof params.pivot_lim.max_y!="number"||params.pivot_lim.min_y>params.pivot_lim.max_y){m_print.error("target_setup(): Wrong pivot limits object");return}m_cam.wipe_move_style(camobj);camobj.render.move_style=m_cam.MS_TARGET_CONTROLS;var pos=params.pos||__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["j"](camobj.render.world_tsr, _vec3_tmp);var pivot=params.pivot;if(!pivot){var view_vec=get_view_vector(camobj,_vec3_tmp2);pivot=__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec3_js__["add"](pos,view_vec,view_vec)}m_cam.setup_target_model(camobj,pos,pivot,params.horiz_rot_lim,params.vert_rot_lim,params.dist_lim,params.pivot_lim,params.use_panning||false);m_trans.update_transform(camobj);m_phy.sync_transform(camobj);m_cam.init_ortho_props(camobj)};exports.target_rotate=function(camobj,phi,theta,is_abs){m_print.error_deprecated("target_rotate", "rotate_camera");if(!m_cam.is_target_camera(camobj)){m_print.error("target_rotate(): Wrong camera object or camera move style");return}is_abs=is_abs||false;exports.rotate_camera(camobj,phi,theta,is_abs)};exports.target_set_trans_pivot=function(camobj,trans,pivot){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_trans_pivot(): Wrong camera object or camera move style");return}trans=trans||__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["j"](camobj.render.world_tsr,_vec3_tmp);pivot=pivot|| camobj.render.pivot;m_cam.set_trans_pivot(camobj,trans,pivot);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_set_pivot_translation=function(camobj,trans){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_pivot_translation(): Wrong camera object or camera move style");return}m_cam.set_target_pivot(camobj,trans);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_set_distance=function(camobj,distance){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_distance(): Wrong camera object or camera move style"); return}var dist_curr=m_trans.obj_point_distance(camobj,camobj.render.pivot);var dist_needed=Math.max(0,distance);m_trans.move_local(camobj,0,0,dist_needed-dist_curr);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_get_distance=function(camobj){if(!m_cam.is_target_camera(camobj)){m_print.error("target_get_distance(): Wrong camera object or camera move style");return 0}return m_trans.obj_point_distance(camobj,camobj.render.pivot)};exports.target_zoom_object=function(camobj, obj){if(!m_cam.is_target_camera(camobj)){m_print.error("target_zoom_object(): Wrong camera object or camera move style");return}var center=m_trans.get_object_center(obj,false,_vec3_tmp);var radius=m_trans.get_object_size(obj);var active_scene=m_scs.get_active();var cam_scene_data=m_obj_util.get_scene_data(camobj,active_scene);var main_camera=cam_scene_data.cameras[0];var ang_radius=m_cam.get_angular_diameter(main_camera)/2;var dist_need=radius/Math.sin(ang_radius);var dist_current=m_trans.obj_point_distance(camobj, center);m_cam.set_trans_pivot(camobj,__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["j"](camobj.render.world_tsr,_vec3_tmp2),center);m_trans.update_transform(camobj);m_trans.move_local(camobj,0,0,dist_need-dist_current);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_get_pivot=function(camobj,dest){if(!m_cam.is_target_camera(camobj)){m_print.error("target_get_pivot(): Wrong camera object or camera move style");return null}dest=dest||new Float32Array(3);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec3_js__["copy"](camobj.render.pivot, dest);return dest};exports.target_set_distance_limits=function(camobj,limits){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_distance_limits(): Wrong camera object or camera move style");return}if(limits){if(typeof limits.min!="number"||typeof limits.max!="number"||limits.min>limits.max){m_print.error("target_set_distance_limits(): Wrong limits object");return}limits.min=Math.max(limits.min,0);limits.max=Math.max(limits.max,0)}m_cam.set_distance_limits(camobj,limits);m_trans.update_transform(camobj); m_phy.sync_transform(camobj)};exports.target_get_distance_limits=function(camobj,dest){if(!m_cam.is_target_camera(camobj)){m_print.error("target_get_distance_limits(): Wrong camera object or camera move style");return null}var render=camobj.render;if(render.distance_limits){dest=dest||{};dest.min=render.distance_limits.min;dest.max=render.distance_limits.max;return dest}else return null};exports.target_set_vertical_limits=function(camobj,limits){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_vertical_limits(): Wrong camera object or camera move style"); return}if(limits)if(typeof limits.down!="number"||typeof limits.up!="number"){m_print.error("target_set_vertical_limits(): Wrong limits object");return}m_cam.set_vertical_rot_limits(camobj,limits);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_get_vertical_limits=function(camobj,dest,local){if(!m_cam.is_target_camera(camobj)){m_print.error("target_get_vertical_limits(): Wrong camera object or camera move style");return null}var render=camobj.render;if(render.vertical_limits){dest= dest||{};if(local){dest.down=render.vertical_limits.down_local;dest.up=render.vertical_limits.up_local}else{dest.down=render.vertical_limits.down;dest.up=render.vertical_limits.up}dest.camera_space=local||false;return dest}else return null};exports.target_set_horizontal_limits=function(camobj,limits){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_horizontal_limits(): Wrong camera object or camera move style");return}if(limits)if(typeof limits.left!="number"||typeof limits.right!="number"){m_print.error("target_set_horizontal_limits(): Wrong limits object"); return}m_cam.set_horizontal_rot_limits(camobj,limits);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_get_horizontal_limits=function(camobj,dest,local){if(!m_cam.is_target_camera(camobj)){m_print.error("target_get_horizontal_limits(): Wrong camera object or camera move style");return null}var render=camobj.render;if(render.horizontal_limits){dest=dest||{};if(local){dest.left=render.horizontal_limits.left_local;dest.right=render.horizontal_limits.right_local}else{dest.left= render.horizontal_limits.left;dest.right=render.horizontal_limits.right}dest.camera_space=local||false;return dest}else return null};exports.target_set_pivot_limits=function(camobj,limits){if(!m_cam.is_target_camera(camobj)){m_print.error("target_set_pivot_limits(): Wrong camera object or camera move style");return}if(limits)if(typeof limits.min_z!="number"||typeof limits.max_z!="number"||limits.min_z>limits.max_z){m_print.error("target_set_pivot_limits(): Wrong limits object");return}m_cam.set_pivot_limits(camobj, limits);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.target_get_pivot_limits=function(camobj,dest){if(!m_cam.is_target_camera(camobj)){m_print.error("target_get_pivot_limits(): Wrong camera object or camera move style");return null}var render=camobj.render;if(render.pivot_limits){dest=dest||{};dest.min_z=render.pivot_limits.min_z;dest.max_z=render.pivot_limits.max_z;return dest}else return null};exports.target_pan_pivot=function(camobj,trans_h_delta,trans_v_delta){if(!m_cam.is_target_camera(camobj)){m_print.error("target_pan_pivot(): wrong object"); return}var render=camobj.render;if(render.use_panning){var trans_vector=_vec3_tmp;trans_vector[0]=trans_h_delta;trans_vector[1]=-trans_v_delta;trans_vector[2]=0;__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["y"](trans_vector,render.world_tsr,trans_vector);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec3_js__["add"](render.pivot,trans_vector,render.pivot);var cam_trans=__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["j"](render.world_tsr,_vec3_tmp2);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec3_js__["add"](cam_trans, trans_vector,cam_trans);__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["v"](cam_trans,render.world_tsr);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)}};exports.target_switch_panning=function(camobj,enable){if(!m_cam.is_target_camera(camobj)){m_print.error("target_switch_panning(): Wrong camera object or camera move style");return null}camobj.render.use_panning=enable};exports.hover_setup_rel=function(camobj,params){exports.hover_setup(camobj,{pos:params.pos,pivot:params.pivot});if(typeof params.dist_interval== "undefined")var dist_interval=0;else var dist_interval=Math.max(params.dist_interval,0);if(typeof params.angle_interval=="undefined")var angle_interval=0;else var angle_interval=Math.max(params.angle_interval,0);if(typeof params.t=="undefined")var t=.5;else var t=__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["M"](params.t,0,1);var dist_lim=exports.hover_get_distance_limits(camobj,_limits_tmp);dist_lim.min=Math.max(dist_lim.min-t*dist_interval,0);dist_lim.max=dist_lim.max+(1-t)*dist_interval;var ha_lim= exports.hover_get_vertical_limits(camobj,_limits_tmp2);ha_lim.down=__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["M"](ha_lim.down+t*angle_interval,-Math.PI/2,0);ha_lim.up=__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["M"](ha_lim.up-(1-t)*angle_interval,-Math.PI/2,0);m_cam.hover_set_distance_limits(camobj,dist_lim);m_cam.hover_set_vertical_limits(camobj,ha_lim);m_trans.update_transform(camobj);m_phy.sync_transform(camobj);m_cam.init_ortho_props(camobj)};exports.hover_setup=function(camobj,params){if(!m_obj_util.is_camera(camobj)){m_print.error("hover_setup(): Wrong camera object"); return}if(params.dist_lim){if(typeof params.dist_lim.min!="number"||typeof params.dist_lim.max!="number"||params.dist_lim.min>params.dist_lim.max){m_print.error("hover_setup(): Wrong distance limits object");return}params.dist_lim.min=Math.max(params.dist_lim.min,0);params.dist_lim.max=Math.max(params.dist_lim.max,0)}if(params.hover_angle_lim)if(typeof params.hover_angle_lim.down!="number"||typeof params.hover_angle_lim.up!="number"||params.hover_angle_lim.downparams.horiz_trans_lim.max){m_print.error("hover_setup(): Wrong horizontal translation limits object");return}if(params.vert_trans_lim)if(typeof params.vert_trans_lim.min!="number"||typeof params.vert_trans_lim.max!="number"||params.vert_trans_lim.min>params.vert_trans_lim.max){m_print.error("hover_setup(): Wrong vertical translation limits object"); return}m_cam.wipe_move_style(camobj);camobj.render.move_style=m_cam.MS_HOVER_CONTROLS;var pos=params.pos||__WEBPACK_IMPORTED_MODULE_9__intern_tsr_js__["j"](camobj.render.world_tsr,_vec3_tmp);m_cam.setup_hover_model(camobj,pos,params.pivot,params.dist_lim,params.hover_angle_lim,params.horiz_trans_lim,params.vert_trans_lim,params.enable_horiz_rot||false);m_trans.update_transform(camobj);m_phy.sync_transform(camobj);m_cam.init_ortho_props(camobj)};exports.hover_rotate=function(camobj,phi,theta,is_abs){m_print.error_deprecated("hover_rotate", "rotate_camera");if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_rotate(): Wrong camera object or camera move style");return}is_abs=is_abs||false;exports.rotate_camera(camobj,phi,theta,is_abs)};exports.hover_set_pivot_translation=function(camobj,trans){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_set_pivot_translation(): Wrong camera object or camera move style");return}m_cam.set_hover_pivot(camobj,trans);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.hover_get_pivot= function(camobj,dest){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_get_pivot(): Wrong camera object or camera move style");return null}dest=dest||new Float32Array(3);__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec3_js__["copy"](camobj.render.hover_pivot,dest);return dest};exports.hover_get_distance=function(camobj){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_get_distance(): Wrong camera object or camera move style");return 0}return m_trans.obj_point_distance(camobj,camobj.render.hover_pivot)}; exports.hover_set_vertical_limits=function(camobj,limits){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_set_vertical_limits(): Wrong camera object or camera move style");return}if(typeof limits.down!="number"||typeof limits.up!="number"||limits.downlimits.max){m_print.error("hover_set_distance_limits(): Wrong limits object");return}limits.min=Math.max(limits.min,0);limits.max=Math.max(limits.max,0);m_cam.hover_set_distance_limits(camobj,limits);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.hover_get_distance_limits=function(camobj,dest){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_get_distance_limits(): Wrong camera object or camera move style");return null}var render=camobj.render;dest= dest||{};dest.min=render.distance_limits.min;dest.max=render.distance_limits.max;return dest};exports.hover_set_vert_trans_limits=function(camobj,limits){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_set_vert_trans_limits(): Wrong camera object or camera move style");return}if(limits)if(typeof limits.min!="number"||typeof limits.max!="number"||limits.min>limits.max){m_print.error("hover_set_vert_trans_limits(): Wrong limits object");return}m_cam.set_vert_trans_limits(camobj,limits);m_trans.update_transform(camobj); m_phy.sync_transform(camobj)};exports.hover_get_vert_trans_limits=function(camobj,dest){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_get_vert_trans_limits(): Wrong camera object or camera move style");return null}var render=camobj.render;if(render.hover_vert_trans_limits){dest=dest||{};dest.min=render.hover_vert_trans_limits.min;dest.max=render.hover_vert_trans_limits.max;return dest}else return null};exports.hover_set_horiz_trans_limits=function(camobj,limits){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_set_horiz_trans_limits(): Wrong camera object or camera move style"); return}if(limits)if(typeof limits.min!="number"||typeof limits.max!="number"||limits.min>limits.max){m_print.error("hover_set_horiz_trans_limits(): Wrong limits object");return}m_cam.set_hor_trans_limits(camobj,limits);m_trans.update_transform(camobj);m_phy.sync_transform(camobj)};exports.hover_get_horiz_trans_limits=function(camobj,dest){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_get_horiz_trans_limits(): Wrong camera object or camera move style");return null}var render=camobj.render; if(render.hover_horiz_trans_limits){dest=dest||{};dest.min=render.hover_horiz_trans_limits.min;dest.max=render.hover_horiz_trans_limits.max;return dest}else return null};exports.hover_switch_horiz_rotation=function(camobj,enable){if(!m_cam.is_hover_camera(camobj)){m_print.error("hover_switch_horiz_rotation(): Wrong camera object or camera move style");return null}camobj.render.enable_hover_hor_rotation=enable};exports.is_static_camera=m_cam.is_static_camera;exports.is_target_camera=m_cam.is_target_camera; exports.is_eye_camera=m_cam.is_eye_camera;exports.is_hover_camera=m_cam.is_hover_camera;function is_hmd_camera(camobj){if(!m_obj_util.is_camera(camobj)){m_print.error("is_hmd_camera(): Wrong camera object");return false}var active_scene=m_scs.get_active();var cam_scene_data=m_obj_util.get_scene_data(camobj,active_scene);var cameras=cam_scene_data.cameras;for(var i=0;i=0};exports.get_camera_angles=function(camobj,dest){if(!m_obj_util.is_camera(camobj)){m_print.error("get_camera_angles(): Wrong camera object");return null}dest=dest||new Float32Array(2);m_cam.get_camera_angles(camobj,dest);return dest};exports.get_camera_angles_char= function(camobj,dest){if(!m_obj_util.is_camera(camobj)){m_print.error("get_camera_angles_char(): Wrong camera object");return null}dest=dest||new Float32Array(2);m_cam.get_camera_angles_char(camobj,dest);return dest};exports.get_camera_angles_dir=function(dir,dest){dest=dest||new Float32Array(2);var dir_norm=__WEBPACK_IMPORTED_MODULE_11__libs_gl_matrix_vec3_js__["normalize"](dir,_vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["_48"](__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["c"], dir_norm,_quat_tmp);__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["R"](quat,true);m_cam.get_camera_angles_from_quat(quat,__WEBPACK_IMPORTED_MODULE_10__intern_util_js__["f"],dest);return dest};exports.set_stereo_distance=function(camobj,conv_dist){if(!m_obj_util.is_camera(camobj)){m_print.error("set_stereo_distance(): Wrong camera object");return}var active_scene=m_scs.get_active();var cam_scene_data=m_obj_util.get_scene_data(camobj,active_scene);var cameras=cam_scene_data.cameras;for(var i=0;icfg_lim.max_texture_image_units)status|=INVALID_TEX_IMAGE_UNITS;create_variable_buffers();if(!check_uniforms_in_packing_limits(f_shader_text,_fragment_uniform_buffer,cfg_lim.max_fragment_uniform_vectors))status|=INVALID_F_UNIFORM_VECTORS;if(!check_uniforms_in_packing_limits(v_shader_text,_vertex_uniform_buffer,cfg_lim.max_vertex_uniform_vectors))status|=INVALID_V_UNIFORM_VECTORS; var attribute_count=get_attribute_count(v_shader_text);shaders_info.attribute_count=attribute_count;if(attribute_count>cfg_lim.max_vertex_attribs)status|=INVALID_VERTEX_ATTRIBS;if(!check_varyings_in_packing_limits(f_shader_text))status|=INVALID_VARYING_VECTORS;shaders_info.status=status}function create_variable_buffers(){if(!_varying_buffer)_varying_buffer=new Uint32Array(cfg_lim.max_varying_vectors);if(!_fragment_uniform_buffer)_fragment_uniform_buffer=new Uint32Array(cfg_lim.max_fragment_uniform_vectors); if(!_vertex_uniform_buffer)_vertex_uniform_buffer=new Uint32Array(cfg_lim.max_vertex_uniform_vectors)}function sum(a,b){return a+b}function get_interface_variables_count(shader_text,expr){var shader_list=shader_text.split(";");var uniforms_list=shader_list.map(function(statement){var r=statement.match(expr);return r&&(r[3]?parseInt(r[3],10):1)}).filter(function(decl){return decl});return(uniforms_list||[]).reduce(sum,0)}function get_attribute_count(v_shader_text){if(cfg_def.webgl2){var v_shader_text_n= v_shader_text.replace(/(.*?)\([^()]*?\)(.*?)/g,"$1$2");return(v_shader_text_n.match(/(?:^|[^a-zA-Z_])in(?=\s)/g)||[]).length}else return(v_shader_text.match(/(?:^|[^a-zA-Z_])attribute(?=\s)/g)||[]).length}function cmp_variables(a,b){var a_occupied_cols=get_occupied_cols(a.type);var b_occupied_cols=get_occupied_cols(b.type);var a_elems=a.array_size;var b_elems=b.array_size;if(a_occupied_cols>b_occupied_cols)return-1;else if(a_occupied_colsb_elems)return-1; else if(a_elems_bottom_non_filled_row)return false;_top_non_filled_row=col4_top_non_filled_row;fill_variable_buffer(buffer, 0,col4_top_non_filled_row,0,4);return true}function process_3_column_variables(){var col3_rows_count=0;while(variable_number_bottom_non_filled_row)return false;fill_variable_buffer(buffer,col4_top_non_filled_row,col3_rows_count, 0,3);return true}function process_2_column_variables(){var col2_available_rows_count=_bottom_non_filled_row-col3_top_non_filled_row;var available_cols_01_rows_count=col2_available_rows_count;var available_cols_23_rows_count=col2_available_rows_count;while(variable_number0&&buffer[_bottom_non_filled_row]===FILLED_ROW_FLAGS)_bottom_non_filled_row--; if(_bottom_non_filled_row-_top_non_filled_row=rows_count&&size=operand2);break;case "l_expr":var operand2= operand_stack.pop();var operand1=operand_stack.pop();operand_stack.push(operand1operand2);break;case "left_shift_expr":var operand1=operand_stack.pop();var operand2=operand_stack.pop();operand_stack.push(operand1<>operand2);break;case "add_expr":var operand1= operand_stack.pop();var operand2=operand_stack.pop();operand_stack.push(operand1+operand2);break;case "sub_expr":var operand1=operand_stack.pop();var operand2=operand_stack.pop();operand_stack.push(operand1-operand2);break;case "mul_expr":var operand1=operand_stack.pop();var operand2=operand_stack.pop();operand_stack.push(operand1*operand2);break;case "div_expr":var operand1=operand_stack.pop();var operand2=operand_stack.pop();operand_stack.push(operand1/operand2);break;case "mod_expr":var operand1= operand_stack.pop();var operand2=operand_stack.pop();operand_stack.push(operand1%operand2);break;case "pre_inc_expr":case "post_inc_expr":var operand=operand_stack.pop();operand_stack.push(++operand);break;case "pre_dec_expr":case "post_dec_expr":var operand=operand_stack.pop();operand_stack.push(--operand);break;case "positive_expr":var operand=operand_stack.pop();operand_stack.push(+operand);break;case "negative_expr":var operand=operand_stack.pop();operand_stack.push(-operand);break;case "one_compl_expr":var operand= operand_stack.pop();operand_stack.push(~operand);break;case "logic_negative_expr":var operand=operand_stack.pop();operand_stack.push(!operand);break;default:m_assert.panic("Unknown operation type: "+expr_list[i].TYPE);break}if(operand_stack.length==1)return operand_stack[0];else m_assert.panic("Incorrect expression: "+expr_list.join(" "))}function process_include(elem){var file=elem.FILE;var ast_inc=get_shader_ast(cfg_pth.shaders_path,cfg_pth.shaders_include_dir+file);curr_file_stack.push("include/"+ file);process_group(ast_inc);curr_file_stack.pop()}function process_define(elem){var name=elem.NAME;var tokens=elem.TOKENS;dirs[name]=tokens}function process_error(elem){var tokens=elem.TOKENS;m_assert.panic("Shader error: #error "+tokens.join(" "))}function process_pragma(elem){var name=elem.NAME;var tokens=elem.TOKENS;lines.push("#pragma "+name+" "+tokens.join(" "))}function process_undef(elem){var name=elem.NAME;delete dirs[name]}function process_warning(elem){var tokens=elem.TOKENS;m_print.warn("Shader warning: #warning "+ tokens.join(" "))}function process_extension(elem){var tokens=elem.TOKENS;var token_list=expand_macro(tokens,dirs,fdirs,false);lines.push("#extension "+token_list.join(" "))}function process_version(elem){var tokens=elem.TOKENS;var token_list=expand_macro(tokens,dirs,fdirs,false);lines.push("#version "+token_list.join(" "))}function process_node(elem){shader_nodes[elem.NAME]=elem}function check_optional_node_param(nelem,decl,param_index){if(nelem.id=="PARTICLE_INFO"&&decl.IS_OPTIONAL){if(dirs["PARTICLE_BATCH"]== 1){var node_param_usage=false;switch(param_index){case 0:node_param_usage=particle_output_usage(nelem.dirs,"PART_INFO_IND")||particle_output_usage(nelem.dirs,"PART_INFO_AGE")||particle_output_usage(nelem.dirs,"PART_INFO_LT")||particle_output_usage(nelem.dirs,"PART_INFO_SIZE");break;case 1:node_param_usage=particle_output_usage(nelem.dirs,"PART_INFO_LOC");break;case 2:node_param_usage=particle_output_usage(nelem.dirs,"PART_INFO_VEL");break;case 3:node_param_usage=particle_output_usage(nelem.dirs,"PART_INFO_A_VEL"); break;case 4:node_param_usage=particle_output_usage(nelem.dirs,"PART_INFO_IND")}return node_param_usage}return false}return true}function process_nodes_global(node_elements){for(var i=0;i-1|0;node_dirs["USE_OUT_"+decl.NAME]=[use_out];node_out_index++}}return node_dirs} function process_node_vars(node_parts){var vars={};for(var i=0;i-1){var token_str=decl.QUALIFIER.join(" ")+" ";token_str+=new_name+";";process_text_tokens(separate_tokens(token_str));replaces[decl.NAME]=new_name}output_index++;break;case "node_param":if(type=="vert")var new_name=nelem.vparams[param_index];else if(type=="frag")var new_name=nelem.params[param_index];replaces[decl.NAME]=new_name;param_index++;break}}return replaces}function process_node_statements(nelem,statements,replaces, node_dirs){for(var i=0;i-1&&renderer.indexOf("330")>-1&& (check_user_agent("Chrome")||check_user_agent("Firefox"))){warn("Chrome/Firefox and Qualcomm 330 detected, "+"force enable WebGL 1, disable blending cascaded shadow maps.");cfg_def.webgl2=false;cfg_def.chrome_csm_blend_hack=true}}cfg_lim.depth_bits=cfg_def.webgl2?24:16;if(cfg_def.webgl2&&!cfg_dbg.enabled)cfg_def.compared_mode_depth=true;if(!cfg_def.webgl2)cfg_def.msaa_samples=1;else{cfg_def.msaa_samples=Math.min(cfg_def.msaa_samples,gl.getParameter(gl.MAX_SAMPLES));if(check_user_agent("Firefox")){warn("Firefox and WebGL 2 detected, applying framebuffer hack."); cfg_def.check_framebuffer_hack=true}if(check_user_agent("Windows")&&check_user_agent("Chrome")){warn("Windows, Chrome and WebGL 2 detected, applying "+"multisample hack, disabling MSAA.");cfg_def.msaa_samples=1}}if(check_user_agent("Firefox")&&cfg_def.stereo!=="NONE"){warn("Firefox and Stereo rendering detected, disable texture reusage");cfg_def.firefox_tex_reuse_hack=true}if(cfg_def.webgl2&&m_debug_check.multisample_issue()||check_user_agent("Firefox")){warn("Firefox detected, disabling multisample"); cfg_def.msaa_samples=1}if(check_user_agent("Mac OS X")&&check_user_agent("Chrome/60")){warn("macOS and Chrome 60 detected, disabling multisample");cfg_def.msaa_samples=1}m_render.set_draw_methods();var depth_tex_available=Boolean(m_ext.get_depth_texture());if(check_user_agent("Firefox/28.0")&&(check_user_agent("Linux")||check_user_agent("Macintosh"))){warn("Firefox 28 detected, applying depth hack");depth_tex_available=false}if(!check_user_agent("Windows Phone"))if(check_user_agent("iPad")||check_user_agent("iPhone")){warn("iOS detected, applying alpha hack, applying vertex "+ "animation mix normals hack, disable smaa. Disable ssao "+"for performance. Initialize WebAudio context with empty sound. "+"Applying glow hack.");if(!cfg_ctx.alpha)cfg_def.background_color[3]=1;cfg_def.ios_copy_tex_hack=true;cfg_def.vert_anim_mix_normals_hack=true;cfg_def.smaa=false;cfg_def.ssao=false;cfg_def.init_wa_context_hack=true;if(Boolean(m_ext.get_pvr())&&cfg_ldr.pvr_available)cfg_def.compress_format="pvr"}else if(check_user_agent("Mac OS X")&&check_user_agent("Safari")&&!check_user_agent("Chrome")){warn("OS X / Safari detected, force to wait complete loading. "+ "Applying playback rate hack for video textures. "+"Applying canvas alpha hack.");cfg_def.safari_canvas_alpha_hack=true;cfg_sfx.audio_loading_hack=true;cfg_sfx.clamp_playback_rate_hack=true}if(check_user_agent("Windows")&&(check_user_agent("Chrome/40")||check_user_agent("Firefox/33")||check_user_agent("Firefox/34")||check_user_agent("Firefox/35")||check_user_agent("Firefox/36"))){warn("Windows/Chrome40 or Firefox33-36 detected. Applying clear procedural skydome hack.");cfg_def.clear_procedural_sky_hack= true}if(check_user_agent("Chrome")&&!detect_mobile()&&m_cfg.is_built_in_data()){warn("Chrome (non-mobile) was detected for a single HTML-exported "+'file. "Background Music" speakers were changed to "Background Sound".');cfg_def.chrome_html_bkg_music_hack=true}if(check_user_agent("Mac OS X")){cfg_def.mac_os_shadow_hack=true;warn("OS X detected, applying shadows hack")}if(detect_mobile()){warn("Mobile detected, applying various hacks for video textures.");cfg_def.is_mobile_device=true;if(!(check_user_agent("iPad")|| check_user_agent("iPhone"))&&!check_user_agent("Windows Phone")){warn("Mobile (not iOS) detected, disable playback rate for video textures.");cfg_sfx.disable_playback_rate_hack=true}}if(check_user_agent("iPad")){warn('iPad detected, use "autoplay" hack for video textures.');cfg_def.ipad_video_hack=true}if((check_user_agent("Firefox/35.0")||check_user_agent("Firefox/36.0"))&&check_user_agent("Windows")){warn("Windows/Firefox 35/36 detected, applying shadows slink hack");cfg_def.shadows_color_slink_hack= true}if(check_user_agent("iPhone")||is_ie11()){warn("iPhone or IE11 detected. Enable sequential video fallback for video textures.");cfg_def.seq_video_fallback=true}if(cfg_lim.max_varying_vectors-1||renderer.indexOf("2000")>-1)){cfg_def.reuse_depth_optimization= false;warn("Intel HD Graphics 2000/3000 detected, disable depth reuse.")}if(check_user_agent("Chrome")&&renderer.indexOf("Mali-T720")>-1){warn("Chrome and ARM Mali-T720 detected, changing "+'"Alpha Anti-Aliasing" materials to "Alpha Clip".');cfg_def.mali_alpha_antialias_hack=true}if(renderer.indexOf("AMD")>-1&&check_user_agent("Windows")&&check_user_agent("Firefox")){warn("AMD, Windows and Firefox detected, disabling depth textures.");depth_tex_available=false}if(vendor.indexOf("ARM")>-1&&mali_4x_re.test(renderer)){warn("ARM Mali-400 series detected, applying lamps, depth and frames blending hacks"); depth_tex_available=false;cfg_anim.frames_blending_hack=true;cfg_def.mali4_lamps_hack=true}if(vendor.indexOf("ARM")>-1&&renderer.indexOf("Mali-T604")>-1){warn("ARM Mali-T604 detected, disabling shadows.");cfg_def.shadows=false}if(vendor.indexOf("ARM")>-1&&renderer.indexOf("Mali-T760")>-1){warn("ARM Mali-T760 detected, disabling SSAO.");cfg_def.ssao=false;cfg_def.skinning_hack=true;if(cfg_def.webgl2){cfg_def.msaa_samples=1;warn("ARM Mali-T760 and WebGL 2 detected, switching MSAA samples to 1.")}}if(vendor.indexOf("ARM")> -1&&renderer.indexOf("Mali-T720")>-1){warn("ARM Mali-T720 detected, disabling depth textures.");depth_tex_available=false;if(cfg_def.webgl2){cfg_def.msaa_samples=1;warn("ARM Mali-T720 and WebGL 2 detected, switching MSAA samples to 1.")}}if(vendor.indexOf("Qualcomm")>-1&&renderer.indexOf("Adreno")>-1){warn("Qualcomm Adreno detected, applying shader constants hack.");cfg_def.shader_constants_hack=true;if(renderer.indexOf("420")>-1){warn("Qualcomm Adreno420 detected, setting max cubemap size to 12288x8192, "+ "setting max texture size to 4096x4096.");cfg_lim.max_texture_size=Math.min(cfg_lim.max_texture_size,4096);cfg_lim.max_cube_map_texture_size=Math.min(cfg_lim.max_cube_map_texture_size,4096)}if(check_user_agent("Chrome")&&(renderer.match(/4../)||renderer.match(/5../))){warn("Qualcomm Adreno 4xx or 5xx detected, switch MSAA samples to 1.");cfg_def.msaa_samples=1}}if(vendor.indexOf("NVIDIA")>-1&&renderer.indexOf("Tegra 3")>-1){warn("NVIDIA Tegra 3 detected, force low quality for "+"B4W_LEVELS_OF_QUALITY nodes."); cfg_def.force_low_quality_nodes=true}if(check_user_agent("Windows")&&check_user_agent("Chrome")&&!check_user_agent("Edge")&&(renderer.match(/NVIDIA GeForce 8..0/)||renderer.match(/NVIDIA GeForce 9..0/)||renderer.match(/NVIDIA GeForce( (G|GT|GTS|GTX))? 2../))){warn("Chrome / Windows / NVIDIA GeForce 8/9/200 series detected, "+"setting max cubemap size to 768x512, use canvas for resizing.");cfg_lim.max_cube_map_texture_size=exports.NVIDIA_OLD_GPU_CUBEMAP_MAX_SIZE;cfg_def.resize_cubemap_canvas_hack= true}if(renderer.indexOf("PowerVR")>-1&&renderer.indexOf("SGX")>-1){warn("PowerVR SGX series detected, use canvas for resizing. "+"Disable shadows. "+"Apply skinning hack, disable skin blending between frames.");cfg_def.resize_cubemap_canvas_hack=true;cfg_def.skinning_hack=true;cfg_def.shadows=false}if(check_user_agent("Windows")&&renderer.indexOf("Direct3D9")>-1){warn("DirectX 9.0 detected, using canvas for resizing textures/cubemap textures.");cfg_def.d3d9_canvas_resizing_hack=true;cfg_def.resize_cubemap_canvas_hack= true;cfg_def.resize_texture_canvas_hack=true}var architecture="";for(var i=0;i-1){architecture=AMD_MESA_RENDER_NAMES[i];break}if(architecture){warn("Architecture "+architecture+" detected. Blending between frames"+" and shadows on blend objects will be disabled.");cfg_def.skinning_hack=true;cfg_def.disable_blend_shadows_hack=true}}if(cfg_lim.max_vertex_texture_image_units==0){warn("Vertex textures are not allowed. Disabling vertex textures"); cfg_def.allow_vertex_textures=false}if(!depth_tex_available){cfg_def.foam=false;cfg_def.dynamic_grass=false;cfg_def.water_dynamic=false;cfg_def.shore_smoothing=false;cfg_def.shore_distance=false;cfg_def.smaa=false;cfg_def.ssao=false;cfg_def.rgba_fallback_shadows=true}cfg_def.use_compression=Boolean(m_ext.get_s3tc())||cfg_def.compress_format=="pvr";cfg_def.depth_tex_available=depth_tex_available;if(gl.getShaderPrecisionFormat)var high=gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER,gl.HIGH_FLOAT);if(!gl.getShaderPrecisionFormat|| high.precision===0)cfg_def.precision="mediump";if(is_ie11()&&check_user_agent("Touch")||check_user_agent("Edge")){warn("IE11 and touchscreen or Edge detected. Behaviour of the mouse move sensor will be changed.");cfg_def.ie11_edge_touchscreen_hack=true}if(is_ie11()||check_user_agent("Edge")){cfg_def.ie_edge_anchors_floor_hack=true;cfg_def.ie11_edge_mouseoffset_hack=true;cfg_def.resize_cubemap_canvas_hack=true}if(detect_mobile()&&check_user_agent("Firefox")){m_print.log("Mobile firefox detected. Applying autoplay media hack."+ "Setting max cubemap size to 12288x8192, "+"setting max texture size to 4096x4096.");cfg_def.mobile_firefox_media_hack=true;cfg_lim.max_texture_size=Math.min(cfg_lim.max_texture_size,4096);cfg_lim.max_cube_map_texture_size=Math.min(cfg_lim.max_cube_map_texture_size,4096)}var aniso_available=Boolean(m_ext.get_aniso());cfg_def.anisotropic_available=aniso_available;var texture_lod_available=Boolean(m_ext.get_texture_lod());cfg_def.texture_lod_available=texture_lod_available;var tex_float_available=Boolean(m_ext.get_texture_float()); cfg_def.tex_float_available=tex_float_available;var tex_hfloat_available=Boolean(m_ext.get_texture_half_float());cfg_def.tex_hfloat_available=tex_hfloat_available;var tex_float_lin_available=Boolean(m_ext.get_texture_float_linear());cfg_def.tex_float_lin_available=tex_float_lin_available;var tex_hfloat_lin_available=Boolean(m_ext.get_texture_half_float_linear());cfg_def.tex_hfloat_lin_available=tex_hfloat_lin_available;var cbuffer_float_available=Boolean(m_ext.get_color_buffer_float());cfg_def.cbuffer_float_available= cbuffer_float_available;var cbuffer_hfloat_available=Boolean(m_ext.get_color_buffer_half_float());cfg_def.cbuffer_hfloat_available=cbuffer_hfloat_available};exports.check_user_agent=check_user_agent;function check_user_agent(str){var user_agent=navigator.userAgent;if(user_agent.indexOf(str)>-1)return true;else return false}exports.detect_mobile=detect_mobile;function detect_mobile(){return navigator.userAgent.match(/Windows Phone/i)||navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)|| navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/BlackBerry/i)}exports.apply_context_alpha_hack=function(){if(check_user_agent("Firefox/35.0")&&check_user_agent("Windows")){m_print.warn("Windows/Firefox 35 detected, forcing context's alpha");m_cfg.context.alpha=true}};exports.is_ie11=is_ie11;function is_ie11(){return!window.ActiveXObject&&"ActiveXObject"in window}}var int_compat_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__compat", Int_compat);__webpack_exports__["a"]=int_compat_factory},function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,"a",function(){return TBN_NUM_COMP});__webpack_exports__["d"]=from_norm_tan;__webpack_exports__["b"]=copy;__webpack_exports__["h"]=get_quat;__webpack_exports__["o"]=set_quat;__webpack_exports__["g"]=get_norm;__webpack_exports__["c"]=create;__webpack_exports__["i"]=identity;__webpack_exports__["e"]=get_item;__webpack_exports__["n"]=set_item;__webpack_exports__["f"]= get_items_count;__webpack_exports__["j"]=multiply_quat;__webpack_exports__["m"]=multiply_tsr;__webpack_exports__["p"]=slerp;__webpack_exports__["k"]=multiply_tbn;__webpack_exports__["l"]=multiply_tbn_inv;var __WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_1__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec4_js__=__webpack_require__(7); var __WEBPACK_IMPORTED_MODULE_4__util_js__=__webpack_require__(2);var ZERO_TBN_EPSILON=3.1E-5;var TBN_NUM_COMP=4;var INIT_ANGLE=.5;var _quat_tmp=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["create"]();var _quat_tmp2=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["create"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp3=__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["create"](); var _vec4_tmp=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec4_js__["create"]();var _vec4_tmp2=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec4_js__["create"]();function from_norm_tan(normals,tangents,dest){var use_tangent=!!(tangents&&tangents.length);var count=normals.length/3;dest=dest||create(count);for(var i=0;iZERO_TBN_EPSILON||Math.abs(new_tan[1]-tan[1])>ZERO_TBN_EPSILON||Math.abs(new_tan[2]-tan[2])>ZERO_TBN_EPSILON)angle=Math.acos(__WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["dot"](norm,tan))/Math.PI;set_quat(dest,quat,i);set_handedness(dest,__WEBPACK_IMPORTED_MODULE_4__util_js__["_50"](tan[3]),i);set_angle(dest,angle,i)}else{var quat=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["rotationTo"](__WEBPACK_IMPORTED_MODULE_4__util_js__["e"], norm,_quat_tmp);set_quat(dest,quat,i)}}return dest}function copy(src_tbn,src_offset,src_length,dest_tbn){if(src_length===0)return;src_offset=4*src_offset||0;src_length=src_length||src_tbn.length;for(var i=0,j=0;i<4*src_length;i+=4,j+=4){dest_tbn[j]=src_tbn[src_offset+i];dest_tbn[j+1]=src_tbn[src_offset+i+1];dest_tbn[j+2]=src_tbn[src_offset+i+2];dest_tbn[j+3]=src_tbn[src_offset+i+3]}}function get_quat(tbn,index,dest){index=index||0;var cur_tbn=get_item(tbn,index,dest);__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["normalize"](cur_tbn, dest);return dest}function set_quat(tbn,quat,index){index=index||0;var cur_tbn=get_item(tbn,index,_vec4_tmp);var angle=__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["length"](cur_tbn);var is_changed_hand=__WEBPACK_IMPORTED_MODULE_4__util_js__["_50"](cur_tbn[3])*__WEBPACK_IMPORTED_MODULE_4__util_js__["_50"](quat[3])||1;__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["scale"](quat,is_changed_hand*angle,cur_tbn);if(Math.abs(cur_tbn[3])0)cur_tbn[3]=ZERO_TBN_EPSILON; else cur_tbn[3]=-ZERO_TBN_EPSILON;set_item(tbn,cur_tbn,index);return tbn}function get_handedness(tbn,index){index=index||0;return __WEBPACK_IMPORTED_MODULE_4__util_js__["_50"](tbn[index*4+3])}function set_handedness(tbn,handedness,index){index=index||0;var cur_tbn=get_item(tbn,index,_vec4_tmp);var is_changed_hand=__WEBPACK_IMPORTED_MODULE_4__util_js__["_50"](cur_tbn[3])*handedness;if(is_changed_hand<0)__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["scale"](cur_tbn,-1,cur_tbn);set_item(tbn, cur_tbn,index);return tbn}function set_angle(tbn,angle,index){index=index||0;var cur_tbn=get_item(tbn,index,_vec4_tmp);__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["normalize"](cur_tbn,cur_tbn);__WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["scale"](cur_tbn,angle,cur_tbn);if(Math.abs(cur_tbn[3])0)cur_tbn[3]+=ZERO_TBN_EPSILON;else cur_tbn[3]-=ZERO_TBN_EPSILON;set_item(tbn,cur_tbn,index);return tbn}function get_angle(tbn,index){index=index||0;var cur_tbn= get_item(tbn,index,_vec4_tmp);return __WEBPACK_IMPORTED_MODULE_0__libs_gl_matrix_quat_js__["length"](cur_tbn)}function get_norm(tbn,index,dest){var quat=get_quat(tbn,index,_quat_tmp);return __WEBPACK_IMPORTED_MODULE_2__libs_gl_matrix_vec3_js__["transformQuat"](__WEBPACK_IMPORTED_MODULE_4__util_js__["e"],quat,dest)}function create(count){count=count!==0?count||1:0;var tbn=new Float32Array(4*count);for(var i=0;iframe_range[1]){m_print.warn('Incompatible action "'+ action["name"]+'" has been applied to object "'+obj.name+'"');return false}var act_render=action._render;switch(act_render.type){case OBJ_ANIM_TYPE_ARMATURE:if(m_obj_util.is_armature(obj)){var pose_data_frames=get_cached_anim_data(obj,name_list,action);if(!pose_data_frames){pose_data_frames=calc_pose_data_frames(action,obj.render.bone_pointers);cache_anim_data(obj,name_list,action,pose_data_frames)}init_skinned_objs_data(obj,slot_num,action,pose_data_frames)}break;case OBJ_ANIM_TYPE_OBJECT:var flat_tsr_array= act_render.params["tsr"];if(flat_tsr_array){var obj_anim_data=get_cached_anim_data(obj,name_list,action);if(!obj_anim_data){obj_anim_data=calc_obj_anim_data(obj,action,flat_tsr_array);cache_anim_data(obj,name_list,action,obj_anim_data)}}else{m_print.warn('Incompatible action "'+action["name"]+'" has been applied to object "'+obj.name+'"');return false}break}}function apply_action(obj,name_list,action,slot_num){var frame_range=action["frame_range"];if(frame_range[0]>frame_range[1]){m_print.warn('Incompatible action "'+ action["name"]+'" has been applied to object "'+obj.name+'"');return false}var act_render=action._render;var anim_slot=obj.anim_slots[slot_num];anim_slot.animation_name=action["name"];anim_slot.action_frame_range=frame_range;anim_slot.action_step=act_render.pierce_step;anim_slot.action_bflags=act_render.bflags;anim_slot.channels_mask.set(act_render.channels_mask);anim_slot.start=frame_range[0];anim_slot.length=frame_range[1]-frame_range[0];anim_slot.current_frame_float=frame_range[0];switch(act_render.type){case OBJ_ANIM_TYPE_ARMATURE:if(m_obj_util.is_armature(obj)){anim_slot.type= OBJ_ANIM_TYPE_ARMATURE;var pose_data_frames=get_cached_anim_data(obj,name_list,action);if(!pose_data_frames){pose_data_frames=calc_pose_data_frames(action,obj.render.bone_pointers);cache_anim_data(obj,name_list,action,pose_data_frames)}anim_slot.trans=pose_data_frames.trans;anim_slot.quats=pose_data_frames.quats;anim_slot.bone_space_quats=pose_data_frames.bone_space_quats;anim_slot.bone_space_trans=pose_data_frames.bone_space_trans;init_skinned_objs_data(obj,slot_num,action,pose_data_frames)}break; case OBJ_ANIM_TYPE_SOUND:if(m_obj_util.is_speaker(obj)){anim_slot.volume=act_render.params["volume"]||null;anim_slot.pitch=act_render.params["pitch"]||null;anim_slot.type=OBJ_ANIM_TYPE_SOUND}break;case OBJ_ANIM_TYPE_LIGHT:if(m_obj_util.is_lamp(obj)){anim_slot.color=act_render.params["color"]||null;anim_slot.energy=act_render.params["energy"]||null;anim_slot.type=OBJ_ANIM_TYPE_LIGHT}break;case OBJ_ANIM_TYPE_MATERIAL:if(obj.type=="MESH"||obj.type=="WORLD"){anim_slot.type=OBJ_ANIM_TYPE_MATERIAL;var is_world_action= m_obj_util.is_world(obj);var nodemat_anim_data=calc_nodemat_anim_data(obj,name_list,action,is_world_action);anim_slot.node_value_inds=nodemat_anim_data.val_inds;anim_slot.nodemat_values=nodemat_anim_data.values;anim_slot.node_rgb_inds=nodemat_anim_data.rgb_inds;anim_slot.nodemat_rgbs=nodemat_anim_data.rgbs;anim_slot.node_batches=nodemat_anim_data.node_batches}break;case OBJ_ANIM_TYPE_OBJECT:var flat_tsr_array=act_render.params["tsr"];if(flat_tsr_array){anim_slot.type=OBJ_ANIM_TYPE_OBJECT;var obj_anim_data= get_cached_anim_data(obj,name_list,action);if(!obj_anim_data){obj_anim_data=calc_obj_anim_data(obj,action,flat_tsr_array);cache_anim_data(obj,name_list,action,obj_anim_data)}anim_slot.trans=obj_anim_data.trans;anim_slot.scale=obj_anim_data.scale;anim_slot.quats=obj_anim_data.quats;if(m_particles.obj_has_particles(obj)){var trans=anim_slot.trans[0];var scale=anim_slot.scale[0];var quats=anim_slot.quats[0];m_particles.update_start_pos(obj,trans,scale,quats)}}else{m_print.warn('Incompatible action "'+ action["name"]+'" has been applied to object "'+obj.name+'"');return false}break;case OBJ_ANIM_TYPE_ENVIRONMENT:if(m_obj_util.is_world(obj)){anim_slot.energy=act_render.params["light_settings.environment_energy"]||null;anim_slot.horizon_color=act_render.params["horizon_color"]||null;anim_slot.zenith_color=act_render.params["zenith_color"]||null;anim_slot.fog_intensity=act_render.params["mist_settings.intensity"]||null;anim_slot.fog_depth=act_render.params["mist_settings.depth"]||null;anim_slot.fog_start= act_render.params["mist_settings.start"]||null;anim_slot.fog_height=act_render.params["mist_settings.height"]||null;anim_slot.fog_color=act_render.params["b4w_fog_color"]||null;anim_slot.type=OBJ_ANIM_TYPE_ENVIRONMENT}break}if(m_obj_util.is_armature(obj)&&act_render.type!=OBJ_ANIM_TYPE_ARMATURE)recalculate_armature_anim_slots(obj,slot_num);return true}function get_cached_anim_data(obj,name_list,action){var cache=obj.action_anim_cache;if(name_list)var names_str=name_list.join("%join%");else var names_str= null;for(var i=0;iskeletal_slots[1]){var tmp=skeletal_slots[1];skeletal_slots[1]=slot_num;skeletal_slots[0]= tmp}else if(slot_num>skeletal_slots[0]&&slot_num=SLOT_0;i--){var anim_slot=anim_slots[i];if(anim_slot&&anim_slot.type==OBJ_ANIM_TYPE_ARMATURE){if(i>skeletal_slots[1]){skeletal_slots[1]=i;continue}else if(i>skeletal_slots[0])skeletal_slots[1]=i;break}}}function find_armature_constraint(constraints,type){for(var i=0;i< constraints.length;i++){var cons=constraints[i];if(cons["type"]==type){var target=cons["target"];if(target&&target["type"]=="ARMATURE")return cons}}return false}function node_name_from_param_name(param_name,name_list){var node_name=param_name.match(/"(.*?)"/)[1];if(name_list&&name_list.length>1){var full_name=name_list[1];for(var i=2;i=0&&cff>=start+length||speed<0&&cff=0)cff=(cff-start)%length+start;else cff=start+length-LAST_FRAME_EPSILON;break;case AB_FINISH_RESET:if(speed>=0)cff=start;else cff=start+length-LAST_FRAME_EPSILON;anim_slot.play=false;break;case AB_FINISH_STOP:if(speed>=0)cff=start+length-LAST_FRAME_EPSILON;else cff=start;anim_slot.play=false;break}}anim_slot.current_frame_float=cff;switch(anim_type){case OBJ_ANIM_TYPE_ARMATURE:if(!render.anim_mixing){var finfo=action_anim_finfo(anim_slot);var frame= finfo[0];var frame_next=finfo[1];var frame_factor=finfo[2];render.quats_before=anim_slot.quats[frame];render.quats_after=anim_slot.quats[frame_next];render.trans_before=anim_slot.trans[frame];render.trans_after=anim_slot.trans[frame_next];render.frame_factor=frame_factor;animate_skinned_objs(render,anim_slot,frame,frame_next);m_trans.update_transform(obj)}break;case OBJ_ANIM_TYPE_OBJECT:var finfo=action_anim_finfo(anim_slot);var trans=get_anim_translation(anim_slot,0,finfo,_vec3_tmp);var scale=get_anim_scale(anim_slot, 0,finfo,_vec3_tmp2);var quat=get_anim_rotation(anim_slot,0,finfo,_quat4_tmp);if(obj.parent&&obj.pinverse_tsr){var tsr=_tsr_tmp;__WEBPACK_IMPORTED_MODULE_15__tsr_js__["t"](trans,scale,quat,tsr);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["q"](obj.pinverse_tsr,tsr,tsr);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["j"](tsr,trans);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["i"](tsr,scale);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["g"](tsr,quat)}if(anim_slot.trans_smooth_period){var trans_old=m_trans.get_translation(obj, _vec3_tmp3);__WEBPACK_IMPORTED_MODULE_16__util_js__["_54"](trans,trans_old,elapsed,anim_slot.trans_smooth_period,trans)}if(anim_slot.quat_smooth_period){var quat_old=_quat4_tmp2;m_trans.get_rotation(obj,quat_old);__WEBPACK_IMPORTED_MODULE_16__util_js__["_52"](quat,quat_old,elapsed,anim_slot.quat_smooth_period,quat)}var mask=anim_slot.channels_mask;if(mask[0])m_trans.set_translation_rel(obj,trans);if(mask[1])m_trans.set_rotation_rel(obj,quat);if(mask[2])m_trans.set_scale_rel(obj,scale);m_trans.update_transform(obj); m_phy.sync_transform(obj);break;case OBJ_ANIM_TYPE_VERTEX:var finfo=vertex_anim_finfo(anim_slot);render.va_frame=finfo[0];render.va_frame_factor=finfo[2];break;case OBJ_ANIM_TYPE_SOUND:var finfo=action_anim_finfo(anim_slot);var fc=finfo[0];var fn=finfo[1];var ff=finfo[2];if(anim_slot.volume){var volume=(1-ff)*anim_slot.volume[fc]+ff*anim_slot.volume[fn];m_sfx.set_volume(obj,volume)}if(anim_slot.pitch){var pitch=(1-ff)*anim_slot.pitch[fc]+ff*anim_slot.pitch[fn];m_sfx.playrate(obj,pitch)}break;case OBJ_ANIM_TYPE_PARTICLES:if(anim_slot.behavior== AB_CYCLIC)var time=(cff-start)/m_time.get_framerate();else var time=cff/m_time.get_framerate();m_particles.set_time(obj,anim_slot.animation_name,time);break;case OBJ_ANIM_TYPE_MATERIAL:var finfo=action_anim_finfo(anim_slot);var fc=finfo[0];var fn=finfo[1];var ff=finfo[2];var values=anim_slot.nodemat_values;var val_indices=anim_slot.node_value_inds;var rgbs=anim_slot.nodemat_rgbs;var rgb_indices=anim_slot.node_rgb_inds;var node_batches=anim_slot.node_batches;for(var i=0;i=range)index_float=range;var step=anim_slot.action_step;index_float/=step;var frame=Math.floor(index_float);if(anim_slot.action_bflags[frame])var frame_factor=index_float-frame;else var frame_factor=0;var frame_next=Math.ceil(frame+frame_factor);_frame_info_tmp[0]=frame;_frame_info_tmp[1]=frame_next;_frame_info_tmp[2]=frame_factor;return _frame_info_tmp}function vertex_anim_finfo(anim_slot){var cff=anim_slot.current_frame_float;var index_float=cff-anim_slot.start;if(index_float<0)index_float= 0;if(index_float>=anim_slot.length)index_float=anim_slot.length;var frame=Math.floor(index_float);var frame_next=frame+1;var frame_factor=index_float-frame;if(anim_slot.behavior!=AB_CYCLIC&&frame_next==anim_slot.length){frame=frame-1;frame_next=frame;frame_factor=1}var va_frame_offset=anim_slot.va_frame_offset;_frame_info_tmp[0]=frame+va_frame_offset;_frame_info_tmp[1]=frame_next+va_frame_offset;_frame_info_tmp[2]=frame_factor;return _frame_info_tmp}function animate_skinned_objs(render,anim_slot, frame,frame_next){var skinned_renders=render.skinned_renders;var skinning_data=anim_slot.skinning_data;for(var i=0;i=0;i--){var bone_ptr=chain[i];var tsr_channel=bone_ptr.tsr_channel_cache;if(bone_ptr.tsr_channel_cache_valid){tsr_channel_parent=tsr_channel;continue}var tsr_local=bone_ptr.tsr_local_rest;var tsr_basis=bone_ptr.tsr_basis;__WEBPACK_IMPORTED_MODULE_15__tsr_js__["p"](tsr_local,_tsr_tmp);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["q"](tsr_basis,_tsr_tmp,_tsr_tmp);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["q"](tsr_local,_tsr_tmp,_tsr_tmp);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["q"](tsr_channel_parent, _tsr_tmp,tsr_channel);tsr_channel_parent=tsr_channel;bone_ptr.tsr_channel_cache_valid=true}var tsr=bone_ptr.tsr_channel_cache;__WEBPACK_IMPORTED_MODULE_15__tsr_js__["l"](tsr,dest_trans_scale);__WEBPACK_IMPORTED_MODULE_15__tsr_js__["g"](tsr,dest_quat)}exports.append_action=function(action){var BONE_EXP=new RegExp(/pose.bones\[".+"\]/g);var TSR_DEF=__WEBPACK_IMPORTED_MODULE_15__tsr_js__["b"]();var init_storage=function(pierced_points,default_value){if(typeof default_value=="object"&&default_value.length){var len= default_value.length;var storage=new Float32Array(pierced_points*len);for(var i=0;i-1){var storage_obj=bones; var name=data_path.split('"')[1];var def_val=TSR_DEF}else{var storage_obj=params;if(num_channels==8||num_channels==9){var name="tsr";var def_val=TSR_DEF}else if(num_channels>1){var name=data_path;var def_val=new Float32Array(num_channels)}else{var name=data_path;var def_val=0}}if(!storage_obj[name])storage_obj[name]=init_storage(pierced_points,def_val);return storage_obj[name]};var storage_offset=function(data_path,array_index){if(data_path.indexOf("location")>-1){var base_offset=0;var channel_offset= array_index}else if(data_path.indexOf("rotation_quaternion")>-1){var base_offset=6;var channel_offset=array_index==0?NaN:array_index-1}else if(data_path.indexOf("scale")>-1){var base_offset=3;var channel_offset=array_index}else{var base_offset=0;var channel_offset=array_index}return base_offset+channel_offset};var act_render=action._render=create_action_render();act_render.pierce_step=1/cfg_ani.frame_steps;var fcurves=action["fcurves"];var params={};var bones={};var num_pierced=0;for(var data_path in fcurves){var channels= fcurves[data_path];var keys=Object.keys(channels);for(var array_index in channels){var fcurve=channels[array_index];var pp=fcurve._pierced_points;var num_channels=fcurve["num_channels"];if(!num_pierced)num_pierced=pp.length;var storage=get_storage(params,bones,data_path,num_pierced,num_channels);var stride=storage.length/num_pierced;var offset=storage_offset(data_path,array_index|0);if(!(offset!=offset))if(data_path.indexOf("scale")>-1&&num_channels===8)for(var i=0;i-1&&0 in channels){var fcurve=channels[0];var pp=fcurve._pierced_points;var num_channels=fcurve["num_channels"];var storage=get_storage(params,bones,data_path,num_pierced,num_channels);var stride=storage.length/num_pierced;for(var i=0;ilast_frame)for(var j=0;jlen){fac=len/(len1+len2);v2[0]=v1[0]-fac*h1[0];v2[1]=v1[1]-fac*h1[1];v3[0]=v4[0]-fac*h2[0];v3[1]=v4[1]- fac*h2[1]}}function bezier(x,v1,v2,v3,v4){var t=bezier_find_root(0,1,x,v1[0],v2[0],v3[0],v4[0]);var y=bezier_parametric(t,v1[1],v2[1],v3[1],v4[1]);return y}function bezier_find_root(t0_so_far,t1_so_far,x_needed,x0,x1,x2,x3){var t=t0_so_far+(t1_so_far-t0_so_far)/2;var x=bezier_parametric(t,x0,x1,x2,x3);var dx=x-x_needed;var precision=.02;if(Math.abs(dx)0)return bezier_find_root(t0_so_far,t,x_needed,x0,x1,x2,x3);else return bezier_find_root(t,t1_so_far,x_needed,x0,x1,x2,x3)} function bezier_parametric(t,p0,p1,p2,p3){var t1=1-t;return p0*t1*t1*t1+3*p1*t1*t1*t+3*p2*t1*t*t+p3*t*t*t}function get_anim_translation(anim_slot,index,frame_info,dest){var frame=frame_info[0];var frame_next=frame_info[1];var frame_factor=frame_info[2];var trans=anim_slot.trans;var x=trans[frame][4*index];var y=trans[frame][4*index+1];var z=trans[frame][4*index+2];var xn=trans[frame_next][4*index];var yn=trans[frame_next][4*index+1];var zn=trans[frame_next][4*index+2];dest[0]=(1-frame_factor)*x+frame_factor* xn;dest[1]=(1-frame_factor)*y+frame_factor*yn;dest[2]=(1-frame_factor)*z+frame_factor*zn;return dest}function get_anim_rotation(anim_slot,index,frame_info,dest){var frame=frame_info[0];var frame_next=frame_info[1];var frame_factor=frame_info[2];var quats=anim_slot.quats;var quat_frame=_quat4_tmp2;quat_frame[0]=quats[frame][4*index];quat_frame[1]=quats[frame][4*index+1];quat_frame[2]=quats[frame][4*index+2];quat_frame[3]=quats[frame][4*index+3];var quat_frame_next=_quat4_tmp3;quat_frame_next[0]=quats[frame_next][4* index];quat_frame_next[1]=quats[frame_next][4*index+1];quat_frame_next[2]=quats[frame_next][4*index+2];quat_frame_next[3]=quats[frame_next][4*index+3];__WEBPACK_IMPORTED_MODULE_9__libs_gl_matrix_quat_js__["slerp"](quat_frame,quat_frame_next,frame_factor,dest);return dest}function get_anim_scale(anim_slot,index,frame_info,dest){var frame=frame_info[0];var frame_next=frame_info[1];var frame_factor=frame_info[2];var scale=anim_slot.scale;var sx=scale[frame][4*index];var sy=scale[frame][4*index+1];var sz= scale[frame][4*index+2];var sxn=scale[frame_next][4*index];var syn=scale[frame_next][4*index+1];var szn=scale[frame_next][4*index+2];dest[0]=(1-frame_factor)*sx+frame_factor*sxn;dest[1]=(1-frame_factor)*sy+frame_factor*syn;dest[2]=(1-frame_factor)*sz+frame_factor*szn;return dest}function do_before_apply(obj,slot_num){init_anim(obj,slot_num);update_anim_cache(obj)}function do_after_apply(obj,slot_num){m_trans.update_transform(obj);m_phy.sync_transform(obj);update_object_animation(obj,0,slot_num,true)} exports.apply=apply;function apply(obj,name_list,name,slot_num){slot_num=slot_num||SLOT_0;if(m_obj_util.is_mesh(obj)){var vertex_anim=get_vertex_anim_by_name(obj,name);if(vertex_anim){do_before_apply(obj,slot_num);apply_vertex_anim(obj,vertex_anim,slot_num);do_after_apply(obj,slot_num);return true}var pdata=get_particles_data_by_name(obj,name);if(pdata&&pdata.p_type=="EMITTER"){do_before_apply(obj,slot_num);apply_obj_particles_anim(obj,pdata.name,slot_num);do_after_apply(obj,slot_num);return true}}var action= __WEBPACK_IMPORTED_MODULE_16__util_js__["_19"]("name",name,_actions)||__WEBPACK_IMPORTED_MODULE_16__util_js__["_19"]("name",name+"_B4W_BAKED",_actions);if(action){do_before_apply(obj,slot_num);if(apply_action(obj,name_list,action,slot_num)){do_after_apply(obj,slot_num);return true}else obj.anim_slots[slot_num]=null}m_print.error('Unsupported object: "'+obj.name+'" or animation name: "'+name+'"');return false}exports.apply_by_uuid=function(obj,name_list,uuid,slot_num){slot_num=slot_num||SLOT_0;var action= __WEBPACK_IMPORTED_MODULE_16__util_js__["_19"]("uuid",uuid,_actions);if(action){do_before_apply(obj,slot_num);if(apply_action(obj,name_list,action,slot_num)){do_after_apply(obj,slot_num);return true}else obj.anim_slots[slot_num]=null}m_print.error('Unsupported object: "'+obj.name+'" or animation uuid: "'+uuid+'"');return false};exports.validate_action_by_name=function(obj,name){var action=__WEBPACK_IMPORTED_MODULE_16__util_js__["_19"]("name",name,_actions)||__WEBPACK_IMPORTED_MODULE_16__util_js__["_19"]("name", name+"_B4W_BAKED",_actions);if(action){if(action._render.type==OBJ_ANIM_TYPE_NONE)return false}else{var pdata=get_particles_data_by_name(obj,name);if(!pdata)if(!m_obj_util.is_mesh(obj)||!get_vertex_anim_by_name(obj,name))return false}return true};exports.get_slot_num_by_anim=get_slot_num_by_anim;function get_slot_num_by_anim(obj,anim_name){var anim_slots=obj.anim_slots;for(var i=0;i=0;i--)if(_actions[i]._data_id==data_id)_actions.splice(i,1)};exports.apply_to_first_empty_slot=function(obj, name){if(!obj.anim_slots.length)if(apply(obj,null,name,SLOT_0))return SLOT_0;else return-1;for(var i=0;i 0){device.webvr_display=displays[0];device.registered=true;device.webvr_display.getFrameData(device.frame_data);if(device.registered_cb)device.registered_cb()}},function(error){m_print.error_once("WebVR displays are not found.");device.registered=false});else if(navigator.getVRDevices){navigator.getVRDevices().then(function(webvr_devices){setup_webvr_devices(device,webvr_devices);if(webvr_devices.length)device.registered=true;if(device.registered_cb)device.registered_cb()},function(error){m_print.error_once("WebVR devices are not found."); device.registered=false});setup_distortion_coef(device,cfg_hmdp["webvr"])}else{setup_nonwebvr_hmd_device(device);device.registered=true}}function set_gamepad_mapping(device){device.gamepad_mapping.push(exports.GMPD_BUTTON_0,exports.GMPD_BUTTON_1,exports.GMPD_BUTTON_2,exports.GMPD_BUTTON_3,exports.GMPD_BUTTON_4,exports.GMPD_BUTTON_5,exports.GMPD_BUTTON_6,exports.GMPD_BUTTON_7,exports.GMPD_BUTTON_8,exports.GMPD_BUTTON_9,exports.GMPD_BUTTON_10,exports.GMPD_BUTTON_11,exports.GMPD_BUTTON_12,exports.GMPD_BUTTON_13, exports.GMPD_BUTTON_14,exports.GMPD_BUTTON_15,exports.GMPD_BUTTON_16,exports.GMPD_BUTTON_17,exports.GMPD_BUTTON_18,exports.GMPD_BUTTON_19,exports.GMPD_BUTTON_20,exports.GMPD_BUTTON_21,exports.GMPD_BUTTON_22,exports.GMPD_BUTTON_23,exports.GMPD_BUTTON_24,exports.GMPD_BUTTON_25,exports.GMPD_AXIS_0,exports.GMPD_AXIS_1,exports.GMPD_AXIS_2,exports.GMPD_AXIS_3,exports.GMPD_AXIS_4,exports.GMPD_AXIS_5,exports.GMPD_AXIS_6,exports.GMPD_AXIS_7,exports.GMPD_AXIS_8,exports.GMPD_AXIS_9,exports.GMPD_AXIS_10,exports.GMPD_AXIS_11)} function get_devices_by_element(element){var devices=[];for(var i=0;i<_devices.length;i++)if(_devices[i].element==element)devices.push(_devices[i]);return devices}exports.switch_prevent_default=function(device,prevent_default){device.prevent_default=prevent_default};function setup_nonwebvr_hmd_device(device){var device_params=cfg_hmdp["nonwebvr"];device.width_dist=device_params.width_dist;device.height_dist=device_params.height_dist;device.bevel_size=device_params.bevel_size;setup_distortion_coef(device, device_params);device.inter_lens_dist=device_params.inter_lens_dist;device.base_line_dist=device_params.base_line_dist;device.screen_to_lens_dist=device_params.screen_to_lens_dist;update_nonwebvr_fov(device)}function setup_distortion_coef(device,device_params){device.distortion_coefs[0]=device_params.distortion_coefs[0],device.distortion_coefs[1]=device_params.distortion_coefs[1];device.chromatic_aberration_coefs[0]=device_params.chromatic_aberration_coefs[0];device.chromatic_aberration_coefs[1]= device_params.chromatic_aberration_coefs[1];device.chromatic_aberration_coefs[2]=device_params.chromatic_aberration_coefs[2];device.chromatic_aberration_coefs[3]=device_params.chromatic_aberration_coefs[3]}function get_distort_fact_radius(distortion_coefs,radius){var rsq=radius*radius;return radius*(1+distortion_coefs[0]*rsq+distortion_coefs[1]*rsq*rsq)}function update_nonwebvr_fov(device){var inner_dist=device.inter_lens_dist/2;var inner_tang=inner_dist/device.screen_to_lens_dist;var inner_angle= Math.atan(inner_tang*cfg_hmdp["nonwebvr"].distor_scale);var outer_angle=inner_angle;var bottom_angle=inner_angle;var top_angle=inner_angle;if(top_angle)device.fov_left[0]=device.fov_right[0]=Math.min(top_angle,Math.PI/3);if(inner_angle)device.fov_left[1]=device.fov_right[3]=Math.min(inner_angle,Math.PI/3);if(bottom_angle)device.fov_left[2]=device.fov_right[2]=Math.min(bottom_angle,Math.PI/3);if(outer_angle)device.fov_left[3]=device.fov_right[1]=Math.min(outer_angle,Math.PI/3)}function setup_webvr_devices(device, webvr_devices){var webvr_hmd_devices=webvr_devices.filter(function(device){return device instanceof HMDVRDevice});var webvr_hmd_device=null;if(webvr_hmd_devices.length)webvr_hmd_device=webvr_hmd_devices[0];var webvr_sensor_devices=null;if(webvr_hmd_device)webvr_sensor_devices=webvr_devices.filter(function(webvr_device){return webvr_device.deviceName.toLowerCase().indexOf("oculus")!==-1&&webvr_device.hardwareUnitId==webvr_hmd_device.hardwareUnitId&&webvr_device instanceof PositionSensorVRDevice}); device.webvr_hmd_device=webvr_hmd_device;device.webvr_sensor_devices=webvr_sensor_devices}exports.reset_device=reset_device;function reset_device(device){switch(device.type){case DEVICE_HMD:if(device.registered)if(device.webvr_display)device.webvr_display.resetPose();else if(device.webvr_sensor_devices)for(var i=0;i=0)cb_list[cb_index]=null}function is_null(x){return x===null}exports.detach_param_cb=function(device,param,cb){unregister_event_listener(device,param,cb,false)};function unregister_event_listener(device,param,cb,force){switch(param){case GYRO_ORIENTATION_QUAT:cb&&replace_cb_with_null(device.orientation_quat_cb_list,cb);if(force||device.orientation_angles_cb_list.every(is_null)&&device.orientation_quat_cb_list.every(is_null)){device.orientation_quat_cb_list.length= 0;device.orientation_angles_cb_list.length=0;param=DEVICE_ORIENTATION;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("deviceorientation",device_orientation_cb,false)}}break;case GYRO_ORIENTATION_ANGLES:cb&&replace_cb_with_null(device.orientation_angles_cb_list,cb);if(force||device.orientation_angles_cb_list.every(is_null)&&device.orientation_quat_cb_list.every(is_null)){device.orientation_quat_cb_list.length= 0;device.orientation_angles_cb_list.length=0;param=DEVICE_ORIENTATION;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("deviceorientation",device_orientation_cb,false)}}break;case MOUSE_DOWN_WHICH:cb&&replace_cb_with_null(device.mouse_down_which_cb_list,cb);if(force||device.mouse_down_which_cb_list.every(is_null)){device.mouse_down_which_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param); if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("mousedown",mouse_down_cb,false)}}break;case MOUSE_LOCATION:cb&&replace_cb_with_null(device.mouse_location_cb_list,cb);if(force||device.mouse_location_cb_list.every(is_null)){device.mouse_location_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("mousemove", mouse_move_cb,false)}}break;case MOUSE_LOCATION_PL:cb&&replace_cb_with_null(device.mouse_location_cb_list,cb);if(force||device.mouse_location_cb_list.every(is_null)){device.mouse_location_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("mousemove",pointerlock_cb,false)}}break;case MOUSE_UP_WHICH:cb&&replace_cb_with_null(device.mouse_up_which_cb_list,cb);if(force|| device.mouse_up_which_cb_list.every(is_null)){device.mouse_up_which_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("mouseout",mouse_out_cb,false);device.element.removeEventListener("mouseup",mouse_up_cb,false)}break}break;case MOUSE_WHEEL:cb&&replace_cb_with_null(device.mouse_wheel_cb_list,cb);if(force||device.mouse_wheel_cb_list.every(is_null)){device.mouse_wheel_cb_list.length= 0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("wheel",mouse_wheel_cb,false)}}break;case KEYBOARD_DOWN:cb&&replace_cb_with_null(device.keyboard_down_cb_list,cb);if(force||device.keyboard_down_cb_list.every(is_null)){device.keyboard_down_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index, 1);device.element.removeEventListener("keydown",keyboard_down_cb,false)}}break;case KEYBOARD_UP:cb&&replace_cb_with_null(device.keyboard_up_cb_list,cb);if(force||device.keyboard_up_cb_list.every(is_null)){device.keyboard_up_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("keyup",keyboard_up_cb,false)}}break;case TOUCH_START:cb&&replace_cb_with_null(device.touch_start_cb_list, cb);if(force||device.touch_start_cb_list.every(is_null)){device.touch_start_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("touchstart",touch_start_cb,false)}}break;case TOUCH_MOVE:cb&&replace_cb_with_null(device.touch_move_cb_list,cb);if(force||device.touch_move_cb_list.every(is_null)){device.touch_move_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param); if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("touchmove",touch_move_cb,false)}}break;case TOUCH_END:cb&&replace_cb_with_null(device.touch_end_cb_list,cb);if(force||device.touch_end_cb_list.every(is_null)){device.touch_end_cb_list.length=0;var param_index=device.registered_event_listeners.indexOf(param);if(param_index>=0){device.registered_event_listeners.splice(param_index,1);device.element.removeEventListener("touchend",touch_end_cb, false)}}break}}function is_ios(){return/iPad|iPhone|iPod/.test(navigator.platform)}function register_event_listener(device,event_name){switch(event_name){case MOUSE_DOWN_WHICH:if(!is_ios())device.element.addEventListener("mousedown",mouse_down_cb,false);break;case MOUSE_LOCATION:device.element.addEventListener("mousemove",mouse_move_cb,false);break;case MOUSE_LOCATION_PL:device.element.addEventListener("mousemove",pointerlock_cb,false);break;case MOUSE_UP_WHICH:if(!is_ios()){if(device.element!=window)device.element.addEventListener("mouseout", mouse_out_cb,false);device.element.addEventListener("mouseup",mouse_up_cb,false)}break;case MOUSE_WHEEL:device.element.addEventListener("wheel",mouse_wheel_cb,false);break;case KEYBOARD_DOWN:device.element.addEventListener("keydown",keyboard_down_cb,false);break;case KEYBOARD_UP:device.element.addEventListener("keyup",keyboard_up_cb,false);break;case TOUCH_START:device.element.addEventListener("touchstart",touch_start_cb,false);break;case TOUCH_MOVE:device.element.addEventListener("touchmove",touch_move_cb, false);break;case TOUCH_END:device.element.addEventListener("touchend",touch_end_cb,false);break;case DEVICE_ORIENTATION:device.element.addEventListener("deviceorientation",device_orientation_cb,false);break}}function get_orientation_quat(device,dest){switch(device.type){case DEVICE_HMD:__WEBPACK_IMPORTED_MODULE_9__libs_gl_matrix_vec3_js__["copy"](__WEBPACK_IMPORTED_MODULE_8__util_js__["k"],dest);if(device.webvr_display){dest[0]=device.orientation[0];dest[1]=device.orientation[1];dest[2]=device.orientation[2]; dest[3]=device.orientation[3]}else if(device.webvr_sensor_devices)for(var i=0;iMath.abs(max)){max=m[i];ind=i}var ii=Math.floor(ind/ 3);var jj=ind%3;var fi=.5*Math.atan(2*max/(m[ii*3+ii]-m[jj*3+jj]));for(var i=0;i0){var parent_n=(n+1>>1)-1,parent=heap.content[parent_n];if(heap.score_function(element)0){heap.content[0]=end;binary_heap_bubble_up(heap,0)}return result}function binary_heap_remove(heap,node){var i=heap.content.indexOf(node);var end=heap.content.pop();if(i!==heap.content.length-1){heap.content[i]=end;if(heap.score_function(end)2048||h>2048)color="a00";else if(w>1024||h>1024)color="aa0";else color="0a0";m_print.log("%cLOAD IMAGE "+w+"x"+h,"color: #"+ color,image_path);if(image_path.indexOf(_debug_resources_root)==-1&&show_path_warning)m_print.warn("image",image_path,"is not from app root.")}function print_video_info(video,image_path,show_path_warning,type){if(type==m_assets.AT_VIDEO_ELEMENT){var w=video.videoWidth;var h=video.videoHeight}else{var w=video.images[0].width;var h=video.images[0].height}var color;if(w>2048||h>2048)color="a00";else if(w>1024||h>1024)color="aa0";else color="0a0";m_print.log("%cLOAD VIDEO "+w+"x"+h,"color: #"+color,image_path); if(image_path.indexOf(_debug_resources_root)==-1&&show_path_warning)m_print.warn("video",image_path,"is not from app root.")}function load_main(bpy_data,thread,stage,cb_param,cb_finish,cb_set_rate){var main_path=thread.filepath;if(!main_path)m_assert.panic("Nothing requested");var asset_cb=function(loaded_bpy_data,id,type,url){if(!loaded_bpy_data)if(type==m_assets.AT_JSON_ZIP){m_print.warn("Compressed file ",url,"not found or invalid. Trying to load non-compressed",main_path);m_assets.enqueue([{id:main_path, type:m_assets.AT_JSON,url:main_path,is_fetch:thread.is_preloading}],asset_cb,null,progress_cb);return}else{m_loader.abort_thread(thread);return}m_print.log("%cLOAD METADATA","color: #616",url);check_format_version(loaded_bpy_data);for(var prop in loaded_bpy_data)bpy_data[prop]=loaded_bpy_data[prop];prepare_thread_bpy(thread,bpy_data);show_export_errors(bpy_data,thread);show_export_warnings(bpy_data,thread);if(thread.is_preloading)setup_dds_loading(bpy_data);cb_finish(thread,stage)};var progress_cb= function(rate){cb_set_rate(thread,stage,rate)};if(cfg_def.assets_gzip_available){var asset_path=main_path+".gz";var asset_type=m_assets.AT_JSON_ZIP}else{var asset_path=main_path;var asset_type=m_assets.AT_JSON}m_assets.enqueue([{id:asset_path,type:asset_type,url:asset_path,is_fetch:thread.is_preloading}],asset_cb,null,progress_cb)}function prepare_thread_bpy(thread,bpy_data){if(thread.is_primary)_primary_scene=m_scenes.find_main_scene(bpy_data["scenes"]);var bin_name=bpy_data["binaries"][0]["binfile"]; if(bin_name)thread.binary_name=bin_name;else{m_loader.skip_stage_by_name(thread,"load_binaries");m_loader.skip_stage_by_name(thread,"prepare_bindata")}if(!cfg_def.is_mobile_device)m_loader.skip_stage_by_name(thread,"mobile_media_start");if(!cfg_def.antialiasing||!cfg_def.smaa)m_loader.skip_stage_by_name(thread,"load_smaa_textures")}function show_export_warnings(bpy_data,thread){if(bpy_data["b4w_export_warnings"])for(var i=0;icfg_def.min_format_version[0])m_assert.panic("B4W engine version is too old relative to JSON. "+"Can't load the scene. Update your "+"engine version to fix it.");else m_print.error("B4W engine version is a bit old relative to JSON. "+"Some compatibility issues can occur. Update "+"your engine version to fix it.");break}cfg_def.loaded_data_version=ver_loaded}function prepare_bindata(bpy_data,thread,stage,cb_param,cb_finish,cb_set_rate){var bin_data=bpy_data["bin_data"]; var bin_offsets=bpy_data["binaries"][0];var objects=bpy_data["objects"];var meshes=bpy_data["meshes"];var actions=bpy_data["actions"];var is_le=__WEBPACK_IMPORTED_MODULE_37__util_js__["K"]();prepare_bindata_submeshes(bin_data,bin_offsets,meshes,is_le,B4W_HEADER_OFFSET);prepare_bindata_psystems(bin_data,bin_offsets,objects,is_le,B4W_HEADER_OFFSET);prepare_bindata_actions(bin_data,bin_offsets,actions,is_le,B4W_HEADER_OFFSET);cb_finish(thread,stage)}function check_bin_data_version(bin_data,bpy_data){var headers= get_header(bin_data);var ver_loaded=__WEBPACK_IMPORTED_MODULE_37__util_js__["_58"](bpy_data["b4w_format_version"]);if(headers[0]!=ver_loaded[0])m_assert.panic("BIN version does not match to JSON version: "+__WEBPACK_IMPORTED_MODULE_37__util_js__["_71"](headers)+", required: "+__WEBPACK_IMPORTED_MODULE_37__util_js__["_71"](cfg_def.min_format_version)+". Couldn't load the scene. "+"Reexport scene to fix it.");if(headers[1]!=ver_loaded[1])m_print.warn("BIN version does not match to JSON version: "+ +__WEBPACK_IMPORTED_MODULE_37__util_js__["_71"](headers)+ ", required: "+__WEBPACK_IMPORTED_MODULE_37__util_js__["_71"](cfg_def.min_format_version)+". Some compatibility issues can occur. "+"Reexport scene to fix it.")}function get_header(bin_data){var major_version=(new Uint32Array(bin_data,4,1))[0];var minor_version=(new Uint32Array(bin_data,8,1))[0];return[major_version,minor_version]}function prepare_bindata_submeshes(bin_data,bin_offsets,meshes,is_le,b4w_offset){var int_props=["indices"];var float_props=["position","texcoord","texcoord2","shade_tangs"]; var short_props=["normal","tangent"];var ushort_props=["group"];var uchar_props=["color"];for(var i=0;i-1;has_quat_rot|=data_path.indexOf("rotation_quaternion")>-1}var paths_to_rename= [];for(var data_path in fcurves){if(has_euler_rot&&has_quat_rot&&data_path.indexOf("rotation_euler")>-1){delete fcurves[data_path];continue}var channels=fcurves[data_path];for(var array_index in channels){var fcurve=channels[array_index];var offset=bin_offsets["float"]+fcurve["bin_data_pos"][0]*__WEBPACK_IMPORTED_MODULE_37__util_js__["h"]+b4w_offset;var fcurve_bin_data=extract_bindata_float(bin_data,offset,fcurve["bin_data_pos"][1],is_le);var points=new Float32Array(arr_length);if(bflags===null)bflags= new Int8Array(arr_length);m_anim.approximate_curve(fcurve,fcurve_bin_data,points,bflags,start,end);fcurve._pierced_points=points}if(data_path.indexOf("rotation_euler")>-1){m_anim.fcurve_replace_euler_by_quat(fcurves[data_path]);paths_to_rename.push(data_path)}}for(var j=0;j1){bpy_data["scenes"]=[m_scenes.find_main_scene(bpy_data["scenes"])];m_print.warn("loading data contains multiple scenes.", "Only the first one will be loaded.")}if(thread.is_primary)var main_scene=_primary_scene;else var main_scene=m_scenes.find_main_scene(bpy_data["scenes"]);m_time.set_framerate(_primary_scene["fps"]);if(bpy_data["scenes"].length>1){var index_of_main_scene=bpy_data["scenes"].indexOf(_primary_scene);bpy_data["scenes"].splice(index_of_main_scene,1);bpy_data["scenes"].unshift(_primary_scene)}for(var i=0;i-1)bpy_obj["parent"]="";if(bpy_obj["type"]=="MESH"){var mesh=m_reformer.apply_mesh_modifiers(bpy_obj); if(mesh){bpy_data["meshes"].push(mesh);bpy_obj["data"]=mesh}}bpy_obj._def_action_slots=m_obj.get_bpy_def_action_slots(bpy_obj,false);bpy_obj._is_dynamic=m_obj.bpy_obj_is_dynamic(bpy_obj)}for(var i=0;i=0;i--)if(!cache[i]._scenes)cache.splice(i,1)}function create_bpy_hierarchy_cache_iter(bpy_objects,grp_num,is_primary, object_levels){object_levels[grp_num]=object_levels[grp_num]||[];var group_level=object_levels[grp_num];for(var i=0;i-1)image._comp_method="dds";else if(use_compression){image._comp_method=cfg_def.compress_format; if(cfg_def.compress_format=="dds")image["filepath"]+=".dds";else image["filepath"]+=".pvr"}else image._comp_method=""}function unset_images_dds(images){for(var i=0;i-1&&cfg_def.compress_format=="dds");if(use_dds)image._comp_method="dds";else image._comp_method=""}}function get_global_anisotropic_filtering(bpy_data,thread){if(thread.is_primary)return bpy_data["scenes"][0]["b4w_anisotropic_filtering"]; else return _primary_scene["b4w_anisotropic_filtering"]}function duplicate_objects(bpy_data,thread,stage,cb_param,cb_finish,cb_set_rate){var groups=bpy_data["groups"];var bpy_objects=bpy_data["objects"];var grp_ids_old={};var obj_ids_old={};var grp_ids={};var obj_ids={};for(var i=0;i-1)obj_links.splice(obj_index,1)}var obj_id_overrides={};if(origin_obj)for(var i=0;iupper_max_bones)upper_max_bones=max_bones;if(gl_max_bones>=max_bones&&max_bones>blending_max_bones)blending_max_bones=max_bones}for(var i=0;i0)__WEBPACK_IMPORTED_MODULE_38__libs_gl_matrix_vec3_js__["subtract"](main_lod_render.bs_world.center,render.bs_world.center,render.main_lod_offset);render.lod_dist_min=lod_dists[j];render.lod_dist_max=lod_dists[j+1];var prev_level_spread=j==0?0: lod_dists[j]-lod_dists[j-1];var curr_level_spread=lod_dists[j+1]-lod_dists[j];var next_level_spread=j==lod_levels.length-1?Infinity:lod_dists[j+2]-lod_dists[j+1];render.lod_lower_border_range=Math.min(prev_level_spread,curr_level_spread);render.lod_upper_border_range=Math.min(curr_level_spread,next_level_spread)}}}function prepare_vehicles(objects){for(var i=0;i-1)bpy_objs.splice(obj_index,1)}}function remove_obj_from_dupli_group_r(remobj,dupli_group){var dg_objects=dupli_group["objects"];var obj_index=dg_objects.indexOf(remobj);if(obj_index>-1)dg_objects.splice(obj_index, 1);for(var i=0;i=0;i--){var obj=objs[i];prepare_object_unloading(obj);m_obj.remove_object(obj)}objs=m_obj.get_all_objects("ALL",m_obj.DATA_ID_ALL);for(var i=0;i=cfg_ldr.max_requests)break;if(asset.state!==ASTATE_ENQUEUED)continue;asset.state=ASTATE_REQUESTED;req_cnt++;switch(asset.type){case exports.AT_JSON_ZIP:case exports.AT_ARRAYBUFFER:case exports.AT_ARRAYBUFFER_ZIP:request_arraybuffer(asset,"arraybuffer");break;case exports.AT_JSON:request_arraybuffer(asset,"json");break;case exports.AT_TEXT:request_arraybuffer(asset,"text");break;case exports.AT_AUDIOBUFFER:request_audiobuffer(asset); break;case exports.AT_IMAGE_ELEMENT:request_image(asset);break;case exports.AT_AUDIO_ELEMENT:request_audio(asset);break;case exports.AT_VIDEO_ELEMENT:request_video(asset);break;case exports.AT_SEQ_VIDEO_ELEMENT:request_seq_video(asset);break;default:m_assert.panic("Wrong asset type: "+asset.type);break}}}function request_arraybuffer(asset,response_type){var filepath=asset.url.split("?v=")[0];if(filepath in _arraybuffer_cache){if(response_type=="json")asset.asset_cb(__WEBPACK_IMPORTED_MODULE_7__util_js__["O"](_arraybuffer_cache[filepath]), asset.id,asset.type,asset.url,asset.param);else asset.asset_cb(_arraybuffer_cache[filepath],asset.id,asset.type,asset.url,asset.param);return}var bd=get_built_in_data();if(bd&&asset.url in bd)var req=new FakeHttpRequest;else var req=new XMLHttpRequest;var content_type=null;if(asset.request_method=="GET")req.open("GET",asset.url,true);else if(asset.request_method=="POST"){req.open("POST",asset.url,true);switch(asset.type){case exports.AT_TEXT:content_type="text/plain";break;case exports.AT_JSON:content_type= "application/json";break}}if(asset.overwrite_header)for(var key in asset.overwrite_header)if(key=="Content-Type")content_type=asset.overwrite_header[key];else req.setRequestHeader(key,asset.overwrite_header[key]);if(content_type)req.setRequestHeader("Content-Type",content_type);if(response_type=="text"){req.overrideMimeType("text/plain");req.responseType="text"}else if(response_type=="json"){req.overrideMimeType("application/json");req.responseType="text"}else req.responseType=response_type;req.onreadystatechange= function(){if(asset.state!=ASTATE_HALTED)if(req.readyState==4){if(req.status==200||req.status==0){var response=req.response;var empty_response=!response||response_type=="arraybuffer"&&response["byteLength"]==0;if(!empty_response){switch(asset.type){case exports.AT_JSON_ZIP:try{response=__WEBPACK_IMPORTED_MODULE_4__libs_pako_inflate_js__["a"](response,{to:"string"})}catch(e){m_print.error(e+" (parsing gzipped file "+asset.url+")");asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);return}case exports.AT_JSON:try{response= JSON.parse(response,asset.json_reviver)}catch(e){m_print.error(e+" (parsing JSON "+asset.url+")");asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);return}break;case exports.AT_ARRAYBUFFER_ZIP:try{response=__WEBPACK_IMPORTED_MODULE_4__libs_pako_inflate_js__["a"](response).buffer}catch(e){m_print.error(e+" (parsing gzipped file "+asset.url+")");asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);return}break}if(asset.is_fetch)if(asset.type==exports.AT_JSON||asset.type==exports.AT_JSON_ZIP)_arraybuffer_cache[filepath]= __WEBPACK_IMPORTED_MODULE_7__util_js__["O"](response);else _arraybuffer_cache[filepath]=response;asset.asset_cb(response,asset.id,asset.type,asset.url,asset.param)}else{m_print.error("empty responce when trying to get "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param)}}else{m_print.error(req.status+" when trying to get "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param)}asset.state=ASTATE_RECEIVED}};req.addEventListener("progress",function(e){if(e.lengthComputable)asset.progress_cb(e.loaded/ e.total)},false);req.send(asset.post_data)}function request_audiobuffer(asset){var filepath=asset.url.split("?v=")[0];if(filepath in _arraybuffer_sound_cache){asset.asset_cb(_arraybuffer_sound_cache[filepath],asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;return}if(asset.request_method!="GET")m_assert.panic("Unsupported request type for audio buffer");var bd=get_built_in_data();if(bd&&asset.url in bd)var req=new FakeHttpRequest;else var req=new XMLHttpRequest;req.open("GET", asset.url,true);req.responseType="arraybuffer";req.onreadystatechange=function(){if(asset.state!=ASTATE_HALTED)if(req.readyState==4)if(req.status==200||req.status==0){var response=req.response;if(response){var decode_cb=function(audio_buffer){asset.asset_cb(audio_buffer,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;if(asset.is_fetch){var filepath=asset.url.split("?v=")[0];_arraybuffer_sound_cache[filepath]=audio_buffer}};var fail_cb=function(){m_print.error("failed to decode "+ asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED};m_sfg.decode_audio_data(response,decode_cb,fail_cb)}else{m_print.error("empty responce when trying to get "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}}else{m_print.error(req.status+" when trying to get "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}};req.send()}function request_image(asset){var filepath= asset.url.split("?v=")[0];if(filepath in _img_cache){asset.asset_cb(_img_cache[filepath],asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;return}if(asset.request_method!="GET")m_assert.panic("Unsupported request type for image element");var image=document.createElement("img");if(cfg_def.allow_cors)image.crossOrigin="Anonymous";image.onload=function(){if(asset.state!=ASTATE_HALTED){asset.asset_cb(image,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;if(asset.is_fetch){var filepath= asset.url.split("?v=")[0];_img_cache[filepath]=image}}};image.addEventListener("error",function(){if(asset.state!=ASTATE_HALTED){m_print.error("could not load image: "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}},false);var bd=get_built_in_data();if(bd&&asset.url in bd)if(bd[asset.url]){var img_mime_type=get_image_mime_type(asset.url);image.src="data:"+img_mime_type+";base64,"+bd[asset.url]}else{if(m_compat.is_ie11()){var e=document.createEvent("CustomEvent"); e.initCustomEvent("error",false,false,null)}else var e=new CustomEvent("error");image.dispatchEvent(e)}else image.src=asset.url}function request_audio(asset){var filepath=asset.url.split("?v=")[0];if(filepath in _sound_cache){asset.asset_cb(_sound_cache[filepath],asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;return}if(asset.request_method!="GET")m_assert.panic("Unsupported request type for audio element");var audio=document.createElement("audio");if(cfg_def.allow_cors)audio.crossOrigin= "Anonymous";audio.addEventListener("loadeddata",function(){if(asset.state!=ASTATE_HALTED){asset.asset_cb(audio,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;if(asset.is_fetch){var filepath=asset.url.split("?v=")[0];_sound_cache[filepath]=audio}}},false);audio.addEventListener("error",function(){if(asset.state!=ASTATE_HALTED){m_print.error("could not load sound: "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}},false); audio.addEventListener("stalled",function(){if(asset.state!=ASTATE_HALTED){m_print.error("could not load sound: "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}},false);var bd=get_built_in_data();if(bd&&asset.url in bd)if(bd[asset.url]){var snd_mime_type=get_sound_mime_type(asset.url);audio.src="data:"+snd_mime_type+";base64,"+bd[asset.url];if(asset.state!=ASTATE_HALTED){asset.asset_cb(audio,asset.id,asset.type,asset.url,asset.param);asset.state= ASTATE_RECEIVED}}else{if(m_compat.is_ie11()){var e=document.createEvent("CustomEvent");e.initCustomEvent("error",false,false,null)}else var e=new CustomEvent("error");audio.dispatchEvent(e)}else{audio.src=asset.url;if(cfg_def.is_mobile_device)audio.load()}if(cfg_def.mobile_firefox_media_hack){audio.autoplay=true;audio.pause()}setTimeout(function(){audio.some_prop_to_prevent_gc=1},5E3)}function request_video(asset){var filepath=asset.url.split("?v=")[0];if(filepath in _img_cache){asset.asset_cb(_img_cache[filepath], asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;return}if(asset.request_method!="GET")m_assert.panic("Unsupported request type for video element");var video=document.createElement("video");video.muted=true;if(cfg_def.allow_cors)video.crossOrigin="Anonymous";video.addEventListener("loadeddata",function(){video.removeEventListener("error",video_error_event,false);if(asset.state!=ASTATE_HALTED){asset.asset_cb(video,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED; if(asset.is_fetch){var filepath=asset.url.split("?v=")[0];_img_cache[filepath]=video}}},false);function video_error_event(e){if(asset.state!=ASTATE_HALTED){m_print.error("could not load video: "+asset.url,asset.param);asset.asset_cb(null,asset.id,asset.type,asset.url);asset.state=ASTATE_RECEIVED}}video.addEventListener("error",video_error_event,false);var bd=get_built_in_data();if(bd&&asset.url in bd)if(bd[asset.url]){var vid_mime_type=get_video_mime_type(asset.url);video.src="data:"+vid_mime_type+ ";base64,"+bd[asset.url];if(asset.state!=ASTATE_HALTED)video.addEventListener("loadeddata",function(){asset.asset_cb(video,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED},false)}else{if(m_compat.is_ie11()){var e=document.createEvent("CustomEvent");e.initCustomEvent("error",false,false,null)}else var e=new CustomEvent("error");video.dispatchEvent(e)}else{video.src=asset.url;if(cfg_def.is_mobile_device)video.load()}if(cfg_def.mobile_firefox_media_hack||cfg_def.ipad_video_hack){video.autoplay= true;video.pause()}setTimeout(function(){video.some_prop_to_prevent_gc=1},1E4)}function request_seq_video(asset){var filepath=asset.url.split("?v=")[0];if(filepath in _img_cache){asset.asset_cb(_img_cache[filepath],asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;return}if(asset.request_method!="GET")m_assert.panic("Unsupported request type for seq video element");var bd=get_built_in_data();if(bd&&asset.url in bd)var req=new FakeHttpRequest;else var req=new XMLHttpRequest;req.open("GET", asset.url,true);req.responseType="arraybuffer";function load_cb(images){asset.asset_cb(images,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED;if(asset.is_fetch){var filepath=asset.url.split("?v=")[0];_img_cache[filepath]=images}}req.onreadystatechange=function(){if(asset.state!=ASTATE_HALTED)if(req.readyState==4)if(req.status==200||req.status==0){var response=req.response;if(response)parse_seq_video_file(response,load_cb);else{m_print.error("empty responce when trying to get "+ asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}}else{m_print.error(req.status+" when trying to get "+asset.url);asset.asset_cb(null,asset.id,asset.type,asset.url,asset.param);asset.state=ASTATE_RECEIVED}};req.addEventListener("progress",function(e){if(e.lengthComputable)asset.progress_cb(e.loaded/e.total)},false);req.send()}function parse_seq_video_file(response,callback){var buffer=new Int32Array(response);var seq_image_data=new Int8Array(response); var number=buffer[3];var data={images:[],blobs:[],fps:buffer[4]};var offset=20;for(var j=0;j-1)return true;else return false};exports.finite=function(o){if(__WEBPACK_IMPORTED_MODULE_5__util_js__["_16"](o)){for(var i=0;i0};exports.bpy_obj_has_anim_particles=function(bpy_obj){for(var i=0;iprev_time&& time>=delay&&delay>prev_time||timeprev_time||time>=delay);if(need_emitter_pos){__WEBPACK_IMPORTED_MODULE_9__tsr_js__["u"](tsr,em_snapshots,j);__WEBPACK_IMPORTED_MODULE_9__tsr_js__["a"](tsr,_tsr_tmp)}else __WEBPACK_IMPORTED_MODULE_9__tsr_js__["f"](em_snapshots,j,_tsr_tmp);var pos=_vec3_tmp;pos[0]=positions[3*j];pos[1]=positions[3*j+1];pos[2]=positions[3*j+2];__WEBPACK_IMPORTED_MODULE_9__tsr_js__["D"](pos,_tsr_tmp,pos);positions_new[3*j]=pos[0];positions_new[3*j+1]=pos[1];positions_new[3* j+2]=pos[2];var cur_tbn=__WEBPACK_IMPORTED_MODULE_6__tbn_js__["e"](tbn,j,_tbn_tmp);__WEBPACK_IMPORTED_MODULE_6__tbn_js__["m"](cur_tbn,_tsr_tmp,cur_tbn);__WEBPACK_IMPORTED_MODULE_6__tbn_js__["n"](tbn_new,cur_tbn,j);for(var k=1;k<4;k++){positions_new[3*(j+k)]=positions_new[3*j];positions_new[3*(j+k)+1]=positions_new[3*j+1];positions_new[3*(j+k)+2]=positions_new[3*j+2];__WEBPACK_IMPORTED_MODULE_6__tbn_js__["n"](tbn_new,cur_tbn,j+k)}}}function update_emitter_transform(obj,batches){for(var i=0;i=ind){delay_attrs_masked[k]=delay_attrs[k];ind+=step}else delay_attrs_masked[k]= 1E4;delay_attrs_masked[k+1]=delay_attrs_masked[k];delay_attrs_masked[k+2]=delay_attrs_masked[k];delay_attrs_masked[k+3]=delay_attrs_masked[k]}}var pbuf=batch.bufs_data;var pointers=pbuf.pointers;var pointer=pointers["a_p_data"];if(pointer){var p_data=pdata.p_data;for(var k=0;k1){separated_str[1]=normpath(separated_str[1]);return separated_str.join("://")}else return normpath(dir_path)}function get_file_extension(file_path){var re=/(?:\.([^.]+))?$/;return re.exec(file_path)[1]}},function(module, __webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_input_js__=__webpack_require__(39);var __WEBPACK_IMPORTED_MODULE_2__intern_camera_js__=__webpack_require__(14);var __WEBPACK_IMPORTED_MODULE_3__intern_config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_4__intern_container_js__=__webpack_require__(15);var __WEBPACK_IMPORTED_MODULE_5__intern_obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_6__intern_print_js__= __webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_7__intern_scenes_js__=__webpack_require__(10);var __WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec4_js__=__webpack_require__(7);function Input(ns,exports){var m_input=Object(__WEBPACK_IMPORTED_MODULE_1__intern_input_js__["a"])(ns);var m_cam=Object(__WEBPACK_IMPORTED_MODULE_2__intern_camera_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_3__intern_config_js__["a"])(ns);var m_cont=Object(__WEBPACK_IMPORTED_MODULE_4__intern_container_js__["a"])(ns); var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_5__intern_obj_util_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_6__intern_print_js__["a"])(ns);var m_scs=Object(__WEBPACK_IMPORTED_MODULE_7__intern_scenes_js__["a"])(ns);var _vec4_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec4_js__["create"]();var _vec4_tmp2=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec4_js__["create"]();var _splited_screen=false;var cfg_dbg=m_cfg.debug_subs;var cfg_def=m_cfg.defaults;exports.GMPD_BUTTON_12=m_input.GMPD_BUTTON_12; exports.GMPD_BUTTON_13=m_input.GMPD_BUTTON_13;exports.GMPD_BUTTON_15=m_input.GMPD_BUTTON_15;exports.GMPD_BUTTON_14=m_input.GMPD_BUTTON_14;exports.GMPD_BUTTON_3=m_input.GMPD_BUTTON_3;exports.GMPD_BUTTON_0=m_input.GMPD_BUTTON_0;exports.GMPD_BUTTON_1=m_input.GMPD_BUTTON_1;exports.GMPD_BUTTON_2=m_input.GMPD_BUTTON_2;exports.GMPD_BUTTON_5=m_input.GMPD_BUTTON_5;exports.GMPD_BUTTON_7=m_input.GMPD_BUTTON_7;exports.GMPD_BUTTON_4=m_input.GMPD_BUTTON_4;exports.GMPD_BUTTON_6=m_input.GMPD_BUTTON_6;exports.GMPD_BUTTON_8= m_input.GMPD_BUTTON_8;exports.GMPD_BUTTON_9=m_input.GMPD_BUTTON_9;exports.GMPD_BUTTON_10=m_input.GMPD_BUTTON_10;exports.GMPD_BUTTON_11=m_input.GMPD_BUTTON_11;exports.GMPD_BUTTON_16=m_input.GMPD_BUTTON_16;exports.GMPD_BUTTON_17=m_input.GMPD_BUTTON_17;exports.GMPD_BUTTON_18=m_input.GMPD_BUTTON_18;exports.GMPD_BUTTON_19=m_input.GMPD_BUTTON_19;exports.GMPD_BUTTON_20=m_input.GMPD_BUTTON_20;exports.GMPD_BUTTON_21=m_input.GMPD_BUTTON_21;exports.GMPD_BUTTON_22=m_input.GMPD_BUTTON_22;exports.GMPD_BUTTON_23= m_input.GMPD_BUTTON_23;exports.GMPD_BUTTON_24=m_input.GMPD_BUTTON_24;exports.GMPD_BUTTON_25=m_input.GMPD_BUTTON_25;exports.GMPD_TRACKPAD_BUTTON=m_input.GMPD_TRACKPAD_BUTTON;exports.GMPD_TRIGGER_BUTTON=m_input.GMPD_TRIGGER_BUTTON;exports.GMPD_GRIPS_BUTTON=m_input.GMPD_GRIPS_BUTTON;exports.GMPD_MENU_BUTTON=m_input.GMPD_MENU_BUTTON;exports.GMPD_AXIS_0=m_input.GMPD_AXIS_0;exports.GMPD_AXIS_1=m_input.GMPD_AXIS_1;exports.GMPD_AXIS_2=m_input.GMPD_AXIS_2;exports.GMPD_AXIS_3=m_input.GMPD_AXIS_3;exports.GMPD_AXIS_4= m_input.GMPD_AXIS_4;exports.GMPD_AXIS_5=m_input.GMPD_AXIS_5;exports.GMPD_AXIS_6=m_input.GMPD_AXIS_6;exports.GMPD_AXIS_7=m_input.GMPD_AXIS_7;exports.GMPD_AXIS_8=m_input.GMPD_AXIS_8;exports.GMPD_AXIS_9=m_input.GMPD_AXIS_9;exports.GMPD_AXIS_10=m_input.GMPD_AXIS_10;exports.GMPD_AXIS_11=m_input.GMPD_AXIS_11;exports.HMD_ORIENTATION_QUAT=m_input.HMD_ORIENTATION_QUAT;exports.HMD_POSITION=m_input.HMD_POSITION;exports.HMD_WEBVR_TYPE=m_input.HMD_WEBVR_TYPE;exports.HMD_WEBVR_DESKTOP=m_input.HMD_WEBVR_DESKTOP; exports.HMD_WEBVR_MOBILE=m_input.HMD_WEBVR_MOBILE;exports.HMD_NON_WEBVR=m_input.HMD_NON_WEBVR;exports.HMD_WEBVR1=m_input.HMD_WEBVR1;exports.HMD_WEBVR1_1=m_input.HMD_WEBVR1_1;var HMD_EYE_DISTANCE=m_input.HMD_EYE_DISTANCE;exports.HMD_EYE_DISTANCE=HMD_EYE_DISTANCE;exports.HMD_DISTORTION=m_input.HMD_DISTORTION;exports.HMD_BASELINE_DIST=m_input.HMD_BASELINE_DIST;exports.HMD_SCREEN_LENS_DIST=m_input.HMD_SCREEN_LENS_DIST;exports.HMD_SCREEN_WIDTH=m_input.HMD_SCREEN_WIDTH;exports.HMD_SCREEN_HEIGHT=m_input.HMD_SCREEN_HEIGHT; exports.HMD_BEVEL_SIZE=m_input.HMD_BEVEL_SIZE;exports.MOUSE_LOCATION=m_input.MOUSE_LOCATION;exports.MOUSE_DOWN_WHICH=m_input.MOUSE_DOWN_WHICH;exports.MOUSE_UP_WHICH=m_input.MOUSE_UP_WHICH;exports.MOUSE_WHEEL=m_input.MOUSE_WHEEL;exports.KEYBOARD_UP=m_input.KEYBOARD_UP;exports.KEYBOARD_DOWN=m_input.KEYBOARD_DOWN;exports.TOUCH_START=m_input.TOUCH_START;exports.TOUCH_MOVE=m_input.TOUCH_MOVE;exports.TOUCH_END=m_input.TOUCH_END;exports.GYRO_ORIENTATION_QUAT=m_input.GYRO_ORIENTATION_QUAT;exports.GYRO_ORIENTATION_ANGLES= m_input.GYRO_ORIENTATION_ANGLES;var SYNC_VECTOR_PARAMS={};SYNC_VECTOR_PARAMS[m_input.DEVICE_HMD]=[m_input.HMD_ORIENTATION_QUAT,m_input.HMD_POSITION];SYNC_VECTOR_PARAMS[m_input.DEVICE_MOUSE]=[m_input.MOUSE_LOCATION];var SYNC_VALUE_PARAMS={};SYNC_VALUE_PARAMS[m_input.DEVICE_HMD]=[m_input.HMD_WEBVR_TYPE];var ASYNC_PARAMS={};ASYNC_PARAMS[m_input.DEVICE_MOUSE]=[m_input.MOUSE_LOCATION,m_input.MOUSE_DOWN_WHICH,m_input.MOUSE_UP_WHICH,m_input.MOUSE_WHEEL];ASYNC_PARAMS[m_input.DEVICE_KEYBOARD]=[m_input.KEYBOARD_UP, m_input.KEYBOARD_DOWN];ASYNC_PARAMS[m_input.DEVICE_TOUCH]=[m_input.TOUCH_START,m_input.TOUCH_MOVE,m_input.TOUCH_END];ASYNC_PARAMS[m_input.DEVICE_GYRO]=[m_input.GYRO_ORIENTATION_QUAT,m_input.GYRO_ORIENTATION_ANGLES];var CONF={};CONF[m_input.DEVICE_HMD]=[m_input.HMD_DISTORTION,m_input.HMD_EYE_DISTANCE,m_input.HMD_BASELINE_DIST,m_input.HMD_SCREEN_LENS_DIST,m_input.HMD_SCREEN_WIDTH,m_input.HMD_SCREEN_HEIGHT,m_input.HMD_BEVEL_SIZE];exports.DEVICE_GYRO=m_input.DEVICE_GYRO;exports.DEVICE_HMD=m_input.DEVICE_HMD; exports.DEVICE_MOUSE=m_input.DEVICE_MOUSE;exports.DEVICE_KEYBOARD=m_input.DEVICE_KEYBOARD;exports.DEVICE_TOUCH=m_input.DEVICE_TOUCH;exports.can_use_device=m_input.can_use_device;exports.get_device_by_type_element=m_input.get_device_by_type_element;exports.switch_prevent_default=function(device,prevent_default){if(device)m_input.switch_prevent_default(device,prevent_default)};exports.register_device=function(){m_print.error_once("input.register_device() deprecated")};exports.reset_device=function(device){if(!device|| device.type!=m_input.DEVICE_HMD){m_print.error("reset_device is undefined for device.");return}m_input.reset_device(device)};exports.get_vector_param=function(device,param,dest){if(device&&device.type in SYNC_VECTOR_PARAMS&&SYNC_VECTOR_PARAMS[device.type].indexOf(param)>=0)return m_input.get_vector_param(device,param,dest);else m_print.error("device hasn't param: ",param);return null};exports.get_value_param=function(device,param){if(device&&device.type in SYNC_VALUE_PARAMS&&SYNC_VALUE_PARAMS[device.type].indexOf(param)>= 0)return m_input.get_value_param(device,param);else m_print.error("device hasn't param: ",param);return null};exports.attach_param_cb=function(device,param,cb){cb=cb||null;if(device&&device.type in ASYNC_PARAMS&&ASYNC_PARAMS[device.type].indexOf(param)>=0)return m_input.attach_param_cb(device,param,cb);else m_print.error("device hasn't param: ",param)};exports.detach_param_cb=function(device,param,cb){cb=cb||null;if(device&&device.type in ASYNC_PARAMS&&ASYNC_PARAMS[device.type].indexOf(param)>=0)return m_input.detach_param_cb(device, param,cb);else m_print.error("device hasn't param: ",param)};exports.set_config=function(device,config,value){if(device&&device.type in CONF&&CONF[device.type].indexOf(config)>=0)return m_input.set_config(device,config,value);else m_print.error("device hasn't config: ",config)};exports.request_fullscreen_hmd=function(){m_print.error_deprecated("request_fullscreen_hmd","screen.request_fullscreen_hmd");if(m_scs.check_active()){var cam_obj=m_scs.get_camera(m_scs.get_active());if(!cam_obj)return}else return; enable_split_screen(cam_obj);var hmd_device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);if(hmd_device){var webvr_display=hmd_device.webvr_display;if(webvr_display&&!webvr_display.isPresenting){var capabilities=webvr_display.capabilities;if(!capabilities.canPresent)m_print.error("HMD fullscreen request failed.");else{var canvas=m_cont.get_canvas();webvr_display.requestPresent([{source:canvas}]).then(function(){if(!cfg_def.is_mobile_device){var left_eye=webvr_display.getEyeParameters("left"); var right_eye=webvr_display.getEyeParameters("right");m_cont.resize(Math.max(left_eye.renderWidth,right_eye.renderWidth)*2,Math.max(left_eye.renderHeight,right_eye.renderHeight),false)}},function(){m_print.error("HMD fullscreen request failed.")})}}}};exports.enable_split_screen=enable_split_screen;function enable_split_screen(camobj){m_print.error_deprecated("enable_split_screen","screen.request_split_screen");var hmd_device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);if(!hmd_device)return false; if(_splited_screen)return true;var hmd_left_fov=m_input.get_vector_param(hmd_device,m_input.HMD_FOV_LEFT,_vec4_tmp);var hmd_right_fov=m_input.get_vector_param(hmd_device,m_input.HMD_FOV_RIGHT,_vec4_tmp2);m_cam.set_hmd_fov(camobj,hmd_left_fov,hmd_right_fov);var eye_distance=m_input.get_value_param(hmd_device,HMD_EYE_DISTANCE);if(eye_distance){var active_scene=m_scs.get_active();var cam_scene_data=m_obj_util.get_scene_data(camobj,active_scene);var cameras=cam_scene_data.cameras;m_cam.set_eye_distance(cameras, eye_distance)}var hmd_params={};hmd_params.base_line_factor=.5;hmd_params.inter_lens_factor=.5;hmd_params.enable_hmd_stereo=true;var hmd_type=m_input.get_value_param(hmd_device,m_input.HMD_WEBVR_TYPE);if(hmd_type&(m_input.HMD_NON_WEBVR|m_input.HMD_WEBVR_MOBILE|m_input.HMD_WEBVR_DESKTOP)){hmd_params.distortion_coefs=[hmd_device.distortion_coefs[0],hmd_device.distortion_coefs[1]];hmd_params.chromatic_aberration_coefs=[hmd_device.chromatic_aberration_coefs[0],hmd_device.chromatic_aberration_coefs[1], hmd_device.chromatic_aberration_coefs[2],hmd_device.chromatic_aberration_coefs[3]];if(!hmd_device.webvr_hmd_device)if(hmd_device.base_line_dist&&hmd_device.height_dist&&hmd_device.bevel_size)hmd_params.base_line_factor=(hmd_device.base_line_dist-hmd_device.bevel_size)/hmd_device.height_dist;else if(!hmd_device.bevel_size)hmd_params.base_line_factor=hmd_device.base_line_dist/hmd_device.height_dist;if(hmd_device.inter_lens_dist&&hmd_device.width_dist&&!hmd_device.webvr_hmd_device)hmd_params.inter_lens_factor= hmd_device.inter_lens_dist/hmd_device.width_dist;if(!cfg_dbg.enabled){var distortion_scale=1+hmd_device.distortion_coefs[0]+hmd_device.distortion_coefs[1];m_scs.multiply_size_mult(distortion_scale,distortion_scale)}}m_scs.set_hmd_params(hmd_params);m_cont.resize_to_container(true);m_input.reset_device(hmd_device);_splited_screen=true;return true}exports.disable_split_screen=function(){m_print.error_deprecated("disable_split_screen","screen.exit_split_screen");var hmd_device=m_input.get_device_by_type_element(m_input.DEVICE_HMD); if(!_splited_screen||!hmd_device||!hmd_device.registered)return false;var hmd_params={};hmd_params.enable_hmd_stereo=false;m_scs.set_hmd_params(hmd_params);var distortion_scale=1/(1+hmd_device.distortion_coefs[0]+hmd_device.distortion_coefs[1]);m_scs.multiply_size_mult(distortion_scale,distortion_scale);m_cont.resize_to_container(true);return true};exports.set_gamepad_key=function(gamepad_id,btn,key){switch(gamepad_id){case 0:var type=m_input.DEVICE_GAMEPAD0;break;case 1:var type=m_input.DEVICE_GAMEPAD1; break;case 2:var type=m_input.DEVICE_GAMEPAD2;break;case 3:var type=m_input.DEVICE_GAMEPAD3;break;default:var type=m_input.DEVICE_GAMEPAD0}var device=m_input.get_device_by_type_element(type);m_input.set_config(device,btn,key)};exports.get_pressed_gmpd_btn=m_input.get_pressed_gmpd_btn;exports.get_moved_gmpd_axis=m_input.get_moved_gmpd_axis;exports.get_gamepad_position=m_input.get_gamepad_position;exports.get_gamepad_orientation=m_input.get_gamepad_orientation;exports.check_enable_gamepad_indices=check_enable_gamepad_indices; function check_enable_gamepad_indices(){var gamepads=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:[];var indices=[];for(var i=0;imaxWidth){context.fillText(line,x,y);line=words[n]+" ";y+=lineHeight}else line=testLine}context.fillText(line,x,y)}exports.plot_array=function(header,slot,arr,arg_min,arg_max,val_min,val_max){var ctx=_canvas_context;if(!ctx)return; var box=create_strip_box(slot);box_split_v(box,4,5,box);ctx.textAlign="center";ctx.fillStyle="#00FF00";_canvas_context.fillText(header,box_mid_h(box),box.y-10);ctx.strokeStyle="#00FF00";ctx.lineWidth=.5;ctx.beginPath();ctx.moveTo(box.x,box.y);ctx.lineTo(box.x+box.w,box.y);ctx.lineTo(box.x+box.w,box.y+box.h);ctx.lineTo(box.x,box.y+box.h);ctx.closePath();ctx.stroke();if(!val_min&&!val_max){val_min=1E6;val_max=-1E6;for(var i=0;i=0)_canvas_context.fillText(mute?"[M]":"[ ]",box_mid_h(box_strip)-15,box_strip.y+30);if(solo>=0)_canvas_context.fillText(solo?"[S]":"[ ]",box_mid_h(box_strip)+15,box_strip.y+30);var box_param=box_create();for(var i=0;i=0;i--){var sd=obj.scenes_data[i];if(sd.scene["b4w_use_nla"]){scene_data=sd;if(sd.scene._is_main)break}}return scene_data}exports.update_scene=function(scene,is_cyclic,data_id){if(!scene._nla){scene._nla= {frame_start:scene["frame_start"],frame_end:scene["frame_end"],frame_offset:0,last_frame:-1,range_end:scene["frame_end"],range_start:scene["frame_start"],user_callback:null,cyclic:is_cyclic,objects:[],textures:[],scene_name:scene["name"],is_stopped:false,force_update:false,rewinded_to_start:true};_nla_arr.push(scene._nla)}var nla=scene._nla;var objs=m_obj.get_scene_objs_derived(scene,"ALL",data_id);for(var i=0;iev.frame_end||nla.frame_end=ev.frame_end)ext_frame_end=Math.min(ext_frame_end,ev_k.frame_start)}ev.ext_frame_start=ext_frame_start;ev.ext_frame_end=ext_frame_end;calc_clip_event_action_frame_final(ev)}}function calc_clip_event_action_frame_final(ev){if(ev.repeat%1===0)ev.action_frame_final=ev.action_frame_end;else ev.action_frame_final=ev.action_frame_start+(ev.action_frame_end-ev.action_frame_start)*(ev.repeat%1)}function assign_anim_slots(nla_events, start_slot){var actions=m_anim.get_all_actions();var fc_usage=[];var num_assigned_slots=0;for(var i=0;i=nla.range_end)if(nla.cyclic)cf=nla_range_end_rewind(nla,timeline);else nla_range_end_stop(nla,cf);if(!nla.is_stopped||nla.force_update){process_nla_objects(nla,cf,elapsed);process_nla_video_textures(timeline,nla,cf); nla.last_frame=cf}nla.force_update=false;nla.rewinded_to_start=false}};function nla_range_end_stop(nla,curr_frame){nla.is_stopped=true;nla.frame_offset-=curr_frame-nla.range_end;if(nla.user_callback)nla.user_callback()}function nla_range_end_rewind(nla,timeline){if(nla.user_callback)nla.user_callback();set_frame(nla.range_start,timeline);nla.rewinded_to_start=true;return calc_curr_frame_scene(nla,timeline)}function process_nla_objects(nla,curr_frame,elapsed){for(var k=0;knla.frame_start){cf-=nla.frame_start;if(nla.cyclic){var stride=nla.frame_end-nla.frame_start+1;cf%=stride}cf+=nla.frame_start}else cf=nla.frame_start;return cf}function process_clip_event_start(obj,ev,frame, elapsed){var name_list=ev.name_list;if(ev.anim_uuid!="")m_anim.apply_by_uuid(obj,name_list,ev.anim_uuid,ev.anim_slot);else m_anim.apply(obj,name_list,ev.anim_name,ev.anim_slot);m_anim.set_behavior(obj,m_anim.AB_FINISH_STOP,ev.anim_slot);var action_frame=get_curr_action_frame(ev.frame_start,ev);m_anim.set_frame(obj,action_frame,ev.anim_slot)}function process_clip_event(obj,ev,frame,elapsed){var new_anim_frame=get_curr_action_frame(frame,ev);var curr_anim_frame=m_anim.get_current_frame_float(obj,ev.anim_slot); if(Math.abs(new_anim_frame-curr_anim_frame)>CF_FREEZE_EPSILON)m_anim.set_frame(obj,new_anim_frame,ev.anim_slot)}function get_curr_action_frame(frame,ev){frame=__WEBPACK_IMPORTED_MODULE_9__util_js__["M"](frame,ev.frame_start,ev.frame_end);if(frame==ev.frame_end)var action_frame=ev.action_frame_final;else{var track_frame=(frame-ev.frame_start)/ev.scale;var track_len=ev.action_frame_end-ev.action_frame_start;var action_frame_offset=track_frame%track_len;var action_frame=ev.action_frame_start+action_frame_offset}if(ev.use_reverse)action_frame= ev.action_frame_end-action_frame+ev.action_frame_start;return action_frame}function process_sound_event(obj,ev,frame){var when=(ev.frame_start-frame)/m_time.get_framerate();var duration=(ev.frame_end-ev.frame_start)/m_time.get_framerate();m_sfx.play(obj,when,duration)}exports.cleanup=function(data_id){if(data_id==0){_nla_arr.length=0;_start_time=-1}else for(var i=0;i<_nla_arr.length;i++)_nla_arr[i].objects[data_id]=null};function get_nla_events(nla_tracks,anim_slot_num){var nla_events=[];for(var i= 0;i0;else return false};exports.set_range=function(start_frame,end_frame){var active_scene= m_scs.get_active();if(active_scene._nla){active_scene._nla.range_start=start_frame;active_scene._nla.range_end=end_frame}else return false};exports.set_range_end=function(end_frame){var active_scene=m_scs.get_active();if(active_scene._nla)active_scene._nla.range_end=end_frame;else return false};exports.set_range_start=function(start_frame){var active_scene=m_scs.get_active();if(active_scene._nla)active_scene._nla.range_start=start_frame;else return false};exports.reset_range=reset_range;function reset_range(){var active_scene= m_scs.get_active();if(active_scene._nla){var nla=active_scene._nla;nla.range_start=nla.frame_start;nla.range_end=nla.frame_end}else return false}exports.set_cyclic=function(is_cyclic){var active_scene=m_scs.get_active();if(active_scene._nla)active_scene._nla.cyclic=is_cyclic;else return false};exports.clear_callback=function(){var active_scene=m_scs.get_active();if(active_scene._nla)active_scene._nla.user_callback=null};exports.set_offset_from_range_start=function(timeline){var active_scene=m_scs.get_active(); var nla=active_scene._nla;if(nla){nla.frame_offset=-(timeline-_start_time)*m_time.get_framerate()+nla.range_start;nla.force_update=true}};exports.get_frame_end=function(){var active_scene=m_scs.get_active();var nla=active_scene._nla;if(nla)return nla.frame_end;else return null}}var int_nla_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__nla",Int_NLA);__webpack_exports__["a"]=int_nla_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_3__container_js__=__webpack_require__(15);var __WEBPACK_IMPORTED_MODULE_4__input_js__=__webpack_require__(39);var __WEBPACK_IMPORTED_MODULE_5__objects_js__=__webpack_require__(12);var __WEBPACK_IMPORTED_MODULE_6__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_7__physics_js__=__webpack_require__(19); var __WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_9__time_js__=__webpack_require__(18);var __WEBPACK_IMPORTED_MODULE_10__tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_11__util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__=__webpack_require__(3);function Int_controls(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_2__config_js__["a"])(ns); var m_cont=Object(__WEBPACK_IMPORTED_MODULE_3__container_js__["a"])(ns);var m_input=Object(__WEBPACK_IMPORTED_MODULE_4__input_js__["a"])(ns);var m_obj=Object(__WEBPACK_IMPORTED_MODULE_5__objects_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_6__print_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_7__physics_js__["a"])(ns);var m_time=Object(__WEBPACK_IMPORTED_MODULE_9__time_js__["a"])(ns);var cfg_ctl=m_cfg.controls;var cfg_dft=m_cfg.defaults;var _objects=[];var _global_object= {};var _sensors_cache=[];var _manifolds_cache=[];var _accumulators_cache=[];var _vec2_tmp=new Float32Array(2);var _vec2_tmp2=new Float32Array(2);var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["create"]();var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var _manifolds_updated=false;var _update_counter=0;var ST_CUSTOM=10;var ST_KEYBOARD=20;var ST_MOUSE_WHEEL=30;var ST_MOUSE_MOVE=40;var ST_MOUSE_CLICK=50;var ST_TOUCH_MOVE=60;var ST_TOUCH_ZOOM=70;var ST_TOUCH_ROTATE= 75;var ST_TOUCH_CLICK=80;var ST_COLLISION=90;var ST_COLLISION_IMPULSE=100;var ST_RAY=110;var ST_MOTION=120;var ST_V_VELOCITY=130;var ST_TIMER=140;var ST_ELAPSED=150;var ST_TIMELINE=160;var ST_SELECTION=170;var ST_GYRO_DELTA=180;var ST_GYRO_ANGLES=190;var ST_GYRO_QUAT=200;var ST_HMD_QUAT=210;var ST_HMD_POSITION=220;var ST_CALLBACK=230;var ST_GAMEPAD_BTNS=240;var ST_GMPD_AXIS=250;var ST_GAMEPAD_POSITION=260;var ST_GAMEPAD_ORIENTATION=270;var ST_PLOCK_MOUSE_MOVE=280;var ST_PLOCK=290;exports.CT_POSITIVE= 10;exports.CT_CONTINUOUS=20;exports.CT_TRIGGER=30;exports.CT_SHOT=40;exports.CT_LEVEL=50;exports.CT_CHANGE=60;exports.PL_SINGLE_TOUCH_MOVE=0;exports.PL_MULTITOUCH_MOVE_ZOOM=1;exports.PL_MULTITOUCH_MOVE_PAN=2;exports.PL_MULTITOUCH_MOVE_ROTATE=3;var SENSOR_SMOOTH_PERIOD=.3;var CAM_SMOOTH_CHARACTER_MOUSE=.1;var MOUSE_DELTA_THRESHOLD=.01;var INPUT_STATE_00=0;var INPUT_STATE_01=1;var INPUT_STATE_11=2;var INPUT_STATE_10=3;var KEY_SHIFT=16;var MAX_COUNT_FINGERS=10;var _smooth_factor=1;exports.update=function(timeline, elapsed){for(var i=0;i<_accumulators_cache.length;i++){var accum=_accumulators_cache[i];prepare_accumulator(accum)}for(var i=0;i<_sensors_cache.length;i++){var sensor=_sensors_cache[i];update_sensor(sensor,timeline,elapsed)}for(var i=0;i<_objects.length;i++){var obj=_objects[i];var manifolds_arr=obj.sensor_manifolds_arr;for(var j=0;j1){var zoom_dist=touch_zoom_dist(touches);accumulator.touch_zoom_curr_dist=accumulator.touch_zoom_last_dist=zoom_dist;accumulator.touches_last_x[0]=touches[0].clientX;accumulator.touches_last_x[1]=touches[1].clientX; accumulator.touches_last_y[0]=touches[0].clientY;accumulator.touches_last_y[1]=touches[1].clientY;accumulator.touch_start_rot=touch_rotation(touches)}accumulator.touches_curr_x.set(accumulator.touches_last_x);accumulator.touches_curr_y.set(accumulator.touches_last_y)};accumulator.touch_move_cb=function(touches){if(touches.length===1){accumulator.touches_curr_x[0]=touches[0].clientX;accumulator.touches_curr_x[1]=-1;accumulator.touches_curr_y[0]=touches[0].clientY;accumulator.touches_curr_y[1]=-1}else if(touches.length> 1){accumulator.touches_curr_x[0]=touches[0].clientX;accumulator.touches_curr_x[1]=touches[1].clientX;accumulator.touches_curr_y[0]=touches[0].clientY;accumulator.touches_curr_y[1]=touches[1].clientY;var zoom_dist=touch_zoom_dist(touches);accumulator.touch_zoom_curr_dist=zoom_dist}};accumulator.touch_end_cb=function(touches){if(touches.length==0)accumulator.is_touch_ended=true};_accumulators_cache.push(accumulator);return accumulator}function register_accum_value(accum,value_name){if(value_name in accum.registered_accum_values&&accum.registered_accum_values[value_name]>0){accum.registered_accum_values[value_name]+=1;return}accum.registered_accum_values[value_name]=1;switch(value_name){case "orientation_quat":var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)m_input.attach_param_cb(device,m_input.GYRO_ORIENTATION_ANGLES,accum.orientation_quat_cb);break;case "orientation_angles":var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)m_input.attach_param_cb(device, m_input.GYRO_ORIENTATION_ANGLES,accum.orientation_angles_cb);break;case "mouse_wheel":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.attach_param_cb(device,m_input.MOUSE_WHEEL,accum.mouse_wheel_cb);break;case "mouse_down_which":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.attach_param_cb(device,m_input.MOUSE_DOWN_WHICH,accum.mouse_down_which_cb);break;case "mouse_select":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE, accum.element);if(device)m_input.attach_param_cb(device,m_input.MOUSE_DOWN_WHICH,accum.mouse_select_cb);break;case "touch_select":var device=m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device){m_input.attach_param_cb(device,m_input.TOUCH_START,accum.touch_select_start_cb);m_input.attach_param_cb(device,m_input.TOUCH_END,accum.touch_select_end_cb)}break;case "mouse_up_which":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.attach_param_cb(device, m_input.MOUSE_UP_WHICH,accum.mouse_up_which_cb);break;case "mouse_location":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.attach_param_cb(device,m_input.MOUSE_LOCATION,accum.mouse_location_cb);break;case "mouse_pointerlock":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.attach_param_cb(device,m_input.MOUSE_LOCATION_PL,accum.pointerlock_cb);break;case "keyboard_downed_keys":var device=m_input.get_device_by_type_element(m_input.DEVICE_KEYBOARD, accum.element);if(device){m_input.attach_param_cb(device,m_input.KEYBOARD_DOWN,accum.keyboard_down_keys_cb);m_input.attach_param_cb(device,m_input.KEYBOARD_DOWN_MODIFIED,accum.keyboard_down_mod_keys_cb);m_input.attach_param_cb(device,m_input.KEYBOARD_UP,accum.keyboard_up_keys_cb)}break;case "touch_start":var device=m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device)m_input.attach_param_cb(device,m_input.TOUCH_START,accum.touch_start_cb);break;case "touch_move":var device= m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device)m_input.attach_param_cb(device,m_input.TOUCH_MOVE,accum.touch_move_cb);break;case "touch_end":var device=m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device)m_input.attach_param_cb(device,m_input.TOUCH_END,accum.touch_end_cb);break}}function unregister_accum_value(accum,value_name){if(!(value_name in accum.registered_accum_values))return;else if(accum.registered_accum_values[value_name]>0){accum.registered_accum_values[value_name]-= 1;if(accum.registered_accum_values[value_name])return}else return;switch(value_name){case "orientation_quat":var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)m_input.detach_param_cb(device,m_input.GYRO_ORIENTATION_QUAT,accum.orientation_quat_cb);break;case "orientation_angles":var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)m_input.detach_param_cb(device,m_input.GYRO_ORIENTATION_ANGLES,accum.orientation_angles_cb);break;case "mouse_wheel":var device= m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.detach_param_cb(device,m_input.MOUSE_WHEEL,accum.mouse_wheel_cb);break;case "mouse_down_which":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.detach_param_cb(device,m_input.MOUSE_DOWN_WHICH,accum.mouse_down_which_cb);break;case "mouse_select":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.detach_param_cb(device, m_input.MOUSE_DOWN_WHICH,accum.mouse_select_cb);break;case "touch_select":var device=m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device){m_input.detach_param_cb(device,m_input.TOUCH_START,accum.touch_select_start_cb);m_input.detach_param_cb(device,m_input.TOUCH_END,accum.touch_select_end_cb)}break;case "mouse_up_which":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.detach_param_cb(device,m_input.MOUSE_UP_WHICH,accum.mouse_up_which_cb); break;case "mouse_location":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.detach_param_cb(device,m_input.MOUSE_LOCATION,accum.mouse_location_cb);break;case "mouse_pointerlock":var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,accum.element);if(device)m_input.detach_param_cb(device,m_input.MOUSE_LOCATION_PL,accum.pointerlock_cb);break;case "keyboard_downed_keys":var device=m_input.get_device_by_type_element(m_input.DEVICE_KEYBOARD, accum.element);if(device){m_input.detach_param_cb(device,m_input.KEYBOARD_DOWN,accum.keyboard_down_keys_cb);m_input.detach_param_cb(device,m_input.KEYBOARD_DOWN_MODIFIED,accum.keyboard_down_mod_keys_cb);m_input.detach_param_cb(device,m_input.KEYBOARD_UP,accum.keyboard_up_keys_cb)}break;case "touch_start":var device=m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device)m_input.detach_param_cb(device,m_input.TOUCH_START,accum.touch_start_cb);break;case "touch_move":var device= m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device)m_input.detach_param_cb(device,m_input.TOUCH_MOVE,accum.touch_move_cb);break;case "touch_end":var device=m_input.get_device_by_type_element(m_input.DEVICE_TOUCH,accum.element);if(device)m_input.detach_param_cb(device,m_input.TOUCH_END,accum.touch_end_cb);break}}exports.create_keyboard_sensor=function(key){var element=document;var sensor=init_sensor(ST_KEYBOARD,element);sensor.key=key;sensor.do_activation=true;return sensor}; exports.create_gamepad_btn_sensor=function(btn,id){var element=document;var sensor=init_sensor(ST_GAMEPAD_BTNS,element);id=id||m_input.get_first_gmpd_id();sensor.gamepad_id=id;sensor.key=btn;sensor.do_activation=true;return sensor};exports.create_gamepad_axis_sensor=function(axis,id){var element=document;var sensor=init_sensor(ST_GMPD_AXIS,element);id=id==undefined?m_input.get_first_gmpd_id():id;sensor.gamepad_id=id;sensor.key=axis;sensor.do_activation=true;return sensor};exports.create_gamepad_position_sensor= function(id){var element=document;var sensor=init_sensor(ST_GAMEPAD_POSITION,element);id=id===undefined?m_input.get_first_gmpd_id():id;sensor.gamepad_id=id;sensor.do_activation=true;sensor.payload=__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["create"]();return sensor};exports.create_gamepad_orientation_sensor=function(id){var element=document;var sensor=init_sensor(ST_GAMEPAD_ORIENTATION,element);id=id===undefined?m_input.get_first_gmpd_id():id;sensor.gamepad_id=id;sensor.do_activation= true;sensor.payload=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();return sensor};exports.create_collision_sensor=function(obj,collision_id,calc_pos_norm){if(!(obj&&m_phy.obj_has_physics(obj))){m_print.error("Wrong collision object");return null}var sensor=init_sensor(ST_COLLISION);sensor.collision_obj=obj;sensor.collision_id=collision_id;sensor.calc_pos_norm=calc_pos_norm;sensor.payload={coll_obj:null,coll_pos:calc_pos_norm?new Float32Array(3):null,coll_norm:calc_pos_norm?new Float32Array(3): null,coll_dist:0};sensor.collision_cb=function(is_collision,coll_obj,coll_pos,coll_norm,coll_dist){sensor_set_value(sensor,is_collision);var payload=sensor.payload;payload.coll_obj=coll_obj;if(sensor.calc_pos_norm){payload.coll_pos.set(coll_pos);payload.coll_norm.set(coll_norm);payload.coll_dist=coll_dist}};sensor.do_activation=true;return sensor};exports.create_collision_impulse_sensor=function(obj){if(!(obj&&obj.physics)){m_print.error("Wrong collision impulse object");return null}var sensor=init_sensor(ST_COLLISION_IMPULSE); sensor.col_imp_obj=obj;sensor.col_imp_cb=function(impulse){sensor_set_value(sensor,impulse)};sensor.do_activation=true;return sensor};exports.create_ray_sensor=function(obj_src,from,to,collision_id,is_binary_value,calc_pos_norm,ign_src_rot){var sensor=init_sensor(ST_RAY);sensor.source_object=obj_src;sensor.from=from;sensor.to=to;sensor.collision_id=collision_id;sensor.is_binary_value=is_binary_value;sensor.calc_pos_norm=calc_pos_norm;sensor.ign_src_rot=ign_src_rot;sensor.payload={hit_fract:0,obj_hit:null, hit_time:0,hit_pos:new Float32Array(3),hit_norm:new Float32Array(3),ray_test_id:0};sensor.ray_test_cb=function(id,hit_fract,obj_hit,hit_time,hit_pos,hit_norm){if(sensor.is_binary_value)sensor_set_value(sensor,hit_fract==-1?0:1);else sensor_set_value(sensor,hit_fract);sensor.payload.hit_fract=hit_fract;sensor.payload.obj_hit=obj_hit;sensor.payload.hit_time=hit_time;if(sensor.calc_pos_norm){sensor.payload.hit_pos.set(hit_pos);sensor.payload.hit_norm.set(hit_norm)}};sensor.do_activation=true;return sensor}; exports.create_mouse_click_sensor=function(element){var sensor=init_sensor(ST_MOUSE_CLICK,element);sensor.do_activation=true;sensor.payload={coords:new Float32Array(2),which:null};return sensor};exports.create_mouse_wheel_sensor=function(element){var sensor=init_sensor(ST_MOUSE_WHEEL,element);sensor.do_activation=true;return sensor};exports.create_mouse_move_sensor=function(axis,element){var sensor=init_sensor(ST_MOUSE_MOVE,element);sensor.axis=axis||"XY";sensor.payload={coords:new Float32Array(2)}; sensor.do_activation=true;return sensor};exports.create_touch_move_sensor=function(axis,element){var sensor=init_sensor(ST_TOUCH_MOVE,element);sensor.axis=axis||"XY";sensor.payload={coords:new Float32Array(2),gesture:0};sensor.do_activation=true;return sensor};exports.create_touch_zoom_sensor=function(element){var sensor=init_sensor(ST_TOUCH_ZOOM,element);sensor.payload=0;sensor.do_activation=true;return sensor};exports.create_touch_rotate_sensor=function(element){var sensor=init_sensor(ST_TOUCH_ROTATE, element);sensor.payload=0;sensor.do_activation=true;return sensor};exports.create_touch_click_sensor=function(element){var sensor=init_sensor(ST_TOUCH_CLICK,element);sensor.payload={coords:new Float32Array(2)};sensor.do_activation=true;return sensor};exports.create_motion_sensor=function(){var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["create"]();return function(obj,threshold,rotation_threshold){if(!obj){m_print.error("Wrong collision object"); return null}var sensor=init_sensor(ST_MOTION);sensor.source_object=obj;var trans=__WEBPACK_IMPORTED_MODULE_10__tsr_js__["j"](obj.render.world_tsr,_vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_10__tsr_js__["g"](obj.render.world_tsr,_quat_tmp);sensor.quat_temp=new Float32Array(4);sensor.trans_last=new Float32Array(trans);sensor.quat_last=new Float32Array(quat);sensor.avg_linear_vel=0;sensor.avg_angular_vel=0;sensor.threshold=threshold||.1;sensor.rotation_threshold=rotation_threshold||.1;sensor.time_last= 0;sensor.payload=new Float32Array([0,0]);return sensor}}();exports.create_vertical_velocity_sensor=function(){var _quat_tmp=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["create"]();return function(obj,threshold){if(!obj){m_print.error("Wrong collision object");return null}var sensor=init_sensor(ST_V_VELOCITY);sensor.source_object=obj;var trans=__WEBPACK_IMPORTED_MODULE_10__tsr_js__["j"](obj.render.world_tsr, _vec3_tmp);var quat=__WEBPACK_IMPORTED_MODULE_10__tsr_js__["g"](obj.render.world_tsr,_quat_tmp);sensor.trans_last=new Float32Array(trans);sensor.quat_last=new Float32Array(quat);sensor.avg_vertical_vel=0;sensor.threshold=threshold||1;sensor.time_last=0;sensor.payload=0;return sensor}}();exports.create_timer_sensor=function(period,do_repeat){var sensor=init_sensor(ST_TIMER);sensor.period=period;sensor.repeat=do_repeat;sensor.do_activation=true;return sensor};exports.reset_timer_sensor=function(obj, manifold_id,num,period){obj=obj||_global_object;var manifolds=obj.sensor_manifolds;if(!manifolds||!manifolds[manifold_id]){m_print.error("reset_timer_sensor(): wrong object");return null}var sensor=manifolds[manifold_id].sensors[num];if(!sensor){m_print.error("reset_timer_sensor(): sensor not found");return null}sensor.time_last=m_time.get_timeline();sensor.period=period};exports.create_elapsed_sensor=function(){var sensor=init_sensor(ST_ELAPSED);sensor.time_last=0;return sensor};exports.create_gyro_delta_sensor= function(){var sensor=init_sensor(ST_GYRO_DELTA,window);sensor.payload=new Float32Array(3);var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)sensor_set_value(sensor,1);else sensor_set_value(sensor,0);sensor.do_activation=true;return sensor};exports.create_gyro_angles_sensor=function(){var sensor=init_sensor(ST_GYRO_ANGLES,window);sensor.payload=new Float32Array(3);var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)sensor_set_value(sensor,1);else sensor_set_value(sensor, 0);sensor.do_activation=true;return sensor};exports.create_gyro_quat_sensor=function(){var sensor=init_sensor(ST_GYRO_QUAT,window);sensor.payload=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"]();var device=m_input.get_device_by_type_element(m_input.DEVICE_GYRO);if(device)sensor_set_value(sensor,1);else sensor_set_value(sensor,0);sensor.do_activation=true;return sensor};exports.create_hmd_quat_sensor=function(){var sensor=init_sensor(ST_HMD_QUAT,window);sensor.payload=__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["create"](); var device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);if(device)sensor_set_value(sensor,1);else sensor_set_value(sensor,0);sensor.do_activation=true;return sensor};exports.create_hmd_position_sensor=function(){var sensor=init_sensor(ST_HMD_POSITION,window);sensor.payload=__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["create"]();var device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);if(device)sensor_set_value(sensor,1);else sensor_set_value(sensor,0);sensor.do_activation= true;return sensor};exports.create_timeline_sensor=function(){var sensor=init_sensor(ST_TIMELINE);return sensor};exports.create_selection_sensor=function(obj,enable_toggle_switch){var sensor=init_sensor(ST_SELECTION);sensor.source_object=obj;sensor.enable_toggle_switch=enable_toggle_switch;sensor.do_activation=true;return sensor};exports.create_callback_sensor=function(callback,value){var sensor=init_sensor(ST_CALLBACK);sensor.callback=callback;sensor_set_value(sensor,value);return sensor};exports.create_plock_mouse_sensor= function(element){var sensor=init_sensor(ST_PLOCK_MOUSE_MOVE,element);sensor.payload={coords:new Float32Array(2)};sensor.do_activation=true;return sensor};exports.create_plock_sensor=function(element){var sensor=init_sensor(ST_PLOCK,element);sensor.do_activation=true;return sensor};exports.sensor_set_value=sensor_set_value;function sensor_set_value(sensor,value){sensor.value=Number(value)}function manifold_logic_result(manifold){var sensors=manifold.sensors;var values=manifold.sensor_values;for(var i= 0;i=sensor.threshold||sensor.avg_angular_vel>=sensor.rotation_threshold)sensor_set_value(sensor, 1);else sensor_set_value(sensor,0);__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["copy"](trans,sensor.trans_last);__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["copy"](quat,sensor.quat_last);sensor.time_last=timeline;break;case ST_V_VELOCITY:var obj=sensor.source_object;var trans=__WEBPACK_IMPORTED_MODULE_10__tsr_js__["j"](obj.render.world_tsr,_vec3_tmp);var vel=Math.abs(trans[1]-sensor.trans_last[1])/elapsed;sensor.avg_vertical_vel=__WEBPACK_IMPORTED_MODULE_11__util_js__["_51"](vel, sensor.avg_vertical_vel,elapsed,SENSOR_SMOOTH_PERIOD);sensor.payload=vel;if(sensor.avg_vertical_vel>=sensor.threshold)sensor_set_value(sensor,1);else sensor_set_value(sensor,0);__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["copy"](trans,sensor.trans_last);sensor.time_last=timeline;break;case ST_TIMER:if(!sensor.do_activation&&sensor.period>=0&&timeline-sensor.time_last>=sensor.period){sensor_set_value(sensor,1);if(sensor.repeat)sensor.time_last=timeline;else sensor.period=-sensor.period}break; case ST_ELAPSED:if(!sensor.time_last)sensor.time_last=timeline;sensor_set_value(sensor,timeline-sensor.time_last);sensor.time_last=timeline;break;case ST_TIMELINE:sensor_set_value(sensor,timeline);break;case ST_GYRO_DELTA:var accum=get_accumulator(sensor.element);sensor.payload[0]=accum.gyro_gamma_new-accum.gyro_gamma_last;sensor.payload[1]=accum.gyro_beta_new-accum.gyro_beta_last;sensor.payload[2]=accum.gyro_alpha_new-accum.gyro_alpha_last;break;case ST_GYRO_ANGLES:var accum=get_accumulator(sensor.element); sensor.payload[0]=accum.gyro_gamma_new;sensor.payload[1]=accum.gyro_beta_new;sensor.payload[2]=accum.gyro_alpha_new;break;case ST_GYRO_QUAT:var accum=get_accumulator(sensor.element);__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_quat_js__["copy"](accum.gyro_quat,sensor.payload);break;case ST_HMD_QUAT:var device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);m_input.get_vector_param(device,m_input.HMD_ORIENTATION_QUAT,sensor.payload);break;case ST_HMD_POSITION:var device=m_input.get_device_by_type_element(m_input.DEVICE_HMD); m_input.get_vector_param(device,m_input.HMD_POSITION,sensor.payload);break;case ST_GAMEPAD_BTNS:var device=get_gmpd_device_by_id(sensor.gamepad_id);sensor.value=m_input.get_gamepad_btn_value(device,sensor.key);break;case ST_GMPD_AXIS:var device=get_gmpd_device_by_id(sensor.gamepad_id);sensor.value=m_input.get_gamepad_axis_value(device,sensor.key);break;case ST_GAMEPAD_POSITION:var device=get_gmpd_device_by_id(sensor.gamepad_id);m_input.get_gamepad_position(device,sensor.payload);sensor_set_value(sensor, 1);break;case ST_GAMEPAD_ORIENTATION:var device=get_gmpd_device_by_id(sensor.gamepad_id);m_input.get_gamepad_orientation(device,sensor.payload);sensor_set_value(sensor,1);break;case ST_CALLBACK:sensor_set_value(sensor,sensor.callback());break;case ST_MOUSE_WHEEL:var accum=get_accumulator(sensor.element);sensor_set_value(sensor,accum.wheel_delta);break;case ST_MOUSE_MOVE:var accum=get_accumulator(sensor.element);if(!cfg_dft.ie11_edge_touchscreen_hack||accum.mouse_state==INPUT_STATE_01||accum.mouse_state== INPUT_STATE_11){var delta_x=accum.mouse_curr_x-accum.mouse_last_x;var delta_y=accum.mouse_curr_y-accum.mouse_last_y;sensor.payload.coords[0]=accum.mouse_curr_x;sensor.payload.coords[1]=accum.mouse_curr_y;switch(sensor.axis){case "X":sensor_set_value(sensor,delta_x);break;case "Y":sensor_set_value(sensor,delta_y);break;case "XY":var delta=Math.sqrt(delta_x*delta_x+delta_y*delta_y);sensor_set_value(sensor,delta);break}}break;case ST_PLOCK_MOUSE_MOVE:var accum=get_accumulator(sensor.element);var delta_x= accum.pointerlock_dx;var delta_y=accum.pointerlock_dy;var rot_x=__WEBPACK_IMPORTED_MODULE_11__util_js__["_51"](delta_x,0,elapsed,smooth_coeff_mouse());var rot_y=__WEBPACK_IMPORTED_MODULE_11__util_js__["_51"](delta_y,0,elapsed,smooth_coeff_mouse());if(Math.abs(delta_x)>MOUSE_DELTA_THRESHOLD||Math.abs(delta_y)>MOUSE_DELTA_THRESHOLD){accum.pointerlock_dx-=rot_x;accum.pointerlock_dy-=rot_y;sensor.payload.coords[0]=rot_x;sensor.payload.coords[1]=rot_y}else{sensor.payload.coords[0]=0;sensor.payload.coords[1]= 0}sensor_set_value(sensor,Math.sqrt(delta_x*delta_x+delta_y*delta_y));break;case ST_MOUSE_CLICK:var accum=get_accumulator(sensor.element);sensor_set_value(sensor,accum.mouse_state!=INPUT_STATE_00|0);sensor.payload.which=accum.which;sensor.payload.coords[0]=accum.mouse_curr_x;sensor.payload.coords[1]=accum.mouse_curr_y;break;case ST_SELECTION:var accum=get_accumulator(sensor.element);sensor_set_value(sensor,0);if(!sensor.enable_toggle_switch)if(accum.mouse_state!=INPUT_STATE_00&&accum.mouse_select_data.obj== sensor.source_object)sensor_set_value(sensor,1);else for(var i=0;i-1){_sensors_cache.splice(sens_ind,1);_manifolds_cache.splice(sens_ind,1)}else m_assert.panic("Sensors cache is corrupted")}else if(sens_users.length>1)sens_users.splice(sens_users.indexOf(manifold),1)}delete manifolds[id];var man_index=manifolds_arr.indexOf(manifold);if(man_index>-1)manifolds_arr.splice(man_index,1);else m_assert.panic("Incorrect manifolds array");if(!Object.getOwnPropertyNames(manifolds).length)remove_from_objects(obj)}}else{var removed_ids= [];for(var man_id in manifolds)removed_ids.push(man_id);for(var i=0;i-1)_objects.splice(obj_index,1);else{m_print.error("Wrong object");return}}function get_sensor_users(sensor,sensors_cache,manifolds_cache){var sens_ind=sensors_cache.indexOf(sensor);if(sens_ind>-1)return manifolds_cache[sens_ind];else return[]}function deactivate_sensor(sensor){switch(sensor.type){case ST_COLLISION:m_phy.remove_collision_test(sensor.collision_obj, sensor.collision_id,sensor.collision_cb);sensor.do_activation=true;break;case ST_COLLISION_IMPULSE:m_phy.clear_collision_impulse_test(sensor.col_imp_obj);sensor.do_activation=true;break;case ST_RAY:m_phy.remove_ray_test(sensor.ray_test_id);sensor.do_activation=true;break;case ST_TIMER:sensor.do_activation=true;break;case ST_KEYBOARD:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"keyboard_downed_keys");sensor.do_activation=true;break;case ST_MOUSE_WHEEL:var accumulator= get_accumulator(sensor.element);unregister_accum_value(accumulator,"mouse_wheel");sensor.do_activation=true;break;case ST_MOUSE_MOVE:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"mouse_down_which");unregister_accum_value(accumulator,"mouse_up_which");unregister_accum_value(accumulator,"mouse_location");sensor.do_activation=true;break;case ST_PLOCK_MOUSE_MOVE:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"mouse_pointerlock"); sensor.do_activation=true;break;case ST_MOUSE_CLICK:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"mouse_down_which");unregister_accum_value(accumulator,"mouse_up_which");sensor.do_activation=true;break;case ST_TOUCH_MOVE:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"touch_start");unregister_accum_value(accumulator,"touch_move");unregister_accum_value(accumulator,"touch_end");sensor.do_activation=true;break;case ST_TOUCH_ZOOM:var accumulator= get_accumulator(sensor.element);unregister_accum_value(accumulator,"touch_start");unregister_accum_value(accumulator,"touch_move");sensor.do_activation=true;break;case ST_TOUCH_ROTATE:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"touch_start");unregister_accum_value(accumulator,"touch_move");sensor.do_activation=true;break;case ST_TOUCH_CLICK:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"touch_start");unregister_accum_value(accumulator, "touch_end");sensor.do_activation=true;break;case ST_SELECTION:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"mouse_select");unregister_accum_value(accumulator,"touch_select");unregister_accum_value(accumulator,"touch_start");unregister_accum_value(accumulator,"touch_end");unregister_accum_value(accumulator,"mouse_down_which");unregister_accum_value(accumulator,"mouse_up_which");sensor.do_activation=true;break;case ST_GYRO_DELTA:case ST_GYRO_ANGLES:var accumulator= get_accumulator(sensor.element);unregister_accum_value(accumulator,"orientation_angles");sensor.do_activation=true;break;case ST_GYRO_QUAT:var accumulator=get_accumulator(sensor.element);unregister_accum_value(accumulator,"orientation_quat");sensor.do_activation=true;break;case ST_HMD_QUAT:case ST_HMD_POSITION:sensor.do_activation=true;break}}exports.reset=function(){for(var i=0;i<_objects.length;i++){var obj=_objects[i];var manifolds=obj.sensor_manifolds;var manifolds_arr=obj.sensor_manifolds_arr; for(var j in manifolds)delete manifolds[j];manifolds_arr.length=0}for(var i=0;i<_sensors_cache.length;i++)deactivate_sensor(_sensors_cache[i]);_objects.length=0;_sensors_cache.length=0;_manifolds_cache.length=0};exports.debug=function(){m_print.log(String(_objects.length)+" objects with manifolds",_objects);m_print.log(String(_sensors_cache.length)+" sensors",_sensors_cache);var collisions=[];var rays=[];for(var i=0;i<_sensors_cache.length;i++){var sensor=_sensors_cache[i];if(sensor.type==ST_COLLISION)collisions.push(sensor); if(sensor.type==ST_RAY)rays.push(sensor)}m_print.log(String(collisions.length)+" collision sensors",collisions);m_print.log(String(rays.length)+" ray sensors",rays)};function touch_zoom_dist(touches){var touch1=touches[0];var touch2=touches[1];var x=touch1.clientX-touch2.clientX,y=touch1.clientY-touch2.clientY;return Math.sqrt(x*x+y*y)}function touch_rotation(touches){var touch1=touches[0];var touch2=touches[1];var x=touch1.clientX-touch2.clientX,y=touch1.clientY-touch2.clientY;return Math.atan2(y, x)}function get_gmpd_device_by_id(gamepad_id){if(gamepad_id==0)var device=m_input.get_device_by_type_element(m_input.DEVICE_GAMEPAD0);else if(gamepad_id==1)var device=m_input.get_device_by_type_element(m_input.DEVICE_GAMEPAD1);else if(gamepad_id==2)var device=m_input.get_device_by_type_element(m_input.DEVICE_GAMEPAD2);else var device=m_input.get_device_by_type_element(m_input.DEVICE_GAMEPAD3);return device}function smooth_coeff_mouse(){return CAM_SMOOTH_CHARACTER_MOUSE*_smooth_factor}exports.set_plock_smooth_factor= function(value){_smooth_factor=value}}var int_controls_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__controls",Int_controls);__webpack_exports__["a"]=int_controls_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_physics_js__=__webpack_require__(19);var __WEBPACK_IMPORTED_MODULE_2__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_3__intern_util_js__= __webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_4__intern_navmesh_js__=__webpack_require__(73);function Physics(ns,exports){var m_phy=Object(__WEBPACK_IMPORTED_MODULE_1__intern_physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_2__intern_print_js__["a"])(ns);var m_nmesh=Object(__WEBPACK_IMPORTED_MODULE_4__intern_navmesh_js__["a"])(ns);exports.CM_WALK=0;exports.CM_RUN=1;exports.CM_CLIMB=2;exports.CM_FLY=3;exports.enable_simulation=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return}m_phy.enable_simulation(obj)};exports.disable_simulation=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.disable_simulation(obj)};exports.has_physics=function(obj){return m_phy.obj_has_physics(obj)};exports.has_simulated_physics=function(obj){return m_phy.has_simulated_physics(obj)};exports.has_dynamic_physics=function(obj){return m_phy.has_dynamic_physics(obj)};exports.set_gravity=function(obj,gravity){m_print.error_deprecated("set_gravity", "set_object_gravity");if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_gravity(obj,0,0,-gravity)};exports.set_object_gravity=function(obj,gravity){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_gravity(obj,gravity[0],gravity[1],gravity[2])};exports.set_transform=function(obj,trans,quat){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_transform(obj, trans,quat)};exports.sync_transform=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.sync_transform(obj)};exports.apply_velocity=function(obj,vx_local,vy_local,vz_local){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.apply_velocity(obj,vx_local,vy_local,vz_local)};exports.apply_velocity_world=function(obj,vx,vy,vz){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return}m_phy.apply_velocity_world(obj,vx,vy,vz)};exports.apply_force=function(obj,fx_local,fy_local,fz_local){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.apply_force(obj,fx_local,fy_local,fz_local,false)};exports.apply_force_world=function(obj,fx_world,fy_world,fz_world){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.apply_force(obj,fx_world,fy_world,fz_world,true)};exports.apply_torque= function(obj,tx_local,ty_local,tz_local){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.apply_torque(obj,tx_local,ty_local,tz_local)};exports.set_angular_velocity=function(obj,av_x,av_y,av_z){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_angular_velocity(obj,av_x,av_y,av_z)};exports.vehicle_throttle=function(obj,engine_force){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return}if(!m_phy.is_vehicle_chassis(obj)&&!m_phy.is_vehicle_hull(obj))m_print.error("Wrong object");m_phy.vehicle_throttle(obj,__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](engine_force,-1,1))};exports.vehicle_throttle_inc=function(obj,engine_force_inc,dir){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}if(!m_phy.is_vehicle_chassis(obj)&&!m_phy.is_vehicle_hull(obj))m_print.error("Wrong object");engine_force_inc=__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](engine_force_inc, 0,1);var vehicle=obj.vehicle;var force=vehicle.engine_force;if(dir==-1||dir==1){force+=dir*engine_force_inc;force=Math.max(-1,Math.min(force,1))}else if(dir==0&&force>=0){force-=engine_force_inc;force=Math.max(0,force)}else if(dir==0&&force<0){force+=engine_force_inc;force=Math.min(0,force)}else m_print.error("Wrong steering direction");m_phy.vehicle_throttle(obj,__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](force,-1,1))};exports.vehicle_steer=function(obj,steering_value){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return}if(!m_phy.is_vehicle_chassis(obj)&&!m_phy.is_vehicle_hull(obj))m_print.error("Wrong object");m_phy.vehicle_steer(obj,__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](steering_value,-1,1))};exports.vehicle_steer_inc=function(obj,steering_value_inc,dir){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}if(!m_phy.is_vehicle_chassis(obj)&&!m_phy.is_vehicle_hull(obj))m_print.error("Wrong object");steering_value_inc=__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](steering_value_inc, 0,1);var vehicle=obj.vehicle;var steering=vehicle.steering;if(dir==-1||dir==1){steering+=dir*steering_value_inc;steering=Math.max(-1,Math.min(steering,1))}else if(dir==0&&steering>=0){steering-=steering_value_inc;steering=Math.max(0,steering)}else if(dir==0&&steering<0){steering+=steering_value_inc;steering=Math.min(0,steering)}else m_print.error("Wrong steering direction");m_phy.vehicle_steer(obj,__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](steering,-1,1))};exports.vehicle_brake=function(obj, brake_force){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}if(!m_phy.is_vehicle_chassis(obj)&&!m_phy.is_vehicle_hull(obj))m_print.error("Wrong object");m_phy.vehicle_brake(obj,__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](brake_force,0,1))};exports.vehicle_brake_inc=function(obj,brake_force_inc){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}if(!m_phy.is_vehicle_chassis(obj)&&!m_phy.is_vehicle_hull(obj))m_print.error("Wrong object"); brake_force_inc=__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](brake_force_inc,-1,1);var vehicle=obj.vehicle;var brake_force=vehicle.brake_force;brake_force+=brake_force*brake_force_inc;m_phy.vehicle_brake(obj,__WEBPACK_IMPORTED_MODULE_3__intern_util_js__["M"](brake_force,0,1))};exports.is_vehicle_chassis=function(obj){return m_phy.is_vehicle_chassis(obj)};exports.is_vehicle_hull=function(obj){return m_phy.is_vehicle_hull(obj)};exports.get_vehicle_name=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return null}if(m_phy.is_vehicle_chassis(obj)||m_phy.is_vehicle_hull(obj))return obj.vehicle_settings.name;else{m_print.error("Wrong object");return null}};exports.get_vehicle_throttle=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return null}if(m_phy.is_vehicle_chassis(obj)||m_phy.is_vehicle_hull(obj))return obj.vehicle.engine_force;else{m_print.error("Wrong object");return null}};exports.get_vehicle_steering=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return 0}if(m_phy.is_vehicle_chassis(obj)||m_phy.is_vehicle_hull(obj))return obj.vehicle.steering;else m_print.error("Wrong object");return 0};exports.get_vehicle_brake=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return 0}if(m_phy.is_vehicle_chassis(obj)||m_phy.is_vehicle_hull(obj))return obj.vehicle.brake_force;else m_print.error("Wrong object");return 0};exports.get_vehicle_speed=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return 0}if(m_phy.is_vehicle_chassis(obj)||m_phy.is_vehicle_hull(obj))return m_phy.get_vehicle_speed(obj);else m_print.error("Wrong object");return 0};exports.is_character=function(obj){return m_phy.has_character_physics(obj)};exports.set_character_move_dir=function(obj,forw,side){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_move_dir(obj,forw,side)};exports.set_character_move_type=function(obj,type){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return}m_phy.set_character_move_type(obj,type)};exports.set_character_walk_velocity=function(obj,velocity){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_walk_velocity(obj,velocity)};exports.set_character_run_velocity=function(obj,velocity){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_run_velocity(obj,velocity)};exports.set_character_fly_velocity=function(obj, velocity){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_fly_velocity(obj,velocity)};exports.character_jump=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.character_jump(obj)};exports.character_rotation_inc=function(obj,h_angle,v_angle){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.character_rotation_inc(obj,h_angle, v_angle)};exports.set_character_rotation=function(obj,angle_h,angle_v){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_rotation(obj,angle_h,angle_v)};exports.set_character_rotation_v=function(obj,angle){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_rotation_v(obj,angle)};exports.set_character_rotation_h=function(obj,angle){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+ obj.name);return}m_phy.set_character_rotation_h(obj,angle)};exports.set_character_vert_move_dir_angle=function(obj,angle){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.set_character_vert_move_dir_angle(obj,angle)};exports.append_collision_test=function(obj_src,collision_id,callback,calc_pos_norm){if(!m_phy.obj_has_physics(obj_src)){m_print.error_once("No physics for object "+obj_src.name);return}collision_id=collision_id||"ANY";calc_pos_norm=calc_pos_norm|| false;m_phy.append_collision_test(obj_src,collision_id,callback,calc_pos_norm)};exports.remove_collision_test=function(obj,collision_id,callback){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}collision_id=collision_id||"ANY";m_phy.remove_collision_test(obj,collision_id,callback)};exports.apply_collision_impulse_test=function(obj,callback){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.apply_collision_impulse_test(obj, callback)};exports.clear_collision_impulse_test=function(obj){if(!m_phy.obj_has_physics(obj)){m_print.error_once("No physics for object "+obj.name);return}m_phy.clear_collision_impulse_test(obj)};exports.append_ray_test=function(obj_src,from,to,collision_id,callback,autoremove){obj_src=obj_src||null;if(obj_src!=null&&!m_phy.obj_has_physics(obj_src)){m_print.error_once("No physics for object "+obj_src.name);return 0}collision_id=collision_id||"ANY";autoremove=autoremove||false;var calc_all_hits=false; var calc_pos_norm=false;var ign_src_rot=false;return m_phy.append_ray_test(obj_src,from,to,collision_id,callback,autoremove,calc_all_hits,calc_pos_norm,ign_src_rot)};exports.append_ray_test_ext=function(obj_src,from,to,collision_id,callback,autoremove,calc_all_hits,calc_pos_norm,ign_src_rot){obj_src=obj_src||null;if(obj_src!=null&&!m_phy.obj_has_physics(obj_src)){m_print.error_once("No physics for object "+obj_src.name);return 0}collision_id=collision_id||"ANY";autoremove=autoremove||false;calc_all_hits= calc_all_hits||false;calc_pos_norm=calc_pos_norm||false;ign_src_rot=ign_src_rot||false;return m_phy.append_ray_test(obj_src,from,to,collision_id,callback,autoremove,calc_all_hits,calc_pos_norm,ign_src_rot)};exports.remove_ray_test=function(id){if(!m_phy.is_ray_test(id)){m_print.error("Wrong ray test ID");return}m_phy.remove_ray_test(id)};exports.change_ray_test_from_to=function(id,from,to){if(!m_phy.is_ray_test(id)){m_print.error("Wrong ray test ID");return}m_phy.change_ray_test_from_to(id,from,to)}; exports.apply_constraint=function(pivot_type,obj_a,trans_a,quat_a,obj_b,trans_b,quat_b,limits,stiffness,damping){if(!m_phy.obj_has_physics(obj_a)||!m_phy.obj_has_physics(obj_b)){m_print.error("Wrong objects");return}m_phy.apply_constraint(pivot_type,obj_a,trans_a,quat_a,obj_b,trans_b,quat_b,limits,stiffness,damping)};exports.clear_constraint=function(obj_a){if(!m_phy.obj_has_physics(obj_a)||!m_phy.has_constraint(obj_a)){m_print.error("Wrong object");return}m_phy.clear_constraint(obj_a)};exports.pull_to_constraint_pivot= function(obj_a,trans_a,quat_a,obj_b,trans_b,quat_b){if(!m_phy.obj_has_physics(obj_a)||!m_phy.obj_has_physics(obj_b)){m_print.error("Wrong objects");return}m_phy.pull_to_constraint_pivot(obj_a,trans_a,quat_a,obj_b,trans_b,quat_b)};function distance_to_closest_default(position,centroid,vertex_ids,vertices,current_max_distance){return __WEBPACK_IMPORTED_MODULE_3__intern_util_js__["V"](position,vertices[vertex_ids[0]],vertices[vertex_ids[1]],vertices[vertex_ids[2]])}function distance_to_farthest_default(position, centroid,vertex_ids,vertices,current_max_distance){var distance=Math.abs(position[2]-centroid[2]);if(distance0){var subs_anchor=m_scenes.get_subs(m_scenes.get_main(),m_subs.ANCHOR_VISIBILITY);var bundle=subs_anchor.draw_data[0].bundles[0];var batch_anchor=bundle.batch;m_batch.update_anchor_visibility_batch(batch_anchor,_anchor_batch_pos);m_subs.append_draw_data(subs_anchor,bundle)}};function transform_anchor_el(anchor, left,top){var el=anchor.element;if(cfg_def.ie_edge_anchors_floor_hack){left=Math.floor(left);top=Math.floor(top)}if("transform"in el.style)el.style.transform="translate3d("+left+"px, "+top+"px, 0px)";else if("webkitTransform"in el.style)el.style.webkitTransform="translate3d("+left+"px, "+top+"px, 0px)";else{el.style.left=left+"px";el.style.top=top+"px"}}var anchor_project=function(){var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_15__libs_gl_matrix_vec3_js__["create"]();return function anchor_project(anchor, dest){var camobj=m_scenes.get_camera(m_scenes.get_main());var trans=__WEBPACK_IMPORTED_MODULE_14__tsr_js__["j"](anchor.obj.render.world_tsr,_vec3_tmp);m_cam.project_point(camobj,trans,dest);__WEBPACK_IMPORTED_MODULE_14__tsr_js__["v"](trans,anchor.obj.render.world_tsr);return dest}}();exports.update_visibility=function(){var canvas_cont=m_cont.get_container();var active_scene=m_scenes.get_active();var subs_stereo=m_scenes.get_subs(active_scene,m_subs.STEREO);var is_splitscreen=Boolean(subs_stereo&& subs_stereo.enable_hmd_stereo);for(var i=_anchors.length;i--;){var anchor=_anchors[i];var obj=anchor.obj;var obj_render=obj.render;var x=anchor.x;var y=anchor.y;var depth=anchor.depth;var camobj=m_scenes.get_camera(m_scenes.get_main());var center=m_trans.get_translation(obj,_vec3_tmp);var eye=m_trans.get_translation(camobj,_vec3_tmp2);var dist=__WEBPACK_IMPORTED_MODULE_15__libs_gl_matrix_vec3_js__["dist"](center,eye);if(x<0||y<0||depth<0||depth>1||m_scenes.is_hidden(obj)||x>=canvas_cont.clientWidth|| y>=canvas_cont.clientHeight||!is_anchor_lod_visible(obj_render,dist))var appearance="out";else var appearance="visible";if(anchor.detect_visibility&&appearance!="out")appearance=pick_anchor_visibility(anchor);if(is_splitscreen)appearance="out";if(appearance==anchor.appearance)continue;switch(anchor.type){case "ANNOTATION":case "ELEMENT":var element=anchor.element;if(!element)break;if(appearance=="out"){element.style.visibility="hidden";if(element.children.length)element.children[0].style.visibility= "hidden"}else if(appearance=="visible"){element.style.visibility="visible";if(element.children.length)element.children[0].style.visibility="visible";element.style.opacity=1}else{element.style.visibility="visible";element.style.opacity=.1;if(element.children.length)element.children[0].style.visibility="visible";if(anchor.type=="ANNOTATION"&&element.children.length>1)if(element.lastElementChild.style.visibility=="visible"){close_descr();if(element==_clicked_elem)_clicked_elem=null}}break;case "GENERIC":break}anchor.appearance= appearance;if(anchor.move_cb)anchor.move_cb(x,y,anchor.appearance,obj,element)}};function pick_anchor_visibility(anchor){var subs_anchor=m_scenes.get_subs(m_scenes.get_main(),m_subs.ANCHOR_VISIBILITY);var anchor_cam=subs_anchor.camera;var viewport_xy=m_cont.canvas_to_viewport_coords(anchor.x,anchor.y,_vec2_tmp,anchor_cam);m_render.read_pixels(anchor_cam.framebuffer,viewport_xy[0],anchor_cam.height-viewport_xy[1],2,2,_pixels);if(_pixels[0]+_pixels[4]+_pixels[8]+_pixels[12]>=255)return"visible";else if(anchor.appearance== "out"||_pixels[0]+_pixels[4]+_pixels[8]+_pixels[12]==0)return"covered";else return anchor.appearance}exports.attach_move_cb=function(obj,callback){for(var i=0;i<_anchors.length;i++)if(_anchors[i].obj==obj)_anchors[i].move_cb=callback};exports.detach_move_cb=function(obj){for(var i=0;i<_anchors.length;i++)if(_anchors[i].obj==obj)_anchors[i].move_cb=null};function remove_annotation(anchor){var canvas_cont=m_cont.get_container();canvas_cont.removeChild(anchor.element)}exports.cleanup=function(){for(var i= 0;i<_anchors.length;i++){var anchor=_anchors[i];if(anchor.type=="ANNOTATION")remove_annotation(anchor)}_anchors.length=0};exports.is_anchor=is_anchor;function is_anchor(obj){for(var i=0;i<_anchors.length;i++)if(_anchors[i].obj==obj)return true;return false}exports.get_element_id=function(obj){for(var i=0;i<_anchors.length;i++)if(_anchors[i].obj==obj)return _anchors[i].element_id;return false};exports.pause=function(){_is_paused=true};exports.resume=function(){_is_paused=false};exports.pick_anchor= function(x,y){var index=-1;for(var i=0;i<_anchors.length;i++)if(_anchors[i].appearance=="visible"&&check_anchor_coords(_anchors[i],x,y))if(index<0){var min_dist=_anchors[i].depth;index=i}else if(_anchors[i].depth=a_x&&x<=a_x+width&&y=a_y-height)return true;else return false}function is_anchor_lod_visible(obj_render,dist){if(!obj_render.is_lod)return true;var dist_min=obj_render.lod_dist_min;var dist_max=obj_render.lod_dist_max;if(dist-1)m_graph.replace_edge_attr(graph,node1,node2,slink,clone_slink(slink));else slinks.push(slink)});m_graph.traverse(graph,function(id,attr){var subs=attr;for(var i=0;i-1)subs.slinks_internal[i]=clone_slink(slink);else slinks.push(slink)}})}function enforce_graph_consistency(graph,depth_tex){m_graph.traverse(graph,function(id,attr){var subs=attr;if(subs.type==m_subs.ANTIALIASING)m_graph.traverse_inputs(graph,id,function(id_in,attr_in,attr_edge){var subs_in=attr_in;if(subs_in.type==m_subs.MOTION_BLUR)for(var i=0;i-1)slink.unique_texture=true;var tex=tex_aquire(tex_storage,slink,calc_slink_id(slink));slink.texture=tex;subs.textures_internal[i]= tex}for(var i=0;i-1)slink.unique_texture=true;else{var tex=find_nearest_tex(graph_sorted,id,slink.from);if(tex&&slink.active&&!slink.texture){tex_inc_ref(tex_storage,tex);slink.texture=tex;return}}tex=tex_aquire(tex_storage,slink,calc_slink_id(slink)); slink.texture=tex});m_graph.traverse_inputs(graph_sorted,id,function(id_in,attr_in,attr_edge){tex_dec_ref(tex_storage,attr_edge.texture)});m_graph.traverse_outputs(graph_sorted,id,function(id_out,attr_out,attr_edge){var slink=attr_edge;if(slink.texture&&slink.to=="NONE")tex_dec_ref(tex_storage,slink.texture)})})}function calc_slink_id(slink){var to=slink.to;var active=slink.active;var texture=slink.texture;slink.to="";slink.active=false;slink.texture=null;var id=m_generator.calc_variable_id(slink, 0);slink.to=to;slink.active=active;slink.texture=texture;return id}function find_nearest_tex(graph,id,type){var tex=null;m_graph.traverse_inputs(graph,id,function(id_in,attr_in,attr_edge){var slink=attr_edge;if(slink.active&&slink.from==slink.to&&slink.from==type&&slink.texture){tex=slink.texture;return true}});m_graph.traverse_outputs(graph,id,function(id_out,attr_out,attr_edge){var slink=attr_edge;if(slink.active&&slink.from==type&&slink.texture){tex=slink.texture;return true}});return tex}function tex_inc_ref(storage, tex){for(var i=0;i 0&&!rtt)for(var j=0;j1;cfg_def.reuse_depth_optimization=cfg_def.reuse_depth_optimization&&Boolean(shadow_params)&&!(msaa&&ssao);var reuse_depth_optimization=cfg_def.reuse_depth_optimization;var slink_color_o=create_slink("COLOR","COLOR",1,1,1,true,true);var slink_depth_o=create_slink("DEPTH","DEPTH",1,1,1,true,true);if(msaa){var slink_depth_resolve_o=clone_slink(slink_depth_o);slink_color_o.multisample=true;slink_color_o.use_renderbuffer=true;slink_depth_o.multisample= true;slink_depth_o.use_renderbuffer=true}var main_cam=cam_scene_data.cameras[0];if(sc_render.dynamic_grass){var subs_grass_map=m_subs.create_subs_grass_map();m_graph.append_node_attr(graph,subs_grass_map);var tex_size=cfg_scs.grass_tex_size;subs_grass_map.camera.width=tex_size;subs_grass_map.camera.height=tex_size;var slink_grass_map_d=create_slink("DEPTH","u_grass_map_depth",tex_size,1,1,false,false);if(!cfg_def.webgl2){slink_grass_map_d.min_filter=m_tex.TF_LINEAR;slink_grass_map_d.mag_filter=m_tex.TF_LINEAR}var slink_grass_map_c= create_slink("COLOR","u_grass_map_color",tex_size,1,1,false,false);slink_grass_map_c.min_filter=m_tex.TF_LINEAR;slink_grass_map_c.mag_filter=m_tex.TF_LINEAR}else{var subs_grass_map=null;var slink_grass_map_d=null;var slink_grass_map_c=null}if(shadow_params){m_cam.update_camera_shadows(main_cam,shadow_params);for(var j=0;j0?j:i;if(cfg_def.rgba_fallback_shadows){var color_slink=create_slink("COLOR","u_shadow_map"+index,tex_size,1,1,false,false);shadow_links.push(color_slink);var shadow_depth=create_slink("DEPTH","DEPTH",tex_size,1,1,false,false);shadow_depth.use_renderbuffer=true;subs_shadow.slinks_internal.push(shadow_depth)}else{var depth_slink= create_slink("DEPTH","u_shadow_map"+index,tex_size,1,1,false,false);if(cfg_def.compared_mode_depth){depth_slink.min_filter=m_tex.TF_LINEAR;depth_slink.mag_filter=m_tex.TF_LINEAR;depth_slink.use_comparison=true}shadow_links.push(depth_slink);if(m_debug_check.depth_only_issue()||cfg_def.shadows_color_slink_hack)subs_shadow.slinks_internal.push(create_slink("COLOR","COLOR",tex_size,1,1,false,false))}if(subs_grass_map){m_graph.append_edge_attr(graph,subs_grass_map,subs_shadow,slink_grass_map_d);m_graph.append_edge_attr(graph, subs_grass_map,subs_shadow,slink_grass_map_c)}}}}var grass={subs_grass_map:subs_grass_map,slink_grass_map_d:slink_grass_map_d,slink_grass_map_c:slink_grass_map_c};var cube_refl={cube_reflect_links:cube_reflect_links,cube_refl_subscenes:cube_refl_subscenes};update_rendering_graph_cube_reflections(refl_params,refl_params,sc_render,graph,grass,cube_refl,rtt);var plane_refl={reflect_links_opaque:reflect_links,reflect_subscenes:reflect_subscenes};update_rendering_graph_plane_reflections(refl_params,refl_params, sc_render,graph,grass,plane_refl,cam_scene_data);if(shadow_params){var cam_sh_receive=m_cam.clone_camera(main_cam,true);cam_scene_data.cameras.push(cam_sh_receive);var subs_receive=m_subs.create_subs_shadow_receive(graph,cam_sh_receive,num_lights);m_graph.append_node_attr(graph,subs_receive);subs_receive.self_shadow_normal_offset=shadow_params.self_shadow_normal_offset;for(var i=0;i-1){removed_subscenes.push(subs);subs_new=subs}else{subs_new=m_subs.clone_subs(subs);if(subs_new.type==m_subs.MAIN_PLANE_REFLECT)for(var i=0;i-1){if(hmd_stereo_use){m_cam.make_stereo(subs.camera,m_cam.TYPE_HMD_LEFT);m_cam.make_stereo(subs_new.camera,m_cam.TYPE_HMD_RIGHT);subs_new.force_do_not_render=true}else{m_cam.make_stereo(subs.camera,m_cam.TYPE_STEREO_LEFT);m_cam.make_stereo(subs_new.camera, m_cam.TYPE_STEREO_RIGHT)}cams.push(subs_new.camera)}var nid_subs=m_graph.node_by_attr(graph,subs);m_graph.traverse_inputs(graph,nid_subs,function(nid_in,subs_in,slink){if(LEFT_ONLY_SUBS_TYPES.indexOf(subs_in.type)>-1)left_only_edges.push([subs_in,subs_new,slink])});if(subs.type!==m_subs.MOTION_BLUR)for(var i=0;i0?input.shadow_lamp_index:csm_index;subs.p_light_matrix[index]= input.camera.proj_matrix;csm_index++}}if(!subs.v_light_ts||!subs.v_light_r)if(cfg_def.mac_os_shadow_hack)subs.v_light_tsr=new Float32Array(v_light_tsr_num*9);else{subs.v_light_ts=new Float32Array(v_light_tsr_num*4);subs.v_light_r=new Float32Array(v_light_tsr_num*4)}}exports.create_performance_graph=function(){var graph=m_graph.create();var subs_perf=m_subs.create_subs_perf();var cam=m_cam.create_camera(m_cam.TYPE_NONE);var size=512;cam.width=size;cam.height=size;subs_perf.camera=cam;m_graph.append_node_attr(graph, subs_perf);subs_perf.slinks_internal.push(create_slink("COLOR","u_color",size,1,1,false,false));var subs_sink=m_subs.create_subs_sink();m_graph.append_node_attr(graph,subs_sink);m_graph.append_edge_attr(graph,subs_perf,subs_sink,create_slink("COLOR","NONE",size,1,1,false,false));process_subscene_links(graph);assign_render_targets(graph);return graph};exports.find_on_screen=function(graph){var subs=null;m_graph.traverse(graph,function(node,attr){if(attr.camera&&attr.camera.framebuffer===null){subs= attr;return true}return false});return subs};exports.find_input=function(graph,subs,type){var inputs=get_inputs(graph,subs);for(var i=0;i "+String(node2)+' [label="'+label+'" '+'style="'+style+ '"];\n'}function dot_format_edge_label(slink,node1,node2,tex_ids){function filters_to_string(filters){var string="";if(filters.min==m_tex.TF_LINEAR)string+="L";else if(filters.min==m_tex.TF_NEAREST)string+="N";if(filters.mag==m_tex.TF_LINEAR)string+="L";else if(filters.mag==m_tex.TF_NEAREST)string+="N";return string}var label="";label+=slink.from+"\\n";label+=slink.to!="NONE"?slink.to+"\\n":"";label+="(";if(slink.update_dim){var size_mult_x=slink.size_mult_x;var size_mult_y=slink.size_mult_y;if(Math.round(size_mult_x)!= size_mult_x)size_mult_x=size_mult_x.toFixed(2);if(Math.round(size_mult_y)!=size_mult_y)size_mult_y=size_mult_y.toFixed(2);var size_x=(size_mult_x==1?"":size_mult_x)+"S";var size_y=(size_mult_y==1?"":size_mult_y)+"S";label+=size_x+"x"+size_y;label+=slink.apply_resolution_factors?" FACT":" VIEW"}else{var size_mult_x=slink.size_mult_x;var size_mult_y=slink.size_mult_y;label+=slink.size*size_mult_x+"x"+slink.size*size_mult_y}if(slink.from!="SCREEN"){label+=" ";if(slink.use_renderbuffer)label+="RR";else label+= filters_to_string({min:slink.min_filter,mag:slink.mag_filter});for(var i=0;icons.dist_max)var delta=dist-cons.dist_max;else if(dist0)for(var i=0;i=0){ep.mute=false;logic.logic_threads[j].thread_state.curr_node=0}break}}break}};function reset_play(thread){var callstack=thread.thread_state.callstack;var len=callstack.length;var scripts=[];if(len<=1)scripts.push(thread.nodes);for(var k=1;k1&¶m[0]==name)return convert_variable(param[1],param_type)}return 0}function get_world(node){return m_obj.get_world_by_name(node.dupli_name_list[0],0)}function entrypoint_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:if(thread_state.callstack.length==0)thread_state.callstack.push({caller_node:null,variables:thread_state.variables, logic_func:null});thread_state.curr_node=node.slot_idx_order;break}}function hide_object_handler(node,logic,thread_state,timeline,elapsed,start_time){var is_var=node.bools["id0"];function init(node,inst,thread_state){if(!is_var){inst.obj=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id0"],0);if(!inst.obj){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node, thread_state,init);var obj=is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.obj;var process_child=node.bools["ch"];if(process_child)m_scs.change_visibility_rec(obj,true);else m_scs.change_visibility(obj,true);thread_state.curr_node=node.slot_idx_order;break}}function show_object_handler(node,logic,thread_state,timeline,elapsed,start_time){var is_var=node.bools["id0"];function init(node,inst,thread_state){if(!is_var){inst.obj=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST, node.objects_paths["id0"],0);if(!inst.obj){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);var obj=is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.obj;var process_child=node.bools["ch"];if(process_child)m_scs.change_visibility_rec(obj,false);else m_scs.change_visibility(obj,false);thread_state.curr_node=node.slot_idx_order; break}}function pageparam_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:set_var(node.vars["id0"],logic.variables,thread_state.variables,get_url_param(node.param_name,node.floats["ptp"],node.bools["hsh"]));thread_state.curr_node=node.slot_idx_order;break}}function select_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case INITIALIZATION:m_print.error("Logic script error: node is deprecated. Node: ",node.name);node.mute= true;break}}var gen_switch_select_cb=function(){return function(obj,id,pulse,param){var node=param[0];var logic=param[1];var thread=param[2];var inst=get_node_instance(node,thread.thread_state);if(inst.state!=NSS_READY)return;for(var i=0;i=0)m_nla.set_range_end(logic.sorted_markers_values[end]);else m_nla.set_range_end(m_nla.get_frame_end())}m_nla.play_nla(null);if(node.bools["not_wait"]){thread_state.curr_node=node.slot_idx_order;inst.state=NPS_NOT_STARTED;thread_state.in_progress=false}break;case NPS_PLAYING:if(!m_nla.is_play()){thread_state.curr_node=node.slot_idx_order;inst.state=NPS_NOT_STARTED; thread_state.in_progress=false}break;case NPS_FINISHED:thread_state.curr_node=node.slot_idx_order;inst.state=NPS_NOT_STARTED;logic.nla_thread=null;thread_state.in_progress=false;break;default:m_assert.panic("Unknown state of "+node.name);inst.state=NPS_NOT_STARTED;break}break}}function console_print_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:var j=0;var result="{";for(var i in node.vars){if(j>0)result+=", ";var key=node.vars[i][1];var val=get_var(node.vars[i], logic.variables,thread_state.variables);result+='"'+key+'": ';try{result+=JSON.stringify(val)}catch(e){if(val)result+='{"name": "'+val.name+'", "type": "'+val.type+'"}';else result+="Object"}++j}result+="}";m_print.log(node.common_usage_names["msg"],result);thread_state.curr_node=node.slot_idx_order;break}}function stop_timeline_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:if(node.bools["rst"])m_nla.set_offset_from_range_start(timeline);m_nla.stop_nla(); thread_state.curr_node=node.slot_idx_order;break}}function redirect_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:var url=node.bools["url"]?convert_variable(get_var(node.vars["url"],logic.variables,thread_state.variables),NT_STRING):node.strings["url"];window.location.href=url;logic.state=STOPPED;break}}function send_req_handler(node,logic,thread_state,timeline,elapsed,start_time){var inst=get_node_instance(node,thread_state);function asset_cb(loaded_data, id,type,url,param){var resp_string=JSON.stringify(loaded_data);var node=param[0];var thread_state=param[1];var inst=get_node_instance(node,thread_state);set_var(param[0].vars["dst"],logic.variables,thread_state.variables,resp_string);inst.state=1}switch(logic.state){case RUNNING:switch(inst.state){case NSR_NOT_STARTED:inst.state=NSR_SENDING_REQUEST;var url=node.bools["url"]?convert_variable(get_var(node.vars["url"],logic.variables,thread_state.variables),NT_STRING):node.strings["url"];var header= {};if(node.bools["ct"])header["Content-Type"]=node.strings["ct"];if(node.common_usage_names["request_type"]=="GET")m_assets.enqueue([{id:url,type:m_assets.AT_JSON,url:url,overwrite_header:header,param:[node,thread_state]}],asset_cb,null,null,null);else if(node.common_usage_names["request_type"]=="POST"){var req=convert_variable(get_var(node.vars["dst1"],logic.variables,thread_state.variables),NT_STRING);m_assets.enqueue([{id:url,type:m_assets.AT_JSON,url:url,overwrite_header:header,request_method:"POST", post_data:req,param:[node,thread_state]}],asset_cb,null,null,null)}break;case NSR_SENDING_REQUEST:break;case NSR_RESPONSE_RECEIVED:inst.state=NSR_NOT_STARTED;thread_state.curr_node=node.slot_idx_order;break}break}}function inherit_mat_handler(node,logic,thread_state,timeline,elapsed,start_time){function init(node,inst,thread_state){for(var i=0;i<2;i++){inst.objects["id"+i]=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id"+i],0);if(!inst.objects["id"+i]){m_print.error("Logic script error: object not found. Node: ", node.name);node.mute=true}}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);m_obj.inherit_material(inst.objects["id0"],node.materials_names["id0"],inst.objects["id1"],node.materials_names["id1"]);thread_state.curr_node=node.slot_idx_order;break}}function delay_handler(node,logic,thread_state,timeline,elapsed,start_time){var inst=get_node_instance(node,thread_state);switch(logic.state){case INITIALIZATION:break;case RUNNING:if(inst.state== NPS_NOT_STARTED){inst.state=NPS_PLAYING;inst.timer=0;thread_state.in_progress=true;return}else if(inst.state==NPS_PLAYING){inst.timer+=elapsed;var dl=node.bools["dl"]?convert_variable(get_var(node.vars["dl"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dl"];if(dl0)phi=0;else phi=Math.PI;if(_vec3_tmp[2]>0&&_vec3_tmp[0]>0)_vec2_tmp[1]=-(Math.PI+_vec2_tmp[1]);else if(_vec3_tmp[2]>0&&_vec3_tmp[0]< 0)_vec2_tmp[1]=-(Math.PI+_vec2_tmp[1]);else if(_vec3_tmp[2]<0&&_vec3_tmp[0]<0){_vec2_tmp[0]+=Math.PI;phi=-(Math.PI-phi)}else if(_vec3_tmp[2]<0&&_vec3_tmp[0]>0){_vec2_tmp[0]+=Math.PI;phi-=Math.PI}m_cam.set_rotation_hover_angles(cam,phi+Math.PI,-theta);break}m_trans.update_transform(cam);m_phy.sync_transform(cam)}function set_tsr(cam,trans,target,tsr_out){__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_mat4_js__["lookAt"](trans,target,__WEBPACK_IMPORTED_MODULE_21__util_js__["f"],_mat4_tmp);__WEBPACK_IMPORTED_MODULE_14__libs_gl_matrix_mat4_js__["invert"](_mat4_tmp, _mat4_tmp);var rot_matrix=_mat3_tmp;__WEBPACK_IMPORTED_MODULE_13__libs_gl_matrix_mat3_js__["fromMat4"](_mat4_tmp,rot_matrix);__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_quat_js__["fromMat3"](rot_matrix,_vec4_tmp);__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_quat_js__["normalize"](_vec4_tmp,_vec4_tmp);var scale=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["i"](cam.render.world_tsr);__WEBPACK_IMPORTED_MODULE_20__tsr_js__["t"](trans,scale,_vec4_tmp,tsr_out)}var ca_is_var=node.bools["id0"];var tr_is_var=node.bools["id1"]; var ta_is_var=node.bools["id2"];function init(node,inst,thread_state){var o=null;o=inst.objects["ca"]=get_object(node,"id0",ca_is_var,logic.variables,thread_state.variables);if(!o&&!ca_is_var){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}inst.objects["tr"]=get_object(node,"id1",tr_is_var,logic.variables,thread_state.variables);if(!inst.objects["tr"]&&!tr_is_var){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}inst.objects["ta"]= get_object(node,"id2",ta_is_var,logic.variables,thread_state.variables);if(!inst.objects["ta"]&&!ta_is_var){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}inst.state=NPS_NOT_STARTED;inst.camera_state={trans_start:new Float32Array(3),trans_end:new Float32Array(3),interp_trans:new Float32Array(3),target_start:new Float32Array(3),target_end:new Float32Array(3),interp_target:new Float32Array(3),tsr_start:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"](),tsr_end:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"](), interp_tsr:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"]()}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);var cam=ca_is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.objects["ca"];var tr=tr_is_var?get_var(node.vars["id1"],logic.variables,thread_state.variables):inst.objects["tr"];var ta=ta_is_var?get_var(node.vars["id2"],logic.variables,thread_state.variables):inst.objects["ta"];var trans=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](tr.render.world_tsr, _vec3_tmp);var target=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](ta.render.world_tsr,_vec3_tmp2);switch(inst.state){case NPS_NOT_STARTED:var dur=node.bools["dur"]?convert_variable(get_var(node.vars["dur"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dur"];if(dur==0){set_tsr(cam,trans,target,inst.camera_state.tsr_end);move_cam(cam,trans,target,inst.camera_state.tsr_end);thread_state.curr_node=node.slot_idx_order;return}var cam_trans=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](cam.render.world_tsr, _vec3_tmp3);__WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["copy"](cam_trans,inst.camera_state.trans_start);var move_style=m_cam.get_move_style(cam);if(move_style==m_cam.MS_HOVER_CONTROLS)__WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["copy"](cam.render.hover_pivot,inst.camera_state.target_start);else if(move_style==m_cam.MS_STATIC||move_style==m_cam.MS_EYE_CONTROLS){__WEBPACK_IMPORTED_MODULE_20__tsr_js__["a"](cam.render.world_tsr,inst.camera_state.tsr_start);set_tsr(cam,trans,target, inst.camera_state.tsr_end)}else __WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["copy"](cam.render.pivot,inst.camera_state.target_start);__WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["copy"](trans,inst.camera_state.trans_end);__WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["copy"](target,inst.camera_state.target_end);inst.state=NPS_PLAYING;var trans_animator=m_time.animate(0,1,dur*1E3,function(e){if(m_scs.check_active()){if(move_style==m_cam.MS_STATIC||move_style==m_cam.MS_EYE_CONTROLS)__WEBPACK_IMPORTED_MODULE_20__tsr_js__["o"](inst.camera_state.tsr_start, inst.camera_state.tsr_end,__WEBPACK_IMPORTED_MODULE_21__util_js__["_53"](e),inst.camera_state.interp_tsr);else{inst.camera_state.interp_target=__WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["lerp"](inst.camera_state.target_start,inst.camera_state.target_end,__WEBPACK_IMPORTED_MODULE_21__util_js__["_53"](e),inst.camera_state.interp_target);inst.camera_state.interp_trans=__WEBPACK_IMPORTED_MODULE_22__libs_gl_matrix_vec3_js__["lerp"](inst.camera_state.trans_start,inst.camera_state.trans_end, __WEBPACK_IMPORTED_MODULE_21__util_js__["_53"](e),inst.camera_state.interp_trans)}move_cam(cam,inst.camera_state.interp_trans,inst.camera_state.interp_target,inst.camera_state.interp_tsr);if(e==1)inst.state=NPS_FINISHED}});break;case NPS_PLAYING:break;case NPS_FINISHED:m_time.clear_animation(trans_animator);inst.state=NPS_NOT_STARTED;thread_state.curr_node=node.slot_idx_order;break}break}}function set_camera_move_style_handler(node,logic,thread_state,timeline,elapsed,start_time){var bools=node.bools; function init(node,inst,thread_state){if(!bools["id0"]){var cam=inst.objects["id0"]=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id0"],0);if(!cam){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}}if(bools["pvo"]&&!bools["id1"])inst.objects["id1"]=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id1"],0)}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init); var cam=bools["id0"]?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.objects["id0"];var render=cam.render;inst.cam_state={target_cam_upside_down:render.target_cam_upside_down,use_panning:render.use_panning,horizontal_limits:render.horizontal_limits,vertical_limits:render.vertical_limits,distance_limits:render.distance_limits,hover_horiz_trans_limits:render.hover_horiz_trans_limits,hover_vert_trans_limits:render.hover_vert_trans_limits,pivot_limits:render.pivot_limits,enable_hover_hor_rotation:render.enable_hover_hor_rotation}; if(m_obj_util.is_camera(cam)){var cam_render=cam.render;var cam_state=inst.cam_state;m_cam.wipe_move_style(cam);switch(node.common_usage_names["camera_move_style"]){case NCMS_STATIC:cam_render.move_style=m_cam.MS_STATIC;break;case NCMS_EYE:cam_render.move_style=m_cam.MS_EYE_CONTROLS;var pos=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](cam_render.world_tsr,_vec3_tmp);m_cam.setup_eye_model(cam,pos,null,cam_state.horizontal_limits,cam_state.vertical_limits);break;case NCMS_HOVER:cam_render.move_style= m_cam.MS_HOVER_CONTROLS;var pos=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](cam_render.world_tsr,_vec3_tmp);var pivot=_vec3_tmp2;if(node.bools["pvo"]){var pvo=bools["id1"]?get_var(node.vars["id1"],logic.variables,thread_state.variables):inst.objects["id1"];pivot=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](pvo.render.world_tsr,_vec3_tmp2)}else{pivot[0]=node.bools["pvx"]?convert_variable(get_var(node.vars["pvx"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvx"];pivot[1]=node.bools["pvy"]? convert_variable(get_var(node.vars["pvy"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvy"];pivot[2]=node.bools["pvz"]?convert_variable(get_var(node.vars["pvz"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvz"]}m_cam.setup_hover_model(cam,pos,pivot,cam_state.distance_limits,cam_state.vertical_limits,cam_state.hover_horiz_trans_limits,cam_state.hover_vert_trans_limits,cam_state.enable_hover_hor_rotation);break;case NCMS_TARGET:cam_render.move_style=m_cam.MS_TARGET_CONTROLS; var pos=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](cam_render.world_tsr,_vec3_tmp);var pivot=_vec3_tmp2;if(node.bools["pvo"]){var pvo=bools["id1"]?get_var(node.vars["id1"],logic.variables,thread_state.variables):inst.objects["id1"];pivot=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["j"](pvo.render.world_tsr,_vec3_tmp2)}else{pivot[0]=node.bools["pvx"]?convert_variable(get_var(node.vars["pvx"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvx"];pivot[1]=node.bools["pvy"]?convert_variable(get_var(node.vars["pvy"], logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvy"];pivot[2]=node.bools["pvz"]?convert_variable(get_var(node.vars["pvz"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvz"]}m_cam.setup_target_model(cam,pos,pivot,cam_state.horizontal_limits,cam_state.vertical_limits,cam_state.distance_limits,cam_state.pivot_limits,cam_state.use_panning);break}var vel=_vec3_tmp1;vel[0]=node.bools["vtr"]?convert_variable(get_var(node.vars["vtr"],logic.variables,thread_state.variables), NT_NUMBER):node.floats["vtr"];vel[1]=node.bools["vro"]?convert_variable(get_var(node.vars["vro"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vro"];vel[2]=node.bools["vzo"]?convert_variable(get_var(node.vars["vzo"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vzo"];vel[0]=__WEBPACK_IMPORTED_MODULE_21__util_js__["M"](vel[0],0,Infinity);vel[1]=__WEBPACK_IMPORTED_MODULE_21__util_js__["M"](vel[1],0,Infinity);vel[2]=__WEBPACK_IMPORTED_MODULE_21__util_js__["M"](vel[2], 0,.99);cam_render.velocity_trans=vel[0];cam_render.velocity_rot=vel[1];cam_render.velocity_zoom=vel[2];m_trans.update_transform(cam);m_phy.sync_transform(cam);m_cam.init_ortho_props(cam)}else m_print.error("Logic script error: object is not a Camera. Node: ",node.name);thread_state.curr_node=node.slot_idx_order;break}}function set_camera_limits_handler(node,logic,thread_state,timeline,elapsed,start_time){var bools=node.bools;function init(node,inst,thread_state){var cam=null;if(!bools["id0"]){cam= inst.objects["id0"]=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id0"],0);if(!cam){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);var cam=bools["id0"]?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.objects["id0"];if(m_obj_util.is_camera(cam)){var cam_render=cam.render;switch(cam_render.move_style){case m_cam.MS_TARGET_CONTROLS:if(node.bools["dsl"]){var dslmin= node.bools["dslmin"]?convert_variable(get_var(node.vars["dslmin"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dslmin"];var dslmax=node.bools["dslmax"]?convert_variable(get_var(node.vars["dslmax"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dslmax"];var limits={};limits.min=Math.max(dslmin,0);limits.max=Math.max(dslmax,0);m_cam.set_distance_limits(cam,limits)}if(node.bools["vrl"]){var vrldown=node.bools["vrldown"]?convert_variable(get_var(node.vars["vrldown"], logic.variables,thread_state.variables),NT_NUMBER):node.floats["vrldown"];var vrlup=node.bools["vrlup"]?convert_variable(get_var(node.vars["vrlup"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vrlup"];var limits={};limits.down=vrldown;limits.up=vrlup;limits.camera_space=node.common_usage_names["cam_lim_vert_rot_space_type"]=="CAMERA";m_cam.set_vertical_rot_limits(cam,limits)}if(node.bools["hrl"]){var hrlleft=node.bools["hrlleft"]?convert_variable(get_var(node.vars["hrlleft"],logic.variables, thread_state.variables),NT_NUMBER):node.floats["hrlleft"];var hrlright=node.bools["hrlright"]?convert_variable(get_var(node.vars["hrlright"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["hrlright"];var limits={};limits.left=hrlleft;limits.right=hrlright;limits.camera_space=node.common_usage_names["cam_lim_hor_rot_space_type"]=="CAMERA";m_cam.set_horizontal_rot_limits(cam,limits)}if(node.bools["pvl"]){var pvlmin=node.bools["pvlmin"]?convert_variable(get_var(node.vars["pvlmin"],logic.variables, thread_state.variables),NT_NUMBER):node.floats["pvlmin"];var pvlmax=node.bools["pvlmax"]?convert_variable(get_var(node.vars["pvlmax"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["pvlmax"];var limits={};limits.min_z=pvlmin;limits.max_z=pvlmax;m_cam.set_pivot_limits(cam,limits)}break;case m_cam.MS_HOVER_CONTROLS:if(node.bools["htl"]){var htlmin=node.bools["htlmin"]?convert_variable(get_var(node.vars["htlmin"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["htlmin"]; var htlmax=node.bools["htlmax"]?convert_variable(get_var(node.vars["htlmax"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["htlmax"];var limits={};limits.min=htlmin;limits.max=htlmax;m_cam.set_hor_trans_limits(cam,limits)}if(node.bools["vtl"]){var vtlmin=node.bools["vtlmin"]?convert_variable(get_var(node.vars["vtlmin"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vtlmin"];var vtlmax=node.bools["vtlmax"]?convert_variable(get_var(node.vars["vtlmax"],logic.variables, thread_state.variables),NT_NUMBER):node.floats["vtlmax"];var limits={};limits.min=vtlmin;limits.max=vtlmax;m_cam.set_vert_trans_limits(cam,limits)}if(node.bools["vrl"]){var vrldown=node.bools["vrldown"]?convert_variable(get_var(node.vars["vrldown"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vrldown"];var vrlup=node.bools["vrlup"]?convert_variable(get_var(node.vars["vrlup"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vrlup"];var limits={};limits.down=vrldown; limits.up=vrlup;limits.camera_space=node.common_usage_names["cam_lim_vert_rot_space_type"]=="CAMERA";m_cam.hover_set_vertical_limits(cam,limits)}if(node.bools["dsl"]){var dslmin=node.bools["dslmin"]?convert_variable(get_var(node.vars["dslmin"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dslmin"];var dslmax=node.bools["dslmax"]?convert_variable(get_var(node.vars["dslmax"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dslmax"];var limits={};limits.min=Math.max(dslmin, 0);limits.max=Math.max(dslmax,0);m_cam.hover_set_distance_limits(cam,limits)}break;case m_cam.MS_EYE_CONTROLS:if(node.bools["vrl"]){var vrldown=node.bools["vrldown"]?convert_variable(get_var(node.vars["vrldown"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vrldown"];var vrlup=node.bools["vrlup"]?convert_variable(get_var(node.vars["vrlup"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["vrlup"];var limits={};limits.down=vrldown;limits.up=vrlup;limits.camera_space= node.common_usage_names["cam_lim_vert_rot_space_type"]=="CAMERA";m_cam.set_vertical_rot_limits(cam,limits)}if(node.bools["hrl"]){var hrlleft=node.bools["hrlleft"]?convert_variable(get_var(node.vars["hrlleft"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["hrlleft"];var hrlright=node.bools["hrlright"]?convert_variable(get_var(node.vars["hrlright"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["hrlright"];var limits={};limits.left=hrlleft;limits.right=hrlright;limits.camera_space= node.common_usage_names["cam_lim_hor_rot_space_type"]=="CAMERA";m_cam.set_horizontal_rot_limits(cam,limits)}break;case m_cam.MS_STATIC:break}m_trans.update_transform(cam);m_phy.sync_transform(cam)}else m_print.error("Logic script error: object is not a Camera. Node: ",node.name);thread_state.curr_node=node.slot_idx_order;break}}function move_to_handler(node,logic,thread_state,timeline,elapsed,start_time){function move_to(obj,dest){m_trans.set_tsr(obj,dest);m_trans.update_transform(obj);m_phy.sync_transform(obj)} var bools=node.bools;var is_var0=bools["id0"];var is_var1=bools["id1"];function init(node,inst,thread_state){inst.objects["id0"]=get_object(node,"id0",is_var0,logic.variables,thread_state.variables);if(!inst.objects["id0"]&&!is_var0){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}inst.objects["id1"]=get_object(node,"id1",is_var1,logic.variables,thread_state.variables);if(!inst.objects["id1"]&&!is_var1){m_print.error("Logic script error: object not found. Node: ", node.name);node.mute=true}inst.state=NPS_NOT_STARTED;inst.obj_state={dest_tsr_start:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"](),dest_tsr_end:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"](),interp_tsr_dest:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"]()}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);var obj=bools["id0"]?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.objects["id0"];if(obj.is_dynamic){__WEBPACK_IMPORTED_MODULE_20__tsr_js__["a"](obj.render.world_tsr, inst.obj_state.dest_tsr_start);var de=bools["id1"]?get_var(node.vars["id1"],logic.variables,thread_state.variables):inst.objects["id1"];__WEBPACK_IMPORTED_MODULE_20__tsr_js__["a"](de.render.world_tsr,inst.obj_state.dest_tsr_end);switch(inst.state){case NPS_NOT_STARTED:var dur=node.bools["dur"]?convert_variable(get_var(node.vars["dur"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dur"];if(dur==0){move_to(obj,inst.obj_state.dest_tsr_end);thread_state.curr_node=node.slot_idx_order; return}inst.state=NPS_PLAYING;var trans_animator=m_time.animate(0,1,dur*1E3,function(e){if(m_scs.check_active()){inst.obj_state.interp_dest=__WEBPACK_IMPORTED_MODULE_20__tsr_js__["o"](inst.obj_state.dest_tsr_start,inst.obj_state.dest_tsr_end,__WEBPACK_IMPORTED_MODULE_21__util_js__["_53"](e),inst.obj_state.interp_tsr_dest);move_to(obj,inst.obj_state.interp_tsr_dest);if(e==1)inst.state=NPS_FINISHED}});break;case NPS_PLAYING:break;case NPS_FINISHED:m_time.clear_animation(trans_animator);inst.state=NPS_NOT_STARTED; thread_state.curr_node=node.slot_idx_order;break}break}else{m_print.error("Logic script error: object '"+obj.name+"' must be dynamic. Node: ",node.name);thread_state.curr_node=node.slot_idx_order}}}function transform_object_handler(node,logic,thread_state,timeline,elapsed,start_time){function transform_obj(obj,tsr,space){if(space==NST_WORLD)m_trans.set_tsr(obj,tsr);else m_trans.set_tsr_rel(obj,tsr);m_trans.update_transform(obj);m_phy.sync_transform(obj)}var is_var=node.bools["id0"];function init(node, inst,thread_state){inst.obj=get_object(node,"id0",is_var,logic.variables,thread_state.variables);if(!inst.obj&&!is_var){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}inst.state=NPS_NOT_STARTED;inst.obj_state={space:NST_WORLD,tsr_start:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"](),tsr_end:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"](),interp_tsr:__WEBPACK_IMPORTED_MODULE_20__tsr_js__["b"]()}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst= get_node_instance(node,thread_state,init);var obj=is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.obj;switch(inst.state){case NPS_NOT_STARTED:var tr=_vec3_tmp1;tr[0]=node.bools["trx"]?convert_variable(get_var(node.vars["trx"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["trx"];tr[1]=node.bools["try"]?convert_variable(get_var(node.vars["try"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["try"];tr[2]=node.bools["trz"]?convert_variable(get_var(node.vars["trz"], logic.variables,thread_state.variables),NT_NUMBER):node.floats["trz"];var eul_rot=_vec3_tmp;eul_rot[0]=node.bools["rox"]?convert_variable(get_var(node.vars["rox"],logic.variables,thread_state.variables),NT_NUMBER)*Math.PI/180:node.floats["rox"];eul_rot[1]=node.bools["roy"]?convert_variable(get_var(node.vars["roy"],logic.variables,thread_state.variables),NT_NUMBER)*Math.PI/180:node.floats["roy"];eul_rot[2]=node.bools["roz"]?convert_variable(get_var(node.vars["roz"],logic.variables,thread_state.variables), NT_NUMBER)*Math.PI/180:node.floats["roz"];var sc=node.bools["sc"]?get_var(node.vars["sc"],logic.variables,thread_state.variables):node.floats["sc"];__WEBPACK_IMPORTED_MODULE_21__util_js__["Y"](eul_rot,_vec4_tmp);__WEBPACK_IMPORTED_MODULE_20__tsr_js__["t"](tr,sc,_vec4_tmp,inst.obj_state.tsr_end);inst.obj_state.space=node.common_usage_names["space_type"];switch(inst.obj_state.space){case NST_WORLD:m_trans.get_tsr(obj,inst.obj_state.tsr_start);break;case NST_PARENT:m_trans.get_tsr_rel(obj,inst.obj_state.tsr_start); break;case NST_LOCAL:m_trans.get_tsr_rel(obj,inst.obj_state.tsr_start);__WEBPACK_IMPORTED_MODULE_20__tsr_js__["q"](inst.obj_state.tsr_start,inst.obj_state.tsr_end,inst.obj_state.tsr_end);break}var dur=node.bools["dur"]?convert_variable(get_var(node.vars["dur"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["dur"];if(dur==0){transform_obj(obj,inst.obj_state.tsr_end,inst.obj_state.space);thread_state.curr_node=node.slot_idx_order;return}inst.state=NPS_PLAYING;var trans_animator=m_time.animate(0, 1,dur*1E3,function(e){if(m_scs.check_active()){__WEBPACK_IMPORTED_MODULE_20__tsr_js__["o"](inst.obj_state.tsr_start,inst.obj_state.tsr_end,__WEBPACK_IMPORTED_MODULE_21__util_js__["_53"](e),inst.obj_state.interp_tsr);transform_obj(obj,inst.obj_state.interp_tsr,inst.obj_state.space);if(e==1)inst.state=NPS_FINISHED}});break;case NPS_PLAYING:break;case NPS_FINISHED:m_time.clear_animation(trans_animator);inst.state=NPS_NOT_STARTED;thread_state.curr_node=node.slot_idx_order;break}break}}function speaker_play_handler(node, logic,thread_state,timeline,elapsed,start_time){var is_var=node.bools["id0"];function init(node,inst,thread_state){inst.obj=get_object(node,"id0",is_var,logic.variables,thread_state.variables);if(!inst.obj&&!is_var){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}}switch(logic.state){case INITIALIZATION:if(node.bools["not_wait"]==undefined)node.bools["not_wait"]=true;break;case RUNNING:var inst=get_node_instance(node,thread_state,init);inst.obj=is_var?get_var(node.vars["id0"], logic.variables,thread_state.variables):inst.obj;if(!m_sfx.is_playing(inst.obj))if(inst.state==NPS_PLAYING)inst.state=NPS_FINISHED;switch(inst.state){case NPS_NOT_STARTED:for(var k in logic.logic_threads){var curr_node=logic.logic_threads[k].thread_state.curr_node;if(curr_node!=-1){var node2=logic.logic_threads[k].nodes[curr_node];if(node2.type=="SPEAKER_PLAY"&&node2!=node&&inst.state==NPS_PLAYING&&node2.obj==node.obj)node2.state=NPS_FINISHED}}if(!node.bools["not_wait"])thread_state.in_progress=true; m_sfx.play_def(inst.obj);inst.state=NPS_PLAYING;break;case NPS_PLAYING:if(node.bools["not_wait"]){thread_state.curr_node=node.slot_idx_order;inst.state=NPS_NOT_STARTED}break;case NPS_FINISHED:if(!node.bools["not_wait"])thread_state.in_progress=false;thread_state.curr_node=node.slot_idx_order;inst.state=NPS_NOT_STARTED;break;default:m_assert.panic("Unknown state of "+node.name);inst.state=NPS_NOT_STARTED;break}}}function speaker_stop_handler(node,logic,thread_state,timeline,elapsed,start_time){var is_var= node.bools["id0"];function init(node,inst,thread_state){inst.obj=get_object(node,"id0",is_var,logic.variables,thread_state.variables);if(!inst.obj&&!is_var){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);var obj=is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.obj;m_sfx.stop(obj);thread_state.curr_node=node.slot_idx_order; break}}function set_shader_node_param_handler(node,logic,thread_state,timeline,elapsed,start_time){function init(node,inst,thread_state){if(node.objects_paths["id0"]){inst.objects["id0"]=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id0"],0);if(!node.objects_paths["id0"]){m_print.error("Logic script error: object not found. Node: ",node.name);node.mute=true}node.nodes_paths["id0"].unshift(node.materials_names["id0"])}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst= get_node_instance(node,thread_state,init);var obj=inst.objects["id0"];var name_list=node.nodes_paths["id0"];var mat_name=name_list[0];var node_name=m_batch.name_list_to_node_name(name_list,1);var batch_main=m_batch.find_batch_material(obj,mat_name,"MAIN");thread_state.curr_node=node.slot_idx_order;if(batch_main===null){m_print.error('Material "'+mat_name+'" was not found in the object "'+obj.name+'".');return}if(node.shader_nd_type=="ShaderNodeRGB")m_obj.set_nodemat_rgb(obj,mat_name,node_name,node.bools["id0"]? convert_variable(get_var(node.vars["id0"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["id0"],node.bools["id1"]?convert_variable(get_var(node.vars["id1"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["id1"],node.bools["id2"]?convert_variable(get_var(node.vars["id2"],logic.variables,thread_state.variables),NT_NUMBER):node.floats["id2"]);if(node.shader_nd_type=="ShaderNodeValue")m_obj.set_nodemat_value(obj,mat_name,node_name,node.bools["id0"]?convert_variable(get_var(node.vars["id0"], logic.variables,thread_state.variables),NT_NUMBER):node.floats["id0"]);break}}function math_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:var val1=node.vars["id0"][1]==-1?node.floats["inp1"]:convert_variable(get_var(node.vars["id0"],logic.variables,thread_state.variables),NT_NUMBER);var val2=node.vars["id1"][1]==-1?node.floats["inp2"]:convert_variable(get_var(node.vars["id1"],logic.variables,thread_state.variables),NT_NUMBER);var result=0;switch(node.op){case NMO_ADD:result= val1+val2;break;case NMO_MUL:result=val1*val2;break;case NMO_SUB:result=val1-val2;break;case NMO_DIV:if(val2==0)m_assert.panic("Division by zero in Logic script");result=val1/val2;break;case NMO_RAND:result=Math.random()*(val2-val1)+val1;break;case NMO_SIN:result=Math.sin(val1);break;case NMO_COS:result=Math.cos(val1);break;case NMO_TAN:result=Math.tan(val1);break;case NMO_ARCSIN:result=Math.asin(val1);break;case NMO_ARCCOS:result=Math.acos(val1);break;case NMO_ARCTAN:result=Math.atan(val1);break; case NMO_LOG:result=Math.log(val1);break;case NMO_MIN:result=Math.min(val1,val2);break;case NMO_MAX:result=Math.max(val1,val2);break;case NMO_ROUND:result=Math.round(val1);break;case NMO_MOD:result=val1%val2;break;case NMO_ABS:result=Math.abs(val1);break}set_var(node.vars["vd"],logic.variables,thread_state.variables,result);thread_state.curr_node=node.slot_idx_order;break}}function conditional_jump_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:var arg_type= node.common_usage_names["variable_type"];var arg_arr=get_const_value_storage(node,arg_type);var cond_result=false;if(arg_type==NT_OBJECT){var val1=node.bools["id0"]?get_var(node.vars["id0"],logic.variables,thread_state.variables):m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id0"],0);var val2=node.bools["id1"]?get_var(node.vars["id1"],logic.variables,thread_state.variables):m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths["id1"],0);switch(node.common_usage_names["condition"]){case NC_EQUAL:if(val1== val2)cond_result=true;break;case NC_NOTEQUAL:if(val1!=val2)cond_result=true;break}}else{var val1=node.vars["id0"][1]==-1?arg_arr["inp1"]:convert_variable(get_var(node.vars["id0"],logic.variables,thread_state.variables),arg_type);var val2=node.vars["id1"][1]==-1?arg_arr["inp2"]:convert_variable(get_var(node.vars["id1"],logic.variables,thread_state.variables),arg_type);switch(node.common_usage_names["condition"]){case NC_EQUAL:if(val1==val2)cond_result=true;break;case NC_NOTEQUAL:if(val1!=val2)cond_result= true;break;case NC_LESS:if(val1val2)cond_result=true;break;case NC_LEQUAL:if(val1<=val2)cond_result=true;break;case NC_GEQUAL:if(val1>=val2)cond_result=true;break}}if(cond_result)thread_state.curr_node=node.slot_idx_jump;else thread_state.curr_node=node.slot_idx_order;break}}function regstore_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:if(node.bools["vs"])var value=get_var(node.vars["vs"],logic.variables, thread_state.variables);else{var var_type=node.common_usage_names["variable_type"];var arg_arr=get_const_value_storage(node,var_type);if(var_type==NT_OBJECT)var value=m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,arg_arr["id0"],0);else var value=arg_arr["inp1"]}set_var([node.bools["new"]&&node.bools["gl"]||node.vars["vd"][0],node.vars["vd"][1]],logic.variables,thread_state.variables,value);thread_state.curr_node=node.slot_idx_order;break}}function get_object(node,id,is_var,global_vars,local_vars){return is_var? get_var(node.vars[id],global_vars,local_vars):m_obj.get_object(m_obj.GET_OBJECT_BY_DUPLI_NAME_LIST,node.objects_paths[id],0)}function get_thread_nodes(thread){var callstack=thread.thread_state.callstack;if(callstack.length<=1)var nodes=thread.nodes;else var nodes=callstack[callstack.length-1].logic_func.func.nodes;return nodes}function play_anim_handler(node,logic,thread_state,timeline,elapsed,start_time){function get_slot_by_anim_name(obj,anim_name){var anim_slot=-1;for(var i=0;i<8;i++){var anim_slot_obj= obj.anim_slots[i];if(anim_slot_obj&&anim_slot_obj.animation_name)if(m_anim.strip_baked_suffix(anim_slot_obj.animation_name)==m_anim.strip_baked_suffix(anim_name))if(anim_slot!=-1)anim_slot=i;else return-1}return anim_slot}var is_var=node.bools["id0"];var is_env=node.bools["env"];function init(node,inst,thread_state){inst.obj=is_env?get_world(node):get_object(node,"id0",is_var,logic.variables,thread_state.variables);if(!inst.obj&&!is_var){m_print.error("Logic script error: object not found. Node: ", node.name);node.mute=true}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);if(!is_env)inst.obj=is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.obj;if(inst.state==NPS_PLAYING&&!m_anim.is_play(inst.obj,inst.anim_slot))inst.state=NPS_FINISHED;switch(inst.state){case NPS_NOT_STARTED:for(var k in logic.logic_threads){var thread=logic.logic_threads[k];var script=get_thread_nodes(thread);var curr_node=thread.thread_state.curr_node; if(curr_node!=-1){var node2=script[curr_node];var inst2=get_node_instance(node2,thread.thread_state);if(node2.type=="PLAY_ANIM"&&node2!=node&&inst2.state==NPS_PLAYING&&inst2.obj==inst.obj)inst2.state=NPS_FINISHED}}var behavior=node.common_usage_names["param_anim_behavior"];if(node.anim_name==""){m_anim.apply_def(inst.obj);m_anim.set_behavior(inst.obj,behavior,m_anim.SLOT_ALL)}else{var anim_slot=get_slot_by_anim_name(inst.obj,node.anim_name);if(anim_slot==-1){inst.anim_slot=m_anim.slot_by_anim_type(inst.obj, node.anim_name);m_anim.apply(inst.obj,null,node.anim_name,inst.anim_slot)}else inst.anim_slot=anim_slot;m_anim.set_behavior(inst.obj,behavior,inst.anim_slot)}if(!node.bools["not_wait"])thread_state.in_progress=true;m_anim.play(inst.obj,null,inst.anim_slot);inst.state=NPS_PLAYING;if(node.bools["not_wait"]){thread_state.curr_node=node.slot_idx_order;inst.state=NPS_NOT_STARTED}break;case NPS_PLAYING:break;case NPS_FINISHED:if(!node.bools["not_wait"])thread_state.in_progress=false;thread_state.curr_node= node.slot_idx_order;inst.state=NPS_NOT_STARTED;break;default:m_assert.panic("Unknown state of "+node.name);inst.state=NPS_NOT_STARTED;break}break}}function stop_anim_handler(node,logic,thread_state,timeline,elapsed,start_time){var is_var=node.bools["id0"];var is_env=node.bools["env"];function init(node,inst,thread_state){inst.obj=is_env?get_world(node):get_object(node,"id0",is_var,logic.variables,thread_state.variables);if(!inst.obj&&!is_var){m_print.error("Logic script error: object not found. Node: ", node.name);node.mute=true}}switch(logic.state){case INITIALIZATION:break;case RUNNING:var inst=get_node_instance(node,thread_state,init);inst.obj=is_var?get_var(node.vars["id0"],logic.variables,thread_state.variables):inst.obj;m_anim.stop(inst.obj,m_anim.SLOT_ALL);if(node.bools["rst"])m_anim.set_first_frame(inst.obj,m_anim.SLOT_ALL);thread_state.curr_node=node.slot_idx_order;break}}function string_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:var op1= node.bools["id0"]?convert_variable(get_var(node.vars["id0"],logic.variables,thread_state.variables),NT_STRING):node.strings["id0"];var op2=node.bools["id1"]?convert_variable(get_var(node.vars["id1"],logic.variables,thread_state.variables),NT_STRING):node.strings["id1"];var result=0;switch(node.common_usage_names["string_operation"]){case NSO_JOIN:result=op1+op2;break;case NSO_FIND:result=op1.indexOf(op2);break;case NSO_REPLACE:var op3=node.bools["id2"]?convert_variable(get_var(node.vars["id2"],logic.variables, thread_state.variables),NT_STRING):node.strings["id2"];result=op1.replace(op2,op3);break;case NSO_SPLIT:var vars=node.vars;result=op1.substring(0,op1.indexOf(op2));set_var(vars["dst1"],logic.variables,thread_state.variables,op1.substring(op1.indexOf(op2)+1,op1.length));if(get_var(vars["dst"],logic.variables,thread_state.variables)==""){result=get_var(vars["dst1"],logic.variables,thread_state.variables);set_var(vars["dst1"],logic.variables,thread_state.variables,"")}break;case NSO_COMPARE:switch(node.common_usage_names["condition"]){case NC_EQUAL:result= op1==op2?1:0;break;case NC_NOTEQUAL:result=op1!=op2?1:0;break;case NC_LESS:result=op1op2?1:0;break;case NC_LEQUAL:result=op1<=op2?1:0;break;case NC_GEQUAL:result=op1>=op2?1:0;break}break}set_var(node.vars["dst"],logic.variables,thread_state.variables,result);thread_state.curr_node=node.slot_idx_order;break}}function get_timeline_handler(node,logic,thread_state,timeline,elapsed,start_time){switch(logic.state){case RUNNING:var curr_frame=node.bools["nla"]?convert_variable(m_nla.get_frame(timeline), NT_NUMBER):convert_variable(m_time.get_frame(timeline),NT_NUMBER);set_var(node.vars["vd"],logic.variables,thread_state.variables,curr_frame);thread_state.curr_node=node.slot_idx_order;break}}function json_handler(node,logic,thread_state,timeline,elapsed,start_time){function get_json_deep_values(src_json,parse_paths,parse_vars,dest_vars){for(var i=0;i=0)var node=script[thread.thread_state.curr_node];else if(thread.thread_state.callstack.length>1){var stack_frame=thread.thread_state.callstack.pop();var caller_node= stack_frame.caller_node;var upper_stack_frame=callstack[callstack.length-1];if(upper_stack_frame.logic_func)var upper_script=upper_stack_frame.logic_func.func.nodes;else var upper_script=thread.nodes;thread.thread_state.curr_node=caller_node.slot_idx_order;var node=upper_script[caller_node.slot_idx_order];var vars=thread.thread_state.variables;thread.thread_state.variables=upper_stack_frame.variables;for(var v in thread.thread_state.variables_references){var vname=thread.thread_state.variables_references[v]; if(thread.thread_state.variables[v]===undefined)logic.variables[v]=vars[vname];else thread.thread_state.variables[v]=vars[vname]}process_logic_thread(thread,logic,timeline,elapsed,start_time,true);return}else return;if(node.processed)return;if(!node.mute){node.process_node(node,logic,thread.thread_state,timeline,elapsed,start_time);node.processed=true;if(thread.thread_state.update_script_cycle)return}else if(node.type=="ENTRYPOINT")return;else{thread.thread_state.curr_node=node.slot_idx_order;node.processed= true;continue}}callstack.splice(0,callstack.length)}function prepare_logic(scene,logic){var bpy_logic_threads=scene["b4w_logic_nodes"];var logic_threads=logic.logic_threads;var logic_functions=logic.logic_functions;logic.state=INITIALIZATION;var threads_count=-1;for(var k=0;k_last_abs_time)delta-=_resume_time-Math.max(_pause_time,_last_abs_time);m_time.set_delta(delta);timeline+=delta;m_time.set_timeline(timeline);m_debug_telemetry.update();m_assets.update();m_data.update();frame(timeline,delta);_fps_counter(delta)}_last_abs_time=abstime;if(vr_display&&vr_display.isPresenting)vr_display.submitFrame()}function frame(timeline,delta){if(!m_data.is_primary_loaded())return; m_hud.reset();m_trans.update(delta);m_lnodes.update(timeline,delta);m_nla.update(timeline,delta);m_sfx.update(timeline,delta);if(delta)m_anim.update(delta);if(!m_data.is_primary_loaded())return;m_phy.update(timeline,delta);if(!m_data.is_primary_loaded())return;m_input.update(timeline);m_ctl.update(timeline,delta);if(!m_data.is_primary_loaded())return;m_anchors.update(false);m_obj.update(timeline,delta);m_particles.update();_render_callback(delta,timeline);if(!m_data.is_primary_loaded())return;m_scenes.update(timeline, delta);m_anchors.update_visibility();m_main.frame()}function init_fps_counter(){var fps_avg=60;var fps_frame_counter=0;var interval=cfg_def.fps_measurement_interval;var interval_cb=cfg_def.fps_callback_interval;var fps_counter=function(delta){if(delta<1/cfg_def.max_fps)return;fps_avg=__WEBPACK_IMPORTED_MODULE_29__intern_util_js__["_51"](1/delta,fps_avg,delta,interval);var phy_fps_avg=m_phy.get_fps();fps_frame_counter=(fps_frame_counter+1)%interval_cb;if(fps_frame_counter==0)_fps_callback(Math.round(fps_avg), phy_fps_avg)};return fps_counter}exports.reset=function(){m_data.unload(0);m_context.reset();m_data.reset();m_ext.reset();m_render.reset();m_geom.reset();m_textures.reset_mod();m_shaders.reset();m_debug_check.reset();m_cont.reset();m_data.reset();m_cont.reset();m_time.reset();m_sfx.reset();_last_abs_time=0;_pause_time=0;_resume_time=0;_fps_callback=function(){};_fps_counter=function(){};_render_callback=function(){};_loop_cb.length=0;_gl=null};exports.canvas_data_url=function(callback,format,quality, auto_revoke){m_main.canvas_data_url(callback,format,quality,auto_revoke)};exports.detect_mobile=function(){return m_compat.detect_mobile()};exports.append_loop_cb=function(callback){for(var i=0;i<_loop_cb.length;i++)if(_loop_cb[i]==callback)return;_loop_cb.push(callback)};exports.remove_loop_cb=function(callback){for(var i=0;i<_loop_cb.length;i++)if(_loop_cb[i]==callback){_loop_cb.splice(i,1);break}};exports.get_renderer_info=function(){var rinfo=m_ext.get_renderer_info();if(!rinfo)return null;var vendor= _gl.getParameter(rinfo.UNMASKED_VENDOR_WEBGL);var renderer=_gl.getParameter(rinfo.UNMASKED_RENDERER_WEBGL);return{"vendor":vendor,"renderer":renderer}}}var main_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("main",Main);__webpack_exports__["a"]=main_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__config_js__= __webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_3__debug_nodegraph_js__=__webpack_require__(86);var __WEBPACK_IMPORTED_MODULE_4__graph_js__=__webpack_require__(29);var __WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_mat3_js__=__webpack_require__(27);var __WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_mat4_js__=__webpack_require__(21);var __WEBPACK_IMPORTED_MODULE_7__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_8__shaders_js__=__webpack_require__(34);var __WEBPACK_IMPORTED_MODULE_9__util_js__= __webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_11__textures_js__=__webpack_require__(17);function Int_nodemat(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_2__config_js__["a"])(ns);var m_debug_nodegraph=Object(__WEBPACK_IMPORTED_MODULE_3__debug_nodegraph_js__["a"])(ns);var m_graph=Object(__WEBPACK_IMPORTED_MODULE_4__graph_js__["a"])(ns); var m_print=Object(__WEBPACK_IMPORTED_MODULE_7__print_js__["a"])(ns);var m_shaders=Object(__WEBPACK_IMPORTED_MODULE_8__shaders_js__["a"])(ns);var m_tex=Object(__WEBPACK_IMPORTED_MODULE_11__textures_js__["a"])(ns);var _shader_ident_counters={};var _composed_ngraph_proxies={};var _composed_stack_graphs={};var _lamp_indexes={};var _lamp_index=0;var cfg_def=m_cfg.defaults;var DEBUG_NODE_GRAPHS=false;var VECTOR_VALUE=0;var SCALAR_VALUE=1;var CURVE_POINT_EPS=.01;var VT_POINT=0;var VT_VECTOR=1;var VT_NORMAL= 2;var VT_WORLD_TO_WORLD=0;var VT_WORLD_TO_OBJECT=1;var VT_WORLD_TO_CAMERA=2;var VT_OBJECT_TO_WORLD=3;var VT_OBJECT_TO_OBJECT=4;var VT_OBJECT_TO_CAMERA=5;var VT_CAMERA_TO_WORLD=6;var VT_CAMERA_TO_OBJECT=7;var VT_CAMERA_TO_CAMERA=8;exports.VT_WORLD_TO_WORLD=VT_WORLD_TO_WORLD;exports.VT_WORLD_TO_OBJECT=VT_WORLD_TO_OBJECT;exports.VT_WORLD_TO_CAMERA=VT_WORLD_TO_CAMERA;exports.VT_OBJECT_TO_WORLD=VT_OBJECT_TO_WORLD;exports.VT_OBJECT_TO_OBJECT=VT_OBJECT_TO_OBJECT;exports.VT_OBJECT_TO_CAMERA=VT_OBJECT_TO_CAMERA; exports.VT_CAMERA_TO_WORLD=VT_CAMERA_TO_WORLD;exports.VT_CAMERA_TO_OBJECT=VT_CAMERA_TO_OBJECT;exports.VT_CAMERA_TO_CAMERA=VT_CAMERA_TO_CAMERA;var NM_TANGENT=0;var NM_OBJECT=1;var NM_WORLD=2;var NM_BLENDER_OBJECT=3;var NM_BLENDER_WORLD=4;exports.NM_TANGENT=NM_TANGENT;exports.NM_OBJECT=NM_OBJECT;exports.NM_WORLD=NM_WORLD;exports.NM_BLENDER_OBJECT=NM_BLENDER_OBJECT;exports.NM_BLENDER_WORLD=NM_BLENDER_WORLD;var OMI_SURFACE=0;var OMI_DISPLACEMENT=2;exports.get_ngraph_proxy_cached=function(ngraph_id){return _composed_ngraph_proxies[ngraph_id]}; exports.cleanup_ngraph_proxy=function(ngraph_id){delete _composed_ngraph_proxies[ngraph_id]};exports.compose_ngraph_proxy=compose_ngraph_proxy;function compose_ngraph_proxy(node_tree,ntree_graph_id,is_node_group,mat_user_name,mat_name,shader_type,active_layer_names,lights){var ngraph_proxy=compose_ngraph_proxy_rec(node_tree,ntree_graph_id,is_node_group,shader_type,active_layer_names,lights);if(DEBUG_NODE_GRAPHS)print_node_graph(ngraph_proxy.graph,mat_user_name,mat_name);return ngraph_proxy}function compose_ngraph_proxy_rec(node_tree, ntree_graph_id,is_node_group,shader_type,active_layer_names,lights){if(ntree_graph_id in _composed_ngraph_proxies)return _composed_ngraph_proxies[ntree_graph_id];var ngraph_proxy={graph:null,id:ntree_graph_id,cleanup_on_unload:true};if(!is_node_group){_lamp_indexes={};_lamp_index=0}if(shader_type!="SHADOW"&&shader_type!="COLOR_ID"){var graph=m_graph.create();var bpy_nodes=node_tree["nodes"];for(var i=0;i=0?edges_quantity[id_place]:0;var rem_edge=m_graph.get_edge_attr(graph,id,output_id,edge_num);if(rem_edge){var out_soc_num=rem_edge[1];var def_value=attr.inputs[0].default_value;var out_node=m_graph.get_node_attr(graph,output_id);var input= out_node.inputs[out_soc_num];switch(typeof def_value){case "number":if(typeof input.default_value=="object"){var vec=input.default_value;for(var k=0;k2){var bpy_node=create_uv_merged_bpy_node(uv_name);var node_id=append_nmat_node(graph,bpy_node,0,shader_type,null,[]);var node=m_graph.get_node_attr(graph,node_id);for(var i=0;i=3)continue;if(!can_merge_nodes(attr_current,unode.attr))continue;if(ascs[id_current].indexOf(unode.id)>-1||ascs[unode.id].indexOf(id_current)>-1)continue;var is_reachable=false;for(var k=0;k-1||ascs[merged_id].indexOf(id_current)>-1){is_reachable=true;break}}if(is_reachable)continue;var removed_edges_in=[];var in_num=m_graph.in_edge_count(graph,id_current);var edges_in_counter={};for(k=0;koutput_num)return true}return false}function texture_node_type(bpy_node){if(!bpy_node["texture"]||!bpy_node["texture"]._render)return"TEXTURE_EMPTY";var outputs=bpy_node["outputs"];var node_color=false;var node_normal=false;var node_value=false;for(var i=0;i=0&&(input.identifier=="Color1"||input.identifier=="Color2"||input.identifier=="Fac")||mat_node.type.indexOf("MATH_")>=0&&(input.identifier=="Value"||input.identifier=="Value_001"||input.identifier=="Value.001")|| mat_node.type.indexOf("VECT_MATH_")>=0&&(input.identifier=="Vector_001"||input.identifier=="Vector.001")||mat_node.type.indexOf("LIGHTING_APPLY")>=0||mat_node.type.indexOf("MATERIAL_END")>=0||mat_node.type.indexOf("MATERIAL_BEGIN")>=0)input_val=replace_zero_unity_vals(input_val);finput_values.push(input_val)}}for(var i=0;iend-CURVE_POINT_EPS&&curve[1][1]>end-CURVE_POINT_EPS)return false;return true}}var int_nodemat_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__nodemat", Int_nodemat);__webpack_exports__["a"]=int_nodemat_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_2__util_js__=__webpack_require__(2);function DebugTelemetry(ns,exports){var m_print=Object(__WEBPACK_IMPORTED_MODULE_1__print_js__["a"])(ns);var _telemetry_messages=[];var _exec_counters={};var COLORS=["color: #3366FF", "color: #CC33FF","color: #FF3366","color: #33FF66","color: #FFCC33"];exports.fbmsg=function(){var msg=[performance.now()];for(var i=0;i3)id+="_"+String(j-2);if(!msg_by_id[id])msg_by_id[id]=id+"\n";msg_by_id[id]+=String(time)+" "+msg[j]+"\n"}}var plot_str="";for(var id in msg_by_id)plot_str+=msg_by_id[id]+"\n\n";m_print.log(plot_str);_telemetry_messages.splice(0)};exports.exec_count=function(counter){if(counter in _exec_counters)_exec_counters[counter]+=1;else _exec_counters[counter]=1};exports.update=function(){for(var i in _exec_counters){m_print.log(i, _exec_counters[i]);_exec_counters[i]=0}}}var debug_telemetry_fact=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__debug_telemetry",DebugTelemetry);__webpack_exports__["a"]=debug_telemetry_fact},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_3__geometry_js__= __webpack_require__(20);var __WEBPACK_IMPORTED_MODULE_4__tbn_js__=__webpack_require__(36);var __WEBPACK_IMPORTED_MODULE_5__util_js__=__webpack_require__(2);function Int_primitives(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_2__config_js__["a"])(ns);var m_geom=Object(__WEBPACK_IMPORTED_MODULE_3__geometry_js__["a"])(ns);var cfg_def=m_cfg.defaults;exports.generate_line=function(){var submesh=m_geom.init_submesh("LINE"); var va_frame=m_geom.create_empty_va_frame();va_frame["a_position"]=new Float32Array(3);va_frame["a_direction"]=new Float32Array(3);submesh.va_frames[0]=va_frame;submesh.indices=new Uint32Array(1);submesh.base_length=1;return submesh};exports.generate_plane=function(x_size,y_size){var grid_submesh=generate_grid(2,2,x_size,y_size);grid_submesh.name="PLANE";return grid_submesh};exports.generate_grid=generate_grid;function generate_grid(x_subdiv,y_subdiv,x_size,y_size){var indices=[];var positions=[]; var texcoords=[];var tbn_count=x_subdiv*y_subdiv;var delta_x=2*x_size/(x_subdiv-1);var delta_y=2*y_size/(y_subdiv-1);for(var i=0;i-prev_x&&x-prev_y&&y1){var idx1=idx0-1;var idx2=casc_indices[i-1][j+1];var idx3=idx2-1;indices.push(idx3,idx1,idx0);indices.push(idx2,idx3,idx0)}else{var idx2=casc_indices[i-1][j+1];var idx3=idx2-1;indices.push(idx2,idx3,idx0)}else{if(!is_merged_vertex(i, j)){var idx1=idx0-1;var idx2=casc_indices[i-1][j];indices.push(idx2,idx1,idx0)}}else if(i==x_subdiv-1){if(!is_merged_vertex(i,j))if(j==y_subdiv-1){var idx1=idx0-1;var idx2=casc_indices[i-1][j-1];var idx3=casc_indices[i-2][j];indices.push(idx2,idx1,idx0);indices.push(idx3,idx2,idx0)}else{var idx1=idx0-1;var idx2=casc_indices[i-1][j];var idx3=idx2-1;var idx4=idx2+1;indices.push(idx3,idx1,idx0);indices.push(idx2,idx3,idx0);indices.push(idx4,idx2,idx0);if(j==2){idx4=casc_indices[i-2][j-2];indices.push(idx3, idx4,idx1)}}}else if(j==1)if(!is_merged_vertex(i,j-1)){var idx1=indices_in_row[j-1];var idx2=casc_indices[i-1][j];var idx3=casc_indices[i-2][j-1];indices.push(idx2,idx1,idx0);indices.push(idx2,idx3,idx1)}else{var idx1=casc_indices[i-1][j];var idx2=casc_indices[i-1][j-1];indices.push(idx1,idx2,idx0)}else if(j==y_subdiv-1){if(!is_merged_vertex(i,j)){var idx1=indices_in_row[j-1];var idx2=casc_indices[i-1][j-1];var idx3=casc_indices[i-2][j];indices.push(idx2,idx1,idx0);indices.push(idx3,idx2,idx0)}}else if(casc_indices[i- 1][j]!=-1&&casc_indices[i-1][j-1]!=-1&&indices_in_row[j-1]!=-1){var idx1=indices_in_row[j-1];var idx2=casc_indices[i-1][j];var idx3=casc_indices[i-1][j-1];indices.push(idx2,idx1,idx0);indices.push(idx2,idx3,idx1);if(j==y_subdiv-2&&is_merged_vertex(i,j+1)){var idx4=casc_indices[i-1][j+1];indices.push(idx4,idx2,idx0)}}else if(j==y_subdiv-2&&is_merged_vertex(i,j+1)){var idx2=casc_indices[i-1][j];var idx4=casc_indices[i-1][j+1];indices.push(idx4,idx2,idx0)}}else{indices_in_row.push(-1);all_skipped++}}casc_indices.push(indices_in_row)}prev_utmost_verts= cur_utmost_verts;prev_x=x_size;prev_y=y_size;x_size*=2;y_size*=2}var required_mesh_size=2E4;if(prev_x=0;i--)stage_indices.splice(stages_to_remove[i],1);return next_indices}function update_stages_queue(thread){var result_indices=[];var prev_indices=thread.stages_queue;var new_added=false;do{var next_indices=propagate_stages(thread,prev_indices);result_indices.push.apply(result_indices,prev_indices);if(next_indices.length>0)new_added=true;prev_indices=next_indices}while(next_indices.length>0);var priority_stage_sort=function(a,b){var stage_a=m_graph.get_node_attr(thread.stage_graph, a);var stage_b=m_graph.get_node_attr(thread.stage_graph,b);var result=stage_b.priority-stage_a.priority;if(result==0)result=stage_a.background_loading-stage_b.background_loading;return result};if(new_added)result_indices.sort(priority_stage_sort);thread.stages_queue=result_indices;return thread.stages_queue.length}function process_stage(thread,stage,bpy_data){if(stage.skip){stage.is_finished=true;if(cfg_def.debug_loading)m_print.log("%cTHREAD "+thread.id+": SKIP STAGE "+stage.name,DEBUG_COLOR);stage_finish_cb(thread, stage);return false}if(cfg_def.debug_loading&&stage.status==THREAD_STAGE_BEFORE){var percents=get_load_percents(thread);var message="LOADING START "+stage.name;var ms=Math.round(performance.now()-thread.time_load_start);m_print.log("%cTHREAD "+thread.id+": "+percents+"% "+message+" "+ms+"ms ",DEBUG_COLOR)}if(!stage.cb_before&&!stage.cb_loop&&!stage.cb_after){stage_finish_cb(thread,stage);return false}if(stage.status==THREAD_STAGE_BEFORE){stage.status++;if(stage.cb_before){stage.cb_before(bpy_data, thread,stage,stage.cb_param,stage_finish_cb,stage_part_finish_cb);return true}}if(stage.status==THREAD_STAGE_LOOP)if(stage.cb_loop){stage.cb_loop(bpy_data,thread,stage,stage.cb_param,stage_finish_cb,stage_part_finish_cb);return true}else stage.status++;if(stage.status==THREAD_STAGE_AFTER){stage.status++;if(stage.cb_after){stage.cb_after(bpy_data,thread,stage,stage.cb_param,stage_finish_cb,stage_part_finish_cb);return true}}return false}function get_load_percents(thread){if(thread.stages_size_total== 0)return 100;var loaded=0;m_graph.traverse(thread.stage_graph,function(id,attr){if(stage_need_calc(thread,attr))loaded+=attr.load_rate*attr.relative_size});return __WEBPACK_IMPORTED_MODULE_3__util_js__["_64"](loaded*100/thread.stages_size_total)}function stage_need_calc(thread,stage){return!(thread.do_not_load_resources&&stage.is_resource)}function stage_finish_cb(thread,stage){stage.is_finished=true;stage.status=THREAD_STAGE_IDLE;stage_loading_action(thread,stage,1);if(cfg_def.debug_loading){var percents= get_load_percents(thread);var message="LOADING END "+stage.name;var ms=Math.round(performance.now()-thread.time_load_start);m_print.log("%cTHREAD "+thread.id+": "+percents+"% "+message+" "+ms+"ms ",DEBUG_COLOR)}}exports.stage_part_finish_cb=stage_part_finish_cb;function stage_part_finish_cb(thread,stage,rate){if(rate<1)stage_loading_action(thread,stage,rate);else stage.status++}function stage_loading_action(thread,stage,rate){var scheduler=get_scheduler();if(stage.cb_before||stage.cb_loop||stage.cb_after){stage.load_rate= rate;var percents=get_load_percents(thread);if(thread.curr_percents!=percents||rate==1){thread.stageload_cb(percents,performance.now()-thread.time_load_start,thread.id);thread.curr_percents=percents;scheduler.make_idle_iteration=true}}}exports.skip_stage_by_name=function(thread,name){var stage=get_stage_by_name(thread,name);if(stage!==null)skip_stage(stage)};function get_stage_by_name(thread,name){var stage=null;m_graph.traverse(thread.stage_graph,function(id,attr){if(attr.name==name){stage=attr; return 1}});return stage}function skip_stage(stage){stage.skip=true}function release_thread(thread){thread.stageload_cb=null;thread.complete_load_cb=null;if(!cfg_def.debug_loading)thread.stage_graph=null;thread.stages_queue=null}exports.is_finished=is_finished;function is_finished(){var scheduler=get_scheduler();return scheduler.active_threads==0}exports.thread_is_finished=thread_is_finished;function thread_is_finished(thread){return thread&&(thread.status==THREAD_FINISHED||thread.status==THREAD_ABORTED)} exports.is_primary_loaded=function(data_id){var scheduler=get_scheduler();if(!scheduler)return false;data_id=data_id|0;return scheduler.threads[data_id]&&(scheduler.threads[data_id].status==THREAD_FINISHED||scheduler.threads[data_id].status==THREAD_FINISHED_NO_RESOURCES)};exports.graph_to_dot=function(data_id){if(!cfg_def.debug_loading){m_print.error("Debug mode isn't enabled. Can not retrieve the graph.");return}var scheduler=get_scheduler();if(scheduler&&scheduler.threads[data_id]&&scheduler.threads[data_id].stage_graph)return m_graph.debug_dot(scheduler.threads[data_id].stage_graph, function(node,attr){if(attr.skip)return"SKIPPED\n("+attr.name+")";else{var node_label=attr.name+"\n";var props=[];props.push(attr.priority==exports.ASYNC_PRIORITY?"ASYNC":"SYNC");if(attr.background_loading)props.push("BKG");if(attr.is_resource)props.push("RES");return node_label+props.join(" | ")}},null);else return null};exports.cleanup=function(){set_scheduler(null)}}var int_loader_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__loader",Int_loader);__webpack_exports__["a"]= int_loader_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);function Context(ns,exports){var _gl=null;exports.setup=function(gl){_gl=gl};exports.get_gl=function(){return _gl};exports.reset=function(){_gl=null}}var context_fact=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__context",Context);__webpack_exports__["a"]=context_fact},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_camera_js__=__webpack_require__(14);var __WEBPACK_IMPORTED_MODULE_2__intern_constraints_js__=__webpack_require__(59);var __WEBPACK_IMPORTED_MODULE_3__intern_obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_4__intern_physics_js__=__webpack_require__(19);var __WEBPACK_IMPORTED_MODULE_5__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_6__intern_transform_js__=__webpack_require__(13);var __WEBPACK_IMPORTED_MODULE_7__intern_util_js__= __webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__=__webpack_require__(3);function Constraints(ns,exports){var m_cam=Object(__WEBPACK_IMPORTED_MODULE_1__intern_camera_js__["a"])(ns);var m_cons=Object(__WEBPACK_IMPORTED_MODULE_2__intern_constraints_js__["a"])(ns);var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_3__intern_obj_util_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_4__intern_physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_5__intern_print_js__["a"])(ns); var m_trans=Object(__WEBPACK_IMPORTED_MODULE_6__intern_transform_js__["a"])(ns);exports.append_stiff=function(obj,target,offset,rotation_offset,scale_offset){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}offset=offset|| new Float32Array(3);scale_offset=scale_offset||1;rotation_offset=rotation_offset?rotation_offset:[0,0,0,1];if(target instanceof Array&&target.length==2)m_cons.append_stiff_bone(obj,target[0],target[1],offset,rotation_offset,scale_offset);else m_cons.append_stiff_obj(obj,target,offset,rotation_offset,scale_offset);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_semi_stiff=function(obj,target,offset,rotation_offset,clamp_left,clamp_right,clamp_up,clamp_down){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+ obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}clamp_left=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_17"](clamp_left)?clamp_left:Math.PI/2;clamp_right=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_17"](clamp_right)?clamp_right:-Math.PI/2;clamp_up=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_17"](clamp_up)? clamp_up:Math.PI/2;clamp_down=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_17"](clamp_down)?clamp_down:-Math.PI/2;offset=offset||new Float32Array(3);rotation_offset=rotation_offset?new Float32Array(rotation_offset):null;m_cons.append_semi_stiff_obj(obj,target,offset,rotation_offset,clamp_left,clamp_right,clamp_up,clamp_down);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_semi_stiff_cam=function(obj,target,offset,rotation_offset,clamp_left,clamp_right,clamp_up,clamp_down){m_print.error_deprecated("append_semi_stiff_cam", "append_semi_stiff");if(!m_cam.is_eye_camera(obj)){m_print.error("append_semi_stiff_cam(): wrong object type, only EYE"+" camera objects can be parented.");return}exports.append_semi_stiff(obj,target,offset,rotation_offset,clamp_left,clamp_right,clamp_up,clamp_down)};exports.append_semi_soft_cam=function(obj,target,offset,softness){m_print.error_deprecated("append_semi_soft_cam","append_semi_soft");if(!m_cam.is_eye_camera(obj)){m_print.error("append_semi_soft_cam(): wrong object type, only EYE"+" camera objects can be parented."); return}exports.append_semi_soft(obj,target,offset,softness)};exports.append_semi_soft=function(obj,target,offset,softness){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}if(!__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["_17"](softness)|| softness<0)softness=.25;offset=offset||new Float32Array(3);m_cons.append_semi_soft_obj(obj,target,offset,softness);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_stiff_trans=function(obj,target,offset){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden."); return}offset=offset||new Float32Array(3);m_cons.append_stiff_trans_obj(obj,target,offset);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_copy_loc=function(obj,target,axes,use_offset,influence){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden."); return}use_offset=use_offset||false;axes=axes||"XYZ";influence=influence||1;var offset=m_trans.get_translation(obj,new Float32Array(3));var used_axes=new Float32Array(3);used_axes[0]=axes.indexOf("-X")!=-1?-1:axes.indexOf("X")!=-1?1:0;used_axes[1]=axes.indexOf("-Y")!=-1?-1:axes.indexOf("Y")!=-1?1:0;used_axes[2]=axes.indexOf("-Z")!=-1?-1:axes.indexOf("Z")!=-1?1:0;m_cons.append_copy_loc_obj(obj,target,offset,used_axes,use_offset,influence);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_copy_trans= function(obj,target,influence){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}influence=influence||1;m_cons.append_copy_trans_obj(obj,target,influence);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_copy_rot= function(obj,target,axes,use_offset,influence){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}use_offset=use_offset||false;axes=axes||"XYZ";influence=influence||1;var used_axes=new Float32Array(3);used_axes[0]=axes.indexOf("-X")!= -1?-1:axes.indexOf("X")!=-1?1:0;used_axes[1]=axes.indexOf("-Y")!=-1?-1:axes.indexOf("Y")!=-1?1:0;used_axes[2]=axes.indexOf("-Z")!=-1?-1:axes.indexOf("Z")!=-1?1:0;m_cons.append_copy_rot_obj(obj,target,used_axes,use_offset,influence);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_stiff_trans_rot=function(obj,target,offset,rotation_offset){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different."); return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}offset=offset||new Float32Array(3);rotation_offset=rotation_offset?new Float32Array(rotation_offset):[0,0,0,1];m_cons.append_stiff_trans_rot_obj(obj,target,offset,rotation_offset,1);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_track=function(obj,target,track_axis,up_axis,use_target_z,influence){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+ '" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}var track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["e"];if(track_axis=="-Y")track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["b"];else if(track_axis=="Y")track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["e"]; else if(track_axis=="-X")track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["a"];else if(track_axis=="X")track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["d"];else if(track_axis=="-Z")track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["c"];else if(track_axis=="Z")track_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["f"];var up_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["f"];if(up_axis=="X")up_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["d"]; else if(up_axis=="Y")up_axis_vec=__WEBPACK_IMPORTED_MODULE_7__intern_util_js__["e"];if(Math.abs(__WEBPACK_IMPORTED_MODULE_8__libs_gl_matrix_vec3_js__["dot"](track_axis_vec,up_axis_vec))==1){m_print.error("Can not use parallel vectors for track and up axes.");return}influence=influence||1;use_target_z=use_target_z||false;m_cons.append_track_obj(obj,target,track_axis_vec,up_axis_vec,use_target_z,influence);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_follow=function(obj,target, dist_min,dist_max){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,target)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,target)){m_print.error("Constraint recursion is forbidden.");return}m_cons.append_follow_obj(obj,target,dist_min,dist_max);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.append_stiff_viewport=function(obj, camobj,positioning){if(!m_obj_util.is_dynamic(obj)){m_print.error('Wrong object: "'+obj.name+'" is not dynamic.');return}if(!m_cons.check_self_applying(obj,camobj)){m_print.error("Can not apply constraint. Object and target must be different.");return}if(!m_cons.check_compatibility(obj,camobj)){m_print.error("Constraint recursion is forbidden.");return}positioning=positioning||{};m_cons.append_stiff_viewport(obj,camobj,positioning);m_trans.update_transform(obj);m_phy.sync_transform(obj)};exports.remove= function(obj,restore_transform){restore_transform=restore_transform||false;if(obj.constraint)m_cons.remove(obj,restore_transform);if(restore_transform)m_trans.update_transform(obj)}}var constraints_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("constraints",Constraints);__webpack_exports__["a"]=constraints_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_time_js__= __webpack_require__(18);function Time(ns,exports){var m_time=Object(__WEBPACK_IMPORTED_MODULE_1__intern_time_js__["a"])(ns);exports.set_timeout=m_time.set_timeout;exports.clear_timeout=m_time.clear_timeout;exports.get_timeline=m_time.get_timeline;exports.animate=m_time.animate;exports.clear_animation=m_time.clear_animation}var time_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("time",Time);__webpack_exports__["a"]=time_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_print_js__=__webpack_require__(1);function Storage(ns,exports){var m_print=Object(__WEBPACK_IMPORTED_MODULE_1__intern_print_js__["a"])(ns);var _prefix="b4w";var _storage=null;exports.init=init;function init(prefix){if(prefix)if(prefix!=="b4w")_prefix=prefix;else m_print.error("b4w prefix denied");else m_print.warn("Prefix should be a string. "+"Last declared storage prefix will be used.")}function init_storage(){try{_storage=window.localStorage; try{_storage["tmp"]=null;delete _storage["tmp"]}catch(e){m_print.warn("localStorage quota is limited. Disabling localStorage");_storage=null}}catch(e){m_print.warn("Applying chrome localStorage bug workaround");_storage=null}if(!_storage){m_print.warn("localStorage is not available, initializing temporary storage");_storage={}}}exports.set=function(key,value,prefix){var b4w_st=get_b4w_storage(prefix);b4w_st[key]=String(value);set_b4w_storage(b4w_st,prefix)};function get_b4w_storage(prefix){if(_storage[prefix? prefix:_prefix])return JSON.parse(_storage[prefix?prefix:_prefix]);else return{}}function set_b4w_storage(b4w_storage,prefix){_storage[prefix?prefix:_prefix]=JSON.stringify(b4w_storage)}exports.cleanup=function(prefix){delete _storage[prefix?prefix:_prefix]};exports.get=function(key,prefix){var b4w_st=get_b4w_storage(prefix);if(b4w_st[key])return b4w_st[key];else return""};exports.debug=function(prefix){m_print.log(get_b4w_storage(prefix?prefix:_prefix))};init_storage()}var storage_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("storage", Storage);__webpack_exports__["a"]=storage_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_2__print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_3__util_js__=__webpack_require__(2);function Int_texcomp(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_1__util_assert_js__["a"])(ns);var m_print= Object(__WEBPACK_IMPORTED_MODULE_2__print_js__["a"])(ns);var DDS_MAGIC=542327876;var DDSD_MIPMAPCOUNT=131072;var DDPF_FOURCC=4;var FOURCC_DXT1=fourcc_to_int32("DXT1");var FOURCC_DXT3=fourcc_to_int32("DXT3");var FOURCC_DXT5=fourcc_to_int32("DXT5");var DDS_HEADER_LENGTH_INT=31;var OFFSET_MAGIC=0;var OFFSET_SIZE=1;var OFFSET_FLAGS=2;var OFFSET_HEIGHT=3;var OFFSET_WIDTH=4;var OFFSET_MIPMAPCOUNT=7;var OFFSET_PF_FLAGS=20;var OFFSET_PF_FOUR_CC=21;var PVRTC_2=24;var PVRTC_4=25;var PVR_HEADER_LENGTH_INT=13; var PVR_V2=559044176;var PVR_V3=55727696;var RGB_PVRTC_4BPPV1_FORMAT=0;var RGB_PVRTC_2BPPV1_FORMAT=1;var RGBA_PVRTC_4BPPV1_FORMAT=2;var RGBA_PVRTC_2BPPV1_FORMAT=3;function dxt_to_rgb_565(src,src16Offset,width,height){var c=new Uint16Array(4);var dst=new Uint16Array(width*height);var m=0;var dstI=0;var i=0;var r0=0,g0=0,b0=0,r1=0,g1=0,b1=0;var blockWidth=width/4;var blockHeight=height/4;for(var blockY=0;blockY>3|5*g0+3*g1>>3&2016|5*b0+3*b1>>3&63488;c[3]=5*r1+3*r0>>3|5*g1+3*g0>>3&2016|5*b1+3*b0>>3&63488;m=src[i+2];dstI=blockY*4*width+blockX*4;dst[dstI]=c[m&3];dst[dstI+1]=c[m>>2&3];dst[dstI+2]=c[m>>4&3];dst[dstI+3]=c[m>>6&3];dstI+=width;dst[dstI]=c[m>>8&3];dst[dstI+1]=c[m>>10&3];dst[dstI+2]=c[m>>12&3];dst[dstI+3]=c[m>>14];m=src[i+3];dstI+=width;dst[dstI]=c[m&3];dst[dstI+ 1]=c[m>>2&3];dst[dstI+2]=c[m>>4&3];dst[dstI+3]=c[m>>6&3];dstI+=width;dst[dstI]=c[m>>8&3];dst[dstI+1]=c[m>>10&3];dst[dstI+2]=c[m>>12&3];dst[dstI+3]=c[m>>14]}return dst}exports.upload_dds_levels=upload_dds_levels;function upload_dds_levels(gl,ext,arrayBuffer,loadMipmaps){var header=new Int32Array(arrayBuffer,0,DDS_HEADER_LENGTH_INT),fourCC,blockBytes,internalFormat,width,height,dataLength,dataOffset,rgb565Data,byteArray,mipmapCount,i;if(header[OFFSET_MAGIC]!=DDS_MAGIC){m_print.error("Invalid magic number in DDS header"); return 0}if(!header[OFFSET_PF_FLAGS]&DDPF_FOURCC){m_print.error("Unsupported format, must contain a FourCC code");return 0}fourCC=header[OFFSET_PF_FOUR_CC];switch(fourCC){case FOURCC_DXT1:blockBytes=8;internalFormat=ext?ext.COMPRESSED_RGB_S3TC_DXT1_EXT:null;break;case FOURCC_DXT3:blockBytes=16;internalFormat=ext?ext.COMPRESSED_RGBA_S3TC_DXT3_EXT:null;break;case FOURCC_DXT5:blockBytes=16;internalFormat=ext?ext.COMPRESSED_RGBA_S3TC_DXT5_EXT:null;break;default:m_print.error("Unsupported FourCC code:", int32_to_fourcc(fourCC));return null}mipmapCount=1;if(header[OFFSET_FLAGS]&DDSD_MIPMAPCOUNT&&loadMipmaps!==false)mipmapCount=Math.max(1,header[OFFSET_MIPMAPCOUNT]);width=header[OFFSET_WIDTH];height=header[OFFSET_HEIGHT];dataOffset=header[OFFSET_SIZE]+4;if(ext)for(i=0;i0;if(format_flags==PVRTC_4){var byte_per_pix=4;var format=use_alpha?RGBA_PVRTC_4BPPV1_FORMAT:RGB_PVRTC_4BPPV1_FORMAT}else if(format_flags== PVRTC_2){var byte_per_pix=2;var format=use_alpha?RGBA_PVRTC_2BPPV1_FORMAT:RGB_PVRTC_2BPPV1_FORMAT}else m_assert.panic("Unsupported PVR V2 format.")}else m_assert.panic("Unsupported PVR version.");if(byte_per_pix==2){var block_width=8;var block_height=4}else{var block_width=4;var block_height=4}switch(format){case RGB_PVRTC_4BPPV1_FORMAT:var inter_format=ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;break;case RGB_PVRTC_2BPPV1_FORMAT:var inter_format=ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;break;case RGBA_PVRTC_4BPPV1_FORMAT:var inter_format= ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;break;case RGBA_PVRTC_2BPPV1_FORMAT:var inter_format=ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;break}var block_size=block_width*block_height*byte_per_pix/8;for(var i=0;i>i,1);var s_height=Math.max(height>>i,1);var width_blocks=s_width/block_width;var height_blocks=s_height/block_height;if(width_blocks<2)width_blocks=2;if(height_blocks<2)height_blocks=2;var data_size=width_blocks*height_blocks*block_size;var byte_array=new Uint8Array(arrayBuffer, data_offset,data_size);gl.compressedTexImage2D(gl.TEXTURE_2D,i,inter_format,s_width,s_height,0,byte_array);data_offset+=data_size}};exports.get_width_height=function(arrayBuffer,format){switch(format){case "dds":var header=new Int32Array(arrayBuffer,0,DDS_HEADER_LENGTH_INT);return{width:header[OFFSET_WIDTH],height:header[OFFSET_HEIGHT]};break;case "pvr":var header=new Uint32Array(arrayBuffer,0,PVR_HEADER_LENGTH_INT);if(header[0]==PVR_V3){var width=header[7];var height=header[6]}else{var width=header[2]; var height=header[1]}return{width:width,height:height};break}};exports.get_compress_ratio=function(arrayBuffer,comp_method){var comp_ratio=1;if(comp_method=="dds"){var header=new Int32Array(arrayBuffer,0,DDS_HEADER_LENGTH_INT);var fourCC=header[OFFSET_PF_FOUR_CC];switch(fourCC){case FOURCC_DXT1:comp_ratio=6;break;case FOURCC_DXT3:case FOURCC_DXT5:comp_ratio=4;break;default:m_print.error("Unsupported FourCC code:",int32_to_fourcc(fourCC));break}}else if(comp_method=="pvr"){var header=new Uint32Array(arrayBuffer, 0,PVR_HEADER_LENGTH_INT);if(header[0]==PVR_V3){var pixel_format=header[2];switch(pixel_format){case 0:comp_ratio=12;break;case 1:comp_ratio=16;break;case 2:comp_ratio=6;break;case 3:comp_ratio=8;break}}else{var format_flags=header[4]&255;var use_alpha=header[10]>0;if(format_flags==PVRTC_4)comp_ratio=use_alpha?8:6;else if(format_flags==PVRTC_2)comp_ratio=use_alpha?16:12}}return comp_ratio};function load_dds_texture_ex(gl,ext,src,texture,loadMipmaps,callback){var xhr=new XMLHttpRequest;xhr.open("GET", src,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200){gl.bindTexture(gl.TEXTURE_2D,texture);var mipmaps=upload_dds_levels(gl,ext,xhr.response,loadMipmaps);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,mipmaps>1?gl.LINEAR_MIPMAP_LINEAR:gl.LINEAR)}if(callback)callback(texture)};xhr.send(null);return texture}exports.load_dds_texture=function(gl,ext,src,callback){var texture=gl.createTexture();load_dds_texture_ex(gl, ext,src,texture,true,callback);return texture};function fourcc_to_int32(value){return value.charCodeAt(0)+(value.charCodeAt(1)<<8)+(value.charCodeAt(2)<<16)+(value.charCodeAt(3)<<24)}function int32_to_fourcc(value){return String.fromCharCode(value&255,value>>8&255,value>>16&255,value>>24&255)}}var int_texcomp_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__texcomp",Int_texcomp);__webpack_exports__["a"]=int_texcomp_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__print_js__=__webpack_require__(1);function Int_debug(ns,exports){var m_print=Object(__WEBPACK_IMPORTED_MODULE_1__print_js__["a"])(ns);var _vbo_garbage_info={};exports.fill_vbo_garbage_info=function(vbo_id,sh_pair_str,attr_name,byte_size,is_in_usage){if(!_vbo_garbage_info[vbo_id])_vbo_garbage_info[vbo_id]={shaders:sh_pair_str,attrs:{}};if(!(attr_name in _vbo_garbage_info[vbo_id].attrs))_vbo_garbage_info[vbo_id].attrs[attr_name]=byte_size;if(is_in_usage)_vbo_garbage_info[vbo_id].attrs[attr_name]= 0};exports.calc_vbo_garbage_byte_size=function(){var size=0;for(var vbo_id in _vbo_garbage_info)for(var name in _vbo_garbage_info[vbo_id].attrs)size+=_vbo_garbage_info[vbo_id].attrs[name];return size};exports.show_vbo_garbage_info=function(){var info_obj={};for(var vbo_id in _vbo_garbage_info)for(var name in _vbo_garbage_info[vbo_id].attrs){var byte_size=_vbo_garbage_info[vbo_id].attrs[name];if(byte_size){var sh_str=_vbo_garbage_info[vbo_id].shaders;if(!(sh_str in info_obj))info_obj[sh_str]={total_size:0, attrs:{}};if(!(name in info_obj[sh_str].attrs))info_obj[sh_str].attrs[name]=0;info_obj[sh_str].attrs[name]+=byte_size;info_obj[sh_str].total_size+=byte_size}}for(var sh_str in info_obj){m_print.groupCollapsed(sh_str,info_obj[sh_str].total_size);for(var name in info_obj[sh_str].attrs)m_print.log_raw(name,info_obj[sh_str].attrs[name]);m_print.groupEnd()}};exports.cleanup=function(){_vbo_garbage_info={}}}var int_debug_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__debug",Int_debug); __webpack_exports__["a"]=int_debug_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_2__subscene_js__=__webpack_require__(46);var __WEBPACK_IMPORTED_MODULE_3__extensions_js__=__webpack_require__(28);var __WEBPACK_IMPORTED_MODULE_4__subscene_js__=__webpack_require__(11);var __WEBPACK_IMPORTED_MODULE_5__util_js__= __webpack_require__(2);function DebugRenderTime(ns,exports){var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_1__config_js__["a"])(ns);var m_debug_subscene=Object(__WEBPACK_IMPORTED_MODULE_2__subscene_js__["a"])(ns);var m_ext=Object(__WEBPACK_IMPORTED_MODULE_3__extensions_js__["a"])(ns);var m_subs=Object(__WEBPACK_IMPORTED_MODULE_4__subscene_js__["a"])(ns);var cfg_def=m_cfg.defaults;var RENDER_TIME_SMOOTH_INTERVALS=10;exports.start_subs=function(subs){if(!(cfg_def.show_hud_debug_info||subs.type==m_subs.PERFORMANCE))return; if(subs.do_not_debug)return;subs.debug_render_time_queries.push(create_render_time_query())};exports.start_batch=function(batch){if(!(batch.type=="MAIN"&&is_debug_view_render_time_mode()))return;batch.debug_render_time_queries.push(create_render_time_query())};function create_render_time_query(){var ext=m_ext.get_disjoint_timer_query();if(ext){var query=ext.createQuery();ext.beginQuery(query)}else var query=performance.now();return query}exports.stop_subs=function(subs){if(!(cfg_def.show_hud_debug_info|| subs.type==m_subs.PERFORMANCE))return;if(subs.do_not_debug)return;var render_time=calc_render_time(subs.debug_render_time_queries,subs.debug_render_time,true);if(render_time)subs.debug_render_time=render_time};exports.stop_batch=function(batch){if(!(batch.type=="MAIN"&&is_debug_view_render_time_mode()))return;var render_time=calc_render_time(batch.debug_render_time_queries,batch.debug_render_time,true);if(render_time)batch.debug_render_time=render_time};exports.is_debug_view_render_time_mode=is_debug_view_render_time_mode; function is_debug_view_render_time_mode(){var subs_debug_view=m_debug_subscene.get_debug_view_subs();return subs_debug_view&&subs_debug_view.debug_view_mode==m_debug_subscene.DV_RENDER_TIME}exports.process_timer_queries=function(subs){var render_time=calc_render_time(subs.debug_render_time_queries,subs.debug_render_time,false);if(render_time)subs.debug_render_time=render_time};function calc_render_time(queries,prev_render_time,end_query){var ext=m_ext.get_disjoint_timer_query();var render_time=0; if(ext){if(end_query)ext.endQuery();for(var i=0;i=0;i--){var idx=face_indices_to_remove[i];geometry.faces.splice(idx,1)}var diff=geometry.vertices.length-unique.length;geometry.vertices.length=0;for(i=0;ivertex_ids_2)return vertex_ids_2+"-"+vertex_ids_1;else return vertex_ids_1+"-"+vertex_ids_2}function build_polygons_from_geometry(geometry){var polygons=[];var vertices=geometry.vertices;var polygon_id=0;for(var i=0;i=0)shared_vertices.push(a_list[i]);if(shared_vertices.length<2)return[];if(indexOf(shared_vertices,a_list[0])>= 0&&indexOf(shared_vertices,a_list[a_list.length-1])>=0)shift_l(a_list);if(indexOf(shared_vertices,b_list[0])>=0&&indexOf(shared_vertices,b_list[b_list.length-1])>=0)shift_l(b_list);shared_vertices=[];for(var i=0;i=0)shared_vertices.push(a_list[i]);return shared_vertices};function group_navmesh(navmesh){var ret={};var vert=navmesh.vertices;for(var i=0;i0){var current_node=__WEBPACK_IMPORTED_MODULE_2__math_js__["b"](open_heap);if(current_node===end_node){var curr=current_node;var ret=[];while(curr.parent){ret.push(curr);curr=curr.parent}ret.push(start_node);return ret.reverse()}current_node.closed= true;var neighbours=get_neighbours(graph,current_node);for(var i=0,il=neighbours.length;iold_apex_index||!j){var navmesh_point=get_point_on_navmesh(accum_new_apex,old_portal_apex,portals[j].left,portals[j].right,apex_normal,interapex_accum_mat,__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["create"]());push_vec3(pts_dest,navmesh_point);if(return_normals)push_vec3(normals_dest, portals[j].normal);if(j)update_accum_mat(interapex_accum_mat,portals[j],portals[j-1])}}function string_pull(portals,return_normals){var pts=[];var normals=[];var portal_apex,portal_left,portal_right;var accum_portal_left,accum_portal_right,apex_normal;var apex_index=0;var left_index=0;var right_index=0;portal_apex=portals[0].right;portal_left=portals[0].left;portal_right=portals[0].right;accum_portal_left=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](portal_left,_accum_left_portal_tmp); accum_portal_right=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](portal_right,_accum_right_portal_tmp);apex_normal=__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](portals[0].normal,_apex_normal_tmp);push_vec3(pts,portal_apex);if(return_normals)push_vec3(normals,portals[0].normal);var accum_mat=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_mat4_js__["identity"](_mat4_tmp2);function update_apex(point,index){apex_index=index;left_index=apex_index;right_index=apex_index;portal_apex= point;portal_left=portal_apex;portal_right=portal_apex;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](point,accum_portal_left);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](point,accum_portal_right);__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](portals[apex_index].normal,apex_normal)}for(var i=1;i0){portal_right=right;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](accum_right, accum_portal_right);right_index=i}else{var left_is_apex=vequal(accum_portal_left,portal_apex);if(!left_is_apex)update_crucial_on_navmesh(portals,accum_portal_left,left_index,portal_apex,apex_index,apex_normal,pts,return_normals,normals);accum_mat=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_mat4_js__["identity"](accum_mat);update_apex(portal_left,left_index);i=apex_index;if(!left_is_apex){push_vec3(pts,portal_apex);if(return_normals)push_vec3(normals,portals[i].normal)}continue}}if(get_rotation_sign(portal_apex, accum_portal_left,accum_left,apex_normal)>=0){var eq=vequal(portal_apex,portal_left);if(eq||get_rotation_sign(portal_apex,accum_portal_right,accum_left,apex_normal)<0){portal_left=left;__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_vec3_js__["copy"](accum_left,accum_portal_left);left_index=i}else{var right_is_apex=vequal(accum_portal_right,portal_apex);if(!right_is_apex)update_crucial_on_navmesh(portals,accum_portal_right,right_index,portal_apex,apex_index,apex_normal,pts,return_normals,normals);accum_mat= __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_mat4_js__["identity"](accum_mat);update_apex(portal_right,right_index);i=apex_index;if(!right_is_apex){push_vec3(pts,portal_apex);if(return_normals)push_vec3(normals,portals[i].normal)}continue}}}var last_index=portals.length-1;var last_portal_left=portals[last_index].left;var is_last_apex=vequal(portal_apex,last_portal_left);if(!is_last_apex)update_crucial_on_navmesh(portals,accum_portal_left,last_index,portal_apex,apex_index,apex_normal,pts,return_normals, normals);if(!is_last_apex||!apex_index)push_vec3(pts,last_portal_left);if(return_normals){push_vec3(normals,portals[last_index].normal);return{"positions":new Float32Array(pts),"normals":new Float32Array(normals)}}else return{"positions":new Float32Array(pts),"normals":null}}function is_point_in_poly(poly,pt){for(var c=false,i=-1,l=poly.length,j=l-1;++i0&&distance>allowed_distance)return null;else return closest_node}function get_portal_from_to(a,b){for(var i=0;iorder&&i=knot[i-1]&&t=knot[i-1]&&t=spline_length(spline))return max_t;var clen=spline.cumulative_length;var index=__WEBPACK_IMPORTED_MODULE_2__util_js__["F"](clen,len,0,clen.length-1);var index_float=index+(len-clen[index])/(clen[index+1]-clen[index]);var t=max_t*index_float/SPLINE_POINTS;return t};exports.linear_interpolation=function(y1,x1,y0,x0,x){return y0+(x-x0)*(y1-y0)/(x1-x0)};exports.linear=function(x,v1,v4){var x1=v1[0],y1=v1[1],x2=v4[0],y2=v4[1]; var k=(y2-y1)/(x2-x1);var b=y1-k*x1;return k*x+b};exports.bezier=function(x,v1,v2,v3,v4,precision){var t=bezier_find_root(0,1,x,v1[0],v2[0],v3[0],v4[0],precision);var y=bezier_parametric(t,v1[1],v2[1],v3[1],v4[1]);return y};function bezier_find_root(t0_so_far,t1_so_far,x_needed,x0,x1,x2,x3,precision){var t=t0_so_far+(t1_so_far-t0_so_far)/2;var x=bezier_parametric(t,x0,x1,x2,x3);var dx=x-x_needed;precision=precision?precision:.01;if(Math.abs(dx)0)return bezier_find_root(t0_so_far, t,x_needed,x0,x1,x2,x3,precision);else return bezier_find_root(t,t1_so_far,x_needed,x0,x1,x2,x3,precision)}function bezier_parametric(t,p0,p1,p2,p3){var t1=1-t;return p0*t1*t1*t1+3*p1*t1*t1*t+3*p2*t1*t*t+p3*t*t*t}exports.calchandle_curvemap=function(bezt,prev,next,h1,h2){var p1=new Float32Array(3);var p2=new Float32Array(3);var p3=new Float32Array(3);var dvec_a=new Float32Array(3);var dvec_b=new Float32Array(3);var tvec=new Float32Array(3);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["copy"](bezt[1], p2);if(prev==null){__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["copy"](next[1],p3);p1[0]=2*p2[0]-p3[0];p1[1]=2*p2[1]-p3[1]}else __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["copy"](prev[1],p1);if(next==null){__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["copy"](prev[1],p1);p3[0]=2*p2[0]-p1[0];p3[1]=2*p2[1]-p1[1]}else __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["copy"](next[1],p3);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["subtract"](p2,p1,dvec_a);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["subtract"](p3, p2,dvec_b);var len_a=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["length"](dvec_a);var len_b=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["length"](dvec_b);if(len_a==0)len_a=1;if(len_b==0)len_b=1;if(h1=="AUTO"||h2=="AUTO"){tvec[0]=dvec_b[0]/len_b+dvec_a[0]/len_a;tvec[1]=dvec_b[1]/len_b+dvec_a[1]/len_a;var len=__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["length"](tvec)*2.5614;if(len!=0){if(h1=="AUTO"){len_a/=len;__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["scaleAndAdd"](p2, tvec,-len_a,bezt[0])}if(h2=="AUTO"){len_b/=len;__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["scaleAndAdd"](p2,tvec,len_b,bezt[2])}}}if(h1=="VECTOR")__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["scaleAndAdd"](p2,dvec_a,-1/3,bezt[0]);if(h2=="VECTOR")__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_vec3_js__["scaleAndAdd"](p2,dvec_b,1/3,bezt[2])};exports.correct_bezpart=function(v1,v2,v3,v4){var h1=[];var h2=[];var len1,len2,len,fac;h1[0]=v1[0]-v2[0];h1[1]=v1[1]-v2[1];h2[0]=v4[0]-v3[0]; h2[1]=v4[1]-v3[1];len=v4[0]-v1[0];len1=Math.abs(h1[0]);len2=Math.abs(h2[0]);if(len1+len2==0)return;if(len1+len2>len){fac=len/(len1+len2);v2[0]=v1[0]-fac*h1[0];v2[1]=v1[1]-fac*h1[1];v3[0]=v4[0]-fac*h2[0];v3[1]=v4[1]-fac*h2[1]}}}var int_curve_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__curve",Int_curve);__webpack_exports__["a"]=int_curve_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0); var __WEBPACK_IMPORTED_MODULE_1__intern_config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_2__intern_context_js__=__webpack_require__(66);var __WEBPACK_IMPORTED_MODULE_3__intern_compat_js__=__webpack_require__(35);var __WEBPACK_IMPORTED_MODULE_4__intern_data_js__=__webpack_require__(43);var __WEBPACK_IMPORTED_MODULE_5__intern_print_js__=__webpack_require__(1);function Config(ns,exports){var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_1__intern_config_js__["a"])(ns);var m_compat=Object(__WEBPACK_IMPORTED_MODULE_3__intern_compat_js__["a"])(ns); var m_context=Object(__WEBPACK_IMPORTED_MODULE_2__intern_context_js__["a"])(ns);var m_data=Object(__WEBPACK_IMPORTED_MODULE_4__intern_data_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_5__intern_print_js__["a"])(ns);exports.P_LOW=m_cfg.P_LOW;exports.P_HIGH=m_cfg.P_HIGH;exports.P_ULTRA=m_cfg.P_ULTRA;exports.P_CUSTOM=m_cfg.P_CUSTOM;exports.P_AUTO=m_cfg.P_AUTO;exports.set=m_cfg.set;exports.get=m_cfg.get;exports.reset=m_cfg.reset;exports.reset_limits=m_cfg.reset_limits;exports.get_std_assets_path= m_cfg.get_assets_path;exports.get_assets_path=m_cfg.get_assets_path;exports.apply_quality=function(quality){if(m_data.is_primary_loaded()){m_print.error("Cannot change quality profile after a scene is loaded.");return}m_cfg.set("quality",quality);var gl=m_context.get_gl();if(gl){m_cfg.apply_quality();m_compat.set_hardware_defaults(m_context.get_gl(),false)}}}var config_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("config",Config);__webpack_exports__["a"]=config_factory},function(module, __webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_data_js__=__webpack_require__(43);var __WEBPACK_IMPORTED_MODULE_2__intern_loader_js__=__webpack_require__(65);function Data(ns,exports){var m_data=Object(__WEBPACK_IMPORTED_MODULE_1__intern_data_js__["a"])(ns);var m_loader=Object(__WEBPACK_IMPORTED_MODULE_2__intern_loader_js__["a"])(ns);exports.load=m_data.load;exports.unload=function(data_id){data_id= data_id|0;m_data.unload(data_id)};exports.set_debug_resources_root=m_data.set_debug_resources_root;exports.is_primary_loaded=m_data.is_primary_loaded;exports.is_idle=m_loader.is_finished;exports.load_and_add_new=m_data.load;exports.cleanup=exports.unload;exports.activate_media=m_data.activate_media;exports.prefetch=m_data.prefetch;exports.unfetch=m_data.unfetch}var data_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("data",Data);__webpack_exports__["a"]=data_factory},function(module, __webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_b4w_js__=__webpack_require__(32);var __WEBPACK_IMPORTED_MODULE_1__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_2__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_3__intern_batch_js__=__webpack_require__(16);var __WEBPACK_IMPORTED_MODULE_4__intern_config_js__=__webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_5__intern_context_js__=__webpack_require__(66);var __WEBPACK_IMPORTED_MODULE_6__intern_compat_js__= __webpack_require__(35);var __WEBPACK_IMPORTED_MODULE_7__intern_controls_js__=__webpack_require__(53);var __WEBPACK_IMPORTED_MODULE_8__intern_container_js__=__webpack_require__(15);var __WEBPACK_IMPORTED_MODULE_9__intern_data_js__=__webpack_require__(43);var __WEBPACK_IMPORTED_MODULE_10__intern_debug_js__=__webpack_require__(71);var __WEBPACK_IMPORTED_MODULE_11__intern_debug_batch_js__=__webpack_require__(94);var __WEBPACK_IMPORTED_MODULE_12__intern_debug_check_js__=__webpack_require__(45);var __WEBPACK_IMPORTED_MODULE_13__intern_debug_subscene_js__= __webpack_require__(46);var __WEBPACK_IMPORTED_MODULE_14__intern_debug_telemetry_js__=__webpack_require__(63);var __WEBPACK_IMPORTED_MODULE_15__intern_debug_render_time_js__=__webpack_require__(72);var __WEBPACK_IMPORTED_MODULE_16__intern_extensions_js__=__webpack_require__(28);var __WEBPACK_IMPORTED_MODULE_17__intern_geometry_js__=__webpack_require__(20);var __WEBPACK_IMPORTED_MODULE_18__intern_loader_js__=__webpack_require__(65);var __WEBPACK_IMPORTED_MODULE_19__intern_objects_js__=__webpack_require__(12); var __WEBPACK_IMPORTED_MODULE_20__intern_obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_21__intern_physics_js__=__webpack_require__(19);var __WEBPACK_IMPORTED_MODULE_22__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_23__intern_renderer_js__=__webpack_require__(22);var __WEBPACK_IMPORTED_MODULE_24__intern_scenes_js__=__webpack_require__(10);var __WEBPACK_IMPORTED_MODULE_25__intern_scenegraph_js__=__webpack_require__(58);var __WEBPACK_IMPORTED_MODULE_26__intern_sfx_js__= __webpack_require__(23);var __WEBPACK_IMPORTED_MODULE_27__intern_shaders_js__=__webpack_require__(34);var __WEBPACK_IMPORTED_MODULE_28__intern_subscene_js__=__webpack_require__(11);var __WEBPACK_IMPORTED_MODULE_29__intern_textures_js__=__webpack_require__(17);var __WEBPACK_IMPORTED_MODULE_30__intern_time_js__=__webpack_require__(18);var __WEBPACK_IMPORTED_MODULE_31__intern_transform_js__=__webpack_require__(13);var __WEBPACK_IMPORTED_MODULE_32__intern_tsr_js__=__webpack_require__(6);var __WEBPACK_IMPORTED_MODULE_33__intern_util_js__= __webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_34__libs_gl_matrix_vec3_js__=__webpack_require__(3);function Debug(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_2__util_assert_js__["a"])(ns);var m_batch=Object(__WEBPACK_IMPORTED_MODULE_3__intern_batch_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_4__intern_config_js__["a"])(ns);var m_compat=Object(__WEBPACK_IMPORTED_MODULE_6__intern_compat_js__["a"])(ns);var m_ctl=Object(__WEBPACK_IMPORTED_MODULE_7__intern_controls_js__["a"])(ns); var m_cont=Object(__WEBPACK_IMPORTED_MODULE_8__intern_container_js__["a"])(ns);var m_context=Object(__WEBPACK_IMPORTED_MODULE_5__intern_context_js__["a"])(ns);var m_data=Object(__WEBPACK_IMPORTED_MODULE_9__intern_data_js__["a"])(ns);var m_debug=Object(__WEBPACK_IMPORTED_MODULE_10__intern_debug_js__["a"])(ns);var m_debug_batch=Object(__WEBPACK_IMPORTED_MODULE_11__intern_debug_batch_js__["a"])(ns);var m_debug_check=Object(__WEBPACK_IMPORTED_MODULE_12__intern_debug_check_js__["a"])(ns);var m_debug_subscene= Object(__WEBPACK_IMPORTED_MODULE_13__intern_debug_subscene_js__["a"])(ns);var m_debug_telemetry=Object(__WEBPACK_IMPORTED_MODULE_14__intern_debug_telemetry_js__["a"])(ns);var m_debug_render_time=Object(__WEBPACK_IMPORTED_MODULE_15__intern_debug_render_time_js__["a"])(ns);var m_ext=Object(__WEBPACK_IMPORTED_MODULE_16__intern_extensions_js__["a"])(ns);var m_geom=Object(__WEBPACK_IMPORTED_MODULE_17__intern_geometry_js__["a"])(ns);var m_load=Object(__WEBPACK_IMPORTED_MODULE_18__intern_loader_js__["a"])(ns); var m_obj=Object(__WEBPACK_IMPORTED_MODULE_19__intern_objects_js__["a"])(ns);var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_20__intern_obj_util_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_21__intern_physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_22__intern_print_js__["a"])(ns);var m_render=Object(__WEBPACK_IMPORTED_MODULE_23__intern_renderer_js__["a"])(ns);var m_scenes=Object(__WEBPACK_IMPORTED_MODULE_24__intern_scenes_js__["a"])(ns);var m_scgraph=Object(__WEBPACK_IMPORTED_MODULE_25__intern_scenegraph_js__["a"])(ns); var m_sfx=Object(__WEBPACK_IMPORTED_MODULE_26__intern_sfx_js__["a"])(ns);var m_shaders=Object(__WEBPACK_IMPORTED_MODULE_27__intern_shaders_js__["a"])(ns);var m_subs=Object(__WEBPACK_IMPORTED_MODULE_28__intern_subscene_js__["a"])(ns);var m_time=Object(__WEBPACK_IMPORTED_MODULE_30__intern_time_js__["a"])(ns);var m_textures=Object(__WEBPACK_IMPORTED_MODULE_29__intern_textures_js__["a"])(ns);var m_trans=Object(__WEBPACK_IMPORTED_MODULE_31__intern_transform_js__["a"])(ns);var _tsr_tmp=__WEBPACK_IMPORTED_MODULE_32__intern_tsr_js__["b"](); var _vec2_tmp=new Float32Array(2);var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_34__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp2=__WEBPACK_IMPORTED_MODULE_34__libs_gl_matrix_vec3_js__["create"]();var _vec3_tmp3=__WEBPACK_IMPORTED_MODULE_34__libs_gl_matrix_vec3_js__["create"]();var _normal_line=null;var cfg_def=m_cfg.defaults;var FAKE_LOAD_INTERVAL=5E3;var FAKE_LOAD_START_PERCENTAGE=0;var FAKE_LOAD_END_PERCENTAGE=100;var PERF_NUM_CALLS=5;var EPS=1E-6;var _called_funcs=[];var _last_warn_message=""; var _last_err_message="";var _warn_got=false;var _err_got=false;var _test_result=true;var _pixel=new Uint8Array(4);exports.DV_NONE=m_debug_subscene.DV_NONE;exports.DV_OPAQUE_WIREFRAME=m_debug_subscene.DV_OPAQUE_WIREFRAME;exports.DV_TRANSPARENT_WIREFRAME=m_debug_subscene.DV_TRANSPARENT_WIREFRAME;exports.DV_FRONT_BACK_VIEW=m_debug_subscene.DV_FRONT_BACK_VIEW;exports.DV_BOUNDINGS=m_debug_subscene.DV_BOUNDINGS;exports.DV_CLUSTERS_VIEW=m_debug_subscene.DV_CLUSTERS_VIEW;exports.DV_BATCHES_VIEW=m_debug_subscene.DV_BATCHES_VIEW; exports.DV_RENDER_TIME=m_debug_subscene.DV_RENDER_TIME;exports.physics_stats=function(){m_phy.debug_workers()};exports.physics_id=function(id){m_print.log("O",m_phy.find_obj_by_body_id(id));var act_phy_scene=m_phy.get_active_scene();if(!act_phy_scene){m_print.error("No active physics scene.");return}var bundles=act_phy_scene._physics.bundles;for(var i=0;i100)m_assert.panic("Max percentage must be less than 100");if(start<0)m_assert.panic("Min percentage must be greater than 0");if(start>end)m_assert.panic("Max percentage must be greater than min percentage"); var animator=m_time.animate(start,end,interval,function(e){var rounded_percentage=e.toFixed();stageload_cb(rounded_percentage);if(rounded_percentage==100){m_time.clear_animation(animator);if(loaded_cb)loaded_cb();return}})};function get_shaders_stat(vshader,fshader){var ext_ds=m_ext.get_debug_shaders();if(!ext_ds){m_print.warn("WEBGL_debug_shaders extension not found");return}var vsrc_trans=ext_ds.getTranslatedShaderSource(vshader);var fsrc_trans=ext_ds.getTranslatedShaderSource(fshader);if(m_compat.detect_mobile()){vsrc_trans= vsrc_trans.replace("#version","#version 300 //");fsrc_trans=fsrc_trans.replace("#version","#version 300 //");var vout=post_sync("/analyze_shader/vert_gles",vsrc_trans);var fout=post_sync("/analyze_shader/frag_gles",fsrc_trans)}else{vsrc_trans=vsrc_trans.replace("#version","#version 400 //");fsrc_trans=fsrc_trans.replace("#version","#version 400 //");var vout=post_sync("/analyze_shader/vert",vsrc_trans);var fout=post_sync("/analyze_shader/frag",fsrc_trans)}var vstats=parse_shader_assembly(vout);var fstats= parse_shader_assembly(fout);return{vsrc:m_context.get_gl().getShaderSource(vshader),vsrc_trans:vsrc_trans,vout:vout,vstats:vstats,fsrc:m_context.get_gl().getShaderSource(fshader),fsrc_trans:fsrc_trans,fout:fout,fstats:fstats}}function parse_shader_assembly(data){var stats={};if(!data)return stats;var lines=data.split("\n");for(var i=0;i","OPS",vstats["ALL_OPS"],"ATT",vstats["ATTRIBS"],"TEX",vstats["TEX_OPS"],"\t\tFRAG ->","OPS",fstats["ALL_OPS"],"TEX",fstats["TEX_OPS"],mat_names);m_print.groupCollapsed("directives");var dirs=stat.shaders_info.directives.slice().sort();for(var i=0;iresult[i]+eps||exp_result[i]result+eps||exp_result0){var cam_obj=m_scenes.get_active_camera();if(!cam_obj)return;if(m_cam.is_eye_camera(cam_obj)){var hmd_quat=m_ctl.get_sensor_payload(obj,id,1);var hmd_pos=m_ctl.get_sensor_payload(obj,id,2);var position=__WEBPACK_IMPORTED_MODULE_9__libs_gl_matrix_vec3_js__["add"](hmd_pos,_offset_pos,_vec3_tmp);m_trans.set_translation_v(cam_obj,position);if(hmd_quat)if(control_type==HMD_ALL_AXES_MOUSE_NONE){hmd_quat=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_quat_js__["multiply"](_offset_quat, hmd_quat,_quat_tmp4);var up_axis=__WEBPACK_IMPORTED_MODULE_9__libs_gl_matrix_vec3_js__["transformQuat"](m_util.AXIS_MY,hmd_quat,_vec3_tmp);m_cam.set_vertical_axis(cam_obj,up_axis);m_trans.set_rotation_v(cam_obj,hmd_quat)}else if(control_type==HMD_ROLL_PITCH_MOUSE_YAW||control_type==HMD_ALL_AXES_MOUSE_YAW){var cam_quat=m_trans.get_rotation(cam_obj,_quat_tmp2);var inv_cam_quat=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_quat_js__["invert"](cam_quat,_quat_tmp2);var diff_cam_quat=__WEBPACK_IMPORTED_MODULE_4__libs_gl_matrix_quat_js__["multiply"](_last_cam_quat, inv_cam_quat,_quat_tmp2);var cur_vertical_axis=m_cam.get_vertical_axis(cam_obj,_vec3_tmp);if(Math.abs(cur_vertical_axis[2])m_anim.SLOT_7){m_print.error("Can't apply animation to slot "+slot_num+' for object "'+obj.name+'". Object can have maximum of 8 animation slots');return}slot_num=slot_num||m_anim.SLOT_0;if(m_anim.is_animated(obj)){var applied_slot=m_anim.get_slot_num_by_anim(obj,name);if(applied_slot!=-1&&applied_slot!=slot_num){m_print.error('Animation "'+name+'" is already applied to object "'+obj.name+'" (slot "'+applied_slot+'").');return}}if(!m_anim.validate_action_by_name(obj, name)){m_print.error('No fcurves in action "'+name+'"');return}m_anim.apply(obj,null,name,slot_num)};exports.apply_ext=function(obj,name_list,slot_num){if(slot_num>m_anim.SLOT_7){m_print.error("Can't apply animation to slot "+slot_num+' for object "'+obj.name+'". Object can have maximum of 8 animation slots');return}slot_num=slot_num||m_anim.SLOT_0;var name=name_list[0];if(!m_anim.validate_action_by_name(obj,name)){m_print.error('No fcurves in action "'+name+'"');return}var new_name_list=name_list.slice(1); m_anim.apply(obj,new_name_list,name,slot_num)};exports.remove=function(obj){m_anim.remove(obj)};exports.remove_slot_animation=function(obj,slot_num){if(!m_anim.is_animated(obj))return;slot_num=slot_num||m_anim.SLOT_0;m_anim.remove_slot_animation(obj,slot_num)};exports.apply_def=function(obj){m_anim.apply_def(obj)};exports.play=function(obj,finish_callback,slot_num){if(!m_anim.is_animated(obj)){m_print.error('Object "'+obj.name+'" has no applied animation');return}slot_num=slot_num||m_anim.SLOT_0; m_anim.play(obj,finish_callback,slot_num);m_anim.update_object_animation(obj,0,slot_num,true)};exports.stop=function(obj,slot_num){if(m_anim.is_animated(obj)){slot_num=slot_num||m_anim.SLOT_0;m_anim.stop(obj,slot_num)}};exports.is_play=function(obj,slot_num){if(!m_anim.is_animated(obj))return false;slot_num=slot_num||m_anim.SLOT_0;return m_anim.is_play(obj,slot_num)};exports.set_frame=function(obj,frame,slot_num){if(!m_anim.is_animated(obj))return;slot_num=slot_num||m_anim.SLOT_0;m_anim.set_frame(obj, frame,slot_num)};exports.set_first_frame=function(obj,slot_num){if(!m_anim.is_animated(obj))return;m_anim.set_first_frame(obj,slot_num)};exports.set_last_frame=function(obj,slot_num){if(!m_anim.is_animated(obj))return;slot_num=slot_num||m_anim.SLOT_0;var start=m_anim.get_anim_start_frame(obj,slot_num);var len=m_anim.get_anim_length(obj,slot_num);m_anim.set_frame(obj,start+len-m_anim.LAST_FRAME_EPSILON,slot_num)};exports.get_frame=function(obj,slot_num){if(!m_anim.is_animated(obj))return 0;slot_num= slot_num||m_anim.SLOT_0;return m_anim.get_current_frame_float(obj,slot_num)};exports.set_speed=function(obj,speed,slot_num){if(!m_anim.is_animated(obj))return;slot_num=slot_num||m_anim.SLOT_0;speed=speed||1;m_anim.set_speed(obj,speed,slot_num)};exports.get_speed=function(obj,slot_num){if(!m_anim.is_animated(obj))return 0;slot_num=slot_num||m_anim.SLOT_0;if(!obj.anim_slots[slot_num])return 0;return m_anim.get_speed(obj,slot_num)};exports.get_anim_start_frame=function(obj,slot_num){if(m_anim.is_animated(obj)){slot_num= slot_num||m_anim.SLOT_0;if(!obj.anim_slots[slot_num])return-1;else return m_anim.get_anim_start_frame(obj,slot_num)}return-1};exports.get_anim_length=function(obj,slot_num){if(m_anim.is_animated(obj)){slot_num=slot_num||m_anim.SLOT_0;if(!obj.anim_slots[slot_num])return-1;else return m_anim.get_anim_length(obj,slot_num)}return-1};exports.set_behavior=function(obj,behavior,slot_num){if(!m_anim.is_animated(obj))return;slot_num=slot_num||m_anim.SLOT_0;m_anim.set_behavior(obj,behavior,slot_num)};exports.get_behavior= function(obj,slot_num){if(!m_anim.is_animated(obj))return null;slot_num=slot_num||m_anim.SLOT_0;return m_anim.get_behavior(obj,slot_num)};exports.apply_smoothing=function(obj,trans_period,quat_period,slot_num){slot_num=slot_num||m_anim.SLOT_0;if(m_anim.is_animated(obj))m_anim.apply_smoothing(obj,trans_period,quat_period,slot_num)};exports.frame_to_sec=function(frame){return m_anim.frame_to_sec(frame)};exports.get_slot_num_by_anim=function(obj,anim_name){if(!m_anim.is_animated(obj)||!anim_name)return-1; return m_anim.get_slot_num_by_anim(obj,anim_name)};exports.get_anim_type=function(obj,slot_num){if(!m_anim.is_animated(obj))return null;return m_anim.get_anim_type(obj,slot_num)};exports.apply_to_first_empty_slot=function(obj,name){return m_anim.apply_to_first_empty_slot(obj,name)};exports.get_skel_mix_factor=function(armobj){return armobj.render.anim_mix_factor};exports.set_skel_mix_factor=function(armobj,factor,time,callback){if(!m_obj_util.is_armature(armobj)){m_print.error("Can't blend animation. Object \""+ armobj.name+'" is not armature');return}factor=Math.min(Math.max(factor,0),1);if(armobj.render.anim_mix_factor==factor)return;time=time||0;callback=callback||null;m_anim.set_skel_mix_factor(armobj,factor,time,callback)};exports.set_skeletal_slots=function(armobj,slot_1,slot_2,factor){slot_1=slot_1==undefined?-1:slot_1;slot_2=slot_1==undefined?-1:slot_2;factor=factor||0;var render=armobj.render;var skeletal_slots=render.blend_skel_slots;if(slot_1>=0)skeletal_slots[0]=slot_1;if(slot_2>=0)skeletal_slots[1]= slot_2;armobj.render.anim_mix_factor=factor};exports.get_first_skeletal_slot=function(armobj){return armobj.render.blend_skel_slots[0]};exports.get_second_skeletal_slot=function(armobj){return armobj.render.blend_skel_slots[1]};exports.mix_from_cur_pos=function(armobj,slot,time,callback){callback=callback||null;time=time||0;m_anim.mix_from_cur_pos(armobj,slot,time,callback)}}var animation_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("animation",Animation);__webpack_exports__["a"]= animation_factory},function(module,__webpack_exports__,__webpack_require__){Object.defineProperty(__webpack_exports__,"__esModule",{value:true});var __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__=__webpack_require__(32);var __WEBPACK_IMPORTED_MODULE_1__src_addons_app_js__=__webpack_require__(85);var __WEBPACK_IMPORTED_MODULE_2__src_addons_camera_anim_js__=__webpack_require__(95);var __WEBPACK_IMPORTED_MODULE_3__src_addons_fps_js__=__webpack_require__(96);var __WEBPACK_IMPORTED_MODULE_4__src_addons_gp_conf_js__= __webpack_require__(97);var __WEBPACK_IMPORTED_MODULE_5__src_addons_gyroscope_js__=__webpack_require__(98);var __WEBPACK_IMPORTED_MODULE_6__src_addons_hmd_js__=__webpack_require__(81);var __WEBPACK_IMPORTED_MODULE_7__src_addons_hmd_conf_js__=__webpack_require__(99);var __WEBPACK_IMPORTED_MODULE_8__src_addons_mixer_js__=__webpack_require__(100);var __WEBPACK_IMPORTED_MODULE_9__src_addons_mouse_js__=__webpack_require__(101);var __WEBPACK_IMPORTED_MODULE_10__src_addons_npc_ai_js__=__webpack_require__(102); var __WEBPACK_IMPORTED_MODULE_11__src_addons_preloader_js__=__webpack_require__(103);var __WEBPACK_IMPORTED_MODULE_12__src_addons_screenshooter_js__=__webpack_require__(104);var __WEBPACK_IMPORTED_MODULE_13__src_addons_storage_js__=__webpack_require__(69);var __WEBPACK_IMPORTED_MODULE_14__src_extern_anchors_js__=__webpack_require__(105);var __WEBPACK_IMPORTED_MODULE_15__src_extern_animation_js__=__webpack_require__(83);var __WEBPACK_IMPORTED_MODULE_16__src_extern_armature_js__=__webpack_require__(106); var __WEBPACK_IMPORTED_MODULE_17__src_extern_assets_js__=__webpack_require__(107);var __WEBPACK_IMPORTED_MODULE_18__src_extern_camera_js__=__webpack_require__(33);var __WEBPACK_IMPORTED_MODULE_19__src_extern_config_js__=__webpack_require__(76);var __WEBPACK_IMPORTED_MODULE_20__src_extern_constraints_js__=__webpack_require__(67);var __WEBPACK_IMPORTED_MODULE_21__src_extern_container_js__=__webpack_require__(40);var __WEBPACK_IMPORTED_MODULE_22__src_extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_23__src_extern_data_js__= __webpack_require__(77);var __WEBPACK_IMPORTED_MODULE_24__src_extern_debug_js__=__webpack_require__(78);var __WEBPACK_IMPORTED_MODULE_25__src_extern_geometry_js__=__webpack_require__(108);var __WEBPACK_IMPORTED_MODULE_26__src_extern_hud_js__=__webpack_require__(109);var __WEBPACK_IMPORTED_MODULE_27__src_extern_input_js__=__webpack_require__(49);var __WEBPACK_IMPORTED_MODULE_28__src_extern_lights_js__=__webpack_require__(110);var __WEBPACK_IMPORTED_MODULE_29__src_extern_logic_nodes_js__=__webpack_require__(111); var __WEBPACK_IMPORTED_MODULE_30__src_extern_main_js__=__webpack_require__(61);var __WEBPACK_IMPORTED_MODULE_31__src_extern_material_js__=__webpack_require__(112);var __WEBPACK_IMPORTED_MODULE_32__src_extern_math_js__=__webpack_require__(113);var __WEBPACK_IMPORTED_MODULE_33__src_extern_nla_js__=__webpack_require__(114);var __WEBPACK_IMPORTED_MODULE_34__src_extern_objects_js__=__webpack_require__(115);var __WEBPACK_IMPORTED_MODULE_35__src_extern_particles_js__=__webpack_require__(116);var __WEBPACK_IMPORTED_MODULE_36__src_extern_physics_js__= __webpack_require__(54);var __WEBPACK_IMPORTED_MODULE_37__src_extern_rgb_js__=__webpack_require__(117);var __WEBPACK_IMPORTED_MODULE_38__src_extern_scenes_js__=__webpack_require__(30);var __WEBPACK_IMPORTED_MODULE_39__src_extern_screen_js__=__webpack_require__(50);var __WEBPACK_IMPORTED_MODULE_40__src_extern_sfx_js__=__webpack_require__(82);var __WEBPACK_IMPORTED_MODULE_41__src_extern_textures_js__=__webpack_require__(118);var __WEBPACK_IMPORTED_MODULE_42__src_extern_time_js__=__webpack_require__(68); var __WEBPACK_IMPORTED_MODULE_43__src_extern_transform_js__=__webpack_require__(41);var __WEBPACK_IMPORTED_MODULE_44__src_extern_tsr_js__=__webpack_require__(80);var __WEBPACK_IMPORTED_MODULE_45__src_extern_util_js__=__webpack_require__(26);var __WEBPACK_IMPORTED_MODULE_46__src_extern_version_js__=__webpack_require__(119);var __WEBPACK_IMPORTED_MODULE_47__src_intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_48__src_libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_49__src_libs_gl_matrix_vec4_js__= __webpack_require__(7);var __WEBPACK_IMPORTED_MODULE_50__src_libs_gl_matrix_mat3_js__=__webpack_require__(27);var __WEBPACK_IMPORTED_MODULE_51__src_libs_gl_matrix_mat4_js__=__webpack_require__(21);var __WEBPACK_IMPORTED_MODULE_52__src_libs_gl_matrix_quat_js__=__webpack_require__(8);__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].app=__WEBPACK_IMPORTED_MODULE_1__src_addons_app_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].camera_anim=__WEBPACK_IMPORTED_MODULE_2__src_addons_camera_anim_js__["a"]; __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].fps=__WEBPACK_IMPORTED_MODULE_3__src_addons_fps_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].gp_conf=__WEBPACK_IMPORTED_MODULE_4__src_addons_gp_conf_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].gyroscope=__WEBPACK_IMPORTED_MODULE_5__src_addons_gyroscope_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].hmd=__WEBPACK_IMPORTED_MODULE_6__src_addons_hmd_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].hmd_conf= __WEBPACK_IMPORTED_MODULE_7__src_addons_hmd_conf_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].mixer=__WEBPACK_IMPORTED_MODULE_8__src_addons_mixer_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].mouse=__WEBPACK_IMPORTED_MODULE_9__src_addons_mouse_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].npc_ai=__WEBPACK_IMPORTED_MODULE_10__src_addons_npc_ai_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].preloader=__WEBPACK_IMPORTED_MODULE_11__src_addons_preloader_js__["a"]; __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].screenshooter=__WEBPACK_IMPORTED_MODULE_12__src_addons_screenshooter_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].storage=__WEBPACK_IMPORTED_MODULE_13__src_addons_storage_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].anchors=__WEBPACK_IMPORTED_MODULE_14__src_extern_anchors_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].animation=__WEBPACK_IMPORTED_MODULE_15__src_extern_animation_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].armature= __WEBPACK_IMPORTED_MODULE_16__src_extern_armature_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].assets=__WEBPACK_IMPORTED_MODULE_17__src_extern_assets_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].camera=__WEBPACK_IMPORTED_MODULE_18__src_extern_camera_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].config=__WEBPACK_IMPORTED_MODULE_19__src_extern_config_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].constraints=__WEBPACK_IMPORTED_MODULE_20__src_extern_constraints_js__["a"]; __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].container=__WEBPACK_IMPORTED_MODULE_21__src_extern_container_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].controls=__WEBPACK_IMPORTED_MODULE_22__src_extern_controls_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].data=__WEBPACK_IMPORTED_MODULE_23__src_extern_data_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].debug=__WEBPACK_IMPORTED_MODULE_24__src_extern_debug_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].geometry= __WEBPACK_IMPORTED_MODULE_25__src_extern_geometry_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].hud=__WEBPACK_IMPORTED_MODULE_26__src_extern_hud_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].input=__WEBPACK_IMPORTED_MODULE_27__src_extern_input_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].lights=__WEBPACK_IMPORTED_MODULE_28__src_extern_lights_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].logic_nodes=__WEBPACK_IMPORTED_MODULE_29__src_extern_logic_nodes_js__["a"]; __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].main=__WEBPACK_IMPORTED_MODULE_30__src_extern_main_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].material=__WEBPACK_IMPORTED_MODULE_31__src_extern_material_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].math=__WEBPACK_IMPORTED_MODULE_32__src_extern_math_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].nla=__WEBPACK_IMPORTED_MODULE_33__src_extern_nla_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].objects= __WEBPACK_IMPORTED_MODULE_34__src_extern_objects_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].particles=__WEBPACK_IMPORTED_MODULE_35__src_extern_particles_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].physics=__WEBPACK_IMPORTED_MODULE_36__src_extern_physics_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].rgb=__WEBPACK_IMPORTED_MODULE_37__src_extern_rgb_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].scenes=__WEBPACK_IMPORTED_MODULE_38__src_extern_scenes_js__["a"]; __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].screen=__WEBPACK_IMPORTED_MODULE_39__src_extern_screen_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].sfx=__WEBPACK_IMPORTED_MODULE_40__src_extern_sfx_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].textures=__WEBPACK_IMPORTED_MODULE_41__src_extern_textures_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].time=__WEBPACK_IMPORTED_MODULE_42__src_extern_time_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].transform= __WEBPACK_IMPORTED_MODULE_43__src_extern_transform_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].tsr=__WEBPACK_IMPORTED_MODULE_44__src_extern_tsr_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].util=__WEBPACK_IMPORTED_MODULE_45__src_extern_util_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].version=__WEBPACK_IMPORTED_MODULE_46__src_extern_version_js__["a"];__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].print=__WEBPACK_IMPORTED_MODULE_47__src_intern_print_js__["a"]; __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].vec3=__WEBPACK_IMPORTED_MODULE_48__src_libs_gl_matrix_vec3_js__;__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].vec4=__WEBPACK_IMPORTED_MODULE_49__src_libs_gl_matrix_vec4_js__;__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].mat3=__WEBPACK_IMPORTED_MODULE_50__src_libs_gl_matrix_mat3_js__;__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].mat4=__WEBPACK_IMPORTED_MODULE_51__src_libs_gl_matrix_mat4_js__;__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].quat= __WEBPACK_IMPORTED_MODULE_52__src_libs_gl_matrix_quat_js__;__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].register("vec3",function(exports,require){for(var i in __WEBPACK_IMPORTED_MODULE_48__src_libs_gl_matrix_vec3_js__)exports[i]=__WEBPACK_IMPORTED_MODULE_48__src_libs_gl_matrix_vec3_js__[i]});__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].register("vec4",function(exports,require){for(var i in __WEBPACK_IMPORTED_MODULE_49__src_libs_gl_matrix_vec4_js__)exports[i]=__WEBPACK_IMPORTED_MODULE_49__src_libs_gl_matrix_vec4_js__[i]}); __WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].register("mat3",function(exports,require){for(var i in __WEBPACK_IMPORTED_MODULE_50__src_libs_gl_matrix_mat3_js__)exports[i]=__WEBPACK_IMPORTED_MODULE_50__src_libs_gl_matrix_mat3_js__[i]});__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].register("mat4",function(exports,require){for(var i in __WEBPACK_IMPORTED_MODULE_51__src_libs_gl_matrix_mat4_js__)exports[i]=__WEBPACK_IMPORTED_MODULE_51__src_libs_gl_matrix_mat4_js__[i]});__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"].register("quat", function(exports,require){for(var i in __WEBPACK_IMPORTED_MODULE_52__src_libs_gl_matrix_quat_js__)exports[i]=__WEBPACK_IMPORTED_MODULE_52__src_libs_gl_matrix_quat_js__[i]});__webpack_exports__["default"]=__WEBPACK_IMPORTED_MODULE_0__src_util_b4w_js__["a"]},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__extern_camera_js__=__webpack_require__(33);var __WEBPACK_IMPORTED_MODULE_2__extern_config_js__= __webpack_require__(76);var __WEBPACK_IMPORTED_MODULE_3__extern_constraints_js__=__webpack_require__(67);var __WEBPACK_IMPORTED_MODULE_4__extern_container_js__=__webpack_require__(40);var __WEBPACK_IMPORTED_MODULE_5__extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_6__extern_data_js__=__webpack_require__(77);var __WEBPACK_IMPORTED_MODULE_7__extern_debug_js__=__webpack_require__(78);var __WEBPACK_IMPORTED_MODULE_8__extern_input_js__=__webpack_require__(49);var __WEBPACK_IMPORTED_MODULE_9__extern_main_js__= __webpack_require__(61);var __WEBPACK_IMPORTED_MODULE_10__extern_physics_js__=__webpack_require__(54);var __WEBPACK_IMPORTED_MODULE_11__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_12__extern_screen_js__=__webpack_require__(50);var __WEBPACK_IMPORTED_MODULE_13__extern_scenes_js__=__webpack_require__(30);var __WEBPACK_IMPORTED_MODULE_14__extern_transform_js__=__webpack_require__(41);var __WEBPACK_IMPORTED_MODULE_15__extern_util_js__=__webpack_require__(26);var __WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__= __webpack_require__(3);function App(ns,exports){var m_cam=Object(__WEBPACK_IMPORTED_MODULE_1__extern_camera_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_2__extern_config_js__["a"])(ns);var m_cons=Object(__WEBPACK_IMPORTED_MODULE_3__extern_constraints_js__["a"])(ns);var m_cont=Object(__WEBPACK_IMPORTED_MODULE_4__extern_container_js__["a"])(ns);var m_ctl=Object(__WEBPACK_IMPORTED_MODULE_5__extern_controls_js__["a"])(ns);var m_data=Object(__WEBPACK_IMPORTED_MODULE_6__extern_data_js__["a"])(ns); var m_dbg=Object(__WEBPACK_IMPORTED_MODULE_7__extern_debug_js__["a"])(ns);var m_input=Object(__WEBPACK_IMPORTED_MODULE_8__extern_input_js__["a"])(ns);var m_main=Object(__WEBPACK_IMPORTED_MODULE_9__extern_main_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_10__extern_physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_11__intern_print_js__["a"])(ns);var m_screen=Object(__WEBPACK_IMPORTED_MODULE_12__extern_screen_js__["a"])(ns);var m_scs=Object(__WEBPACK_IMPORTED_MODULE_13__extern_scenes_js__["a"])(ns); var m_trans=Object(__WEBPACK_IMPORTED_MODULE_14__extern_transform_js__["a"])(ns);var m_util=Object(__WEBPACK_IMPORTED_MODULE_15__extern_util_js__["a"])(ns);var TARGET_KEY_ZOOM_POW1=1;var TARGET_KEY_ZOOM_POW2=.15;var TARGET_TOUCH_ZOOM_FACTOR=.03;var EYE_KEY_TRANS_FACTOR=5;var EYE_ROTATION_DECREMENT=.5;var TARGET_EYE_MOUSE_ROT_MULT_PX=.003;var TARGET_EYE_MOUSE_PAN_MULT_PX=7.5E-4;var TARGET_EYE_TOUCH_ROT_MULT_PX=.003;var TARGET_EYE_TOUCH_PAN_MULT_PX=7.5E-4;var TARGET_EYE_KEY_ROT_FACTOR=.75;var HOVER_MOUSE_PAN_MULT_PX= .003;var HOVER_MOUSE_ROT_MULT_PX=7.5E-4;var HOVER_TOUCH_PAN_MULT_PX=.003;var HOVER_TOUCH_ROT_MULT_PX=.003;var HOVER_KEY_TRANS_FACTOR=.5;var HOVER_KEY_ZOOM_FACTOR=30;var HOVER_MOUSE_TOUCH_TRANS_FACTOR=.2;var HOVER_MOUSE_ZOOM_FACTOR=2;var HOVER_TOUCH_ZOOM_FACTOR=2;var HOVER_ZOOM_FACTOR_MIN=2;var HOVER_SPEED_MIN=1;var _smooth_factor=1;var CAM_SMOOTH_ZOOM_MOUSE=.1;var CAM_SMOOTH_ZOOM_TOUCH=.15;var CAM_SMOOTH_ROT_TRANS_MOUSE=.08;var CAM_SMOOTH_ROT_TRANS_TOUCH=.12;var CHAR_HEAD_POSITION=.5;var CAM_COLL_DELTA= .25;var EPSILON_DISTANCE=.001;var EPSILON_DELTA=1E-5;var FRAME_WAITING_PER=10;var AXIS_THRESHOLD=.1;var TRANS_GMPD_KOEF=.002;var ZOOM_GMPD_KOEF=.05;var LOW_BANDWIDTH_LIMIT=1.5;var _fps_logger_elem=null;var _disable_default_pivot=false;var _disable_letter_controls=false;var _disable_zoom=false;var _element=null;var _allow_element_exit=false;var _disable_gamepad_controls=false;var _vec2_tmp=new Float32Array(2);var _vec2_tmp2=new Float32Array(2);var _vec3_tmp=new Float32Array(3);var _vec3_tmp2=new Float32Array(3); var _quat4_tmp=new Float32Array(4);var _velocity_tmp={};var _limits_tmp={};exports.init=function(options){options=options||{};var autoresize=false;var canvas_container_id=null;var callback=function(){};var error_purge_elements=null;var fps_elem_id=null;var force_container_ratio=0;var fps_wrapper_id=null;var key_pause_enabled=true;var min_capabilities=false;var pause_invisible=true;var report_init_failure=true;var sfx_mix_mode=false;var show_fps=false;var show_hud_debug_info=false;var track_container_position= false;var quality=m_cfg.get("quality");for(var opt in options)switch(opt){case "canvas_container_id":canvas_container_id=options.canvas_container_id;break;case "callback":callback=options.callback;break;case "autoresize":autoresize=options.autoresize;break;case "show_hud_debug_info":show_hud_debug_info=options.show_hud_debug_info;break;case "sfx_mix_mode":sfx_mix_mode=options.sfx_mix_mode;break;case "show_fps":show_fps=options.show_fps;break;case "track_container_position":track_container_position= options.track_container_position;m_print.error_once("track_container_position deprecated. "+"Not needed anymore. Use the container.get_coords_target_space method.");break;case "fps_wrapper_id":fps_wrapper_id=options.fps_wrapper_id;break;case "fps_elem_id":fps_elem_id=options.fps_elem_id;break;case "error_purge_elements":error_purge_elements=options.error_purge_elements;break;case "report_init_failure":report_init_failure=options.report_init_failure;break;case "pause_invisible":pause_invisible=options.pause_invisible; break;case "key_pause_enabled":key_pause_enabled=options.key_pause_enabled;break;case "force_container_ratio":force_container_ratio=options.force_container_ratio;break;case "min_capabilities":min_capabilities=options.min_capabilities;break;case "quality":quality=options.quality;break;default:m_cfg.set(opt,options[opt]);break}if(quality!=m_cfg.P_AUTO)m_cfg.set("quality",quality);var on_key_pause=function(e){if(e.keyCode==m_ctl.KEY_P)if(m_main.is_paused())m_main.resume();else m_main.pause()};if(key_pause_enabled)document.addEventListener("keydown", on_key_pause,false);m_cfg.set("show_hud_debug_info",show_hud_debug_info);m_cfg.set("sfx_mix_mode",sfx_mix_mode);var init_hud_canvas=show_hud_debug_info||sfx_mix_mode||null;var onload_cb=function(){var init_ok=setup_canvas(canvas_container_id,init_hud_canvas,report_init_failure,error_purge_elements);var canvas_elem=m_cont.get_canvas();if(!init_ok){callback(canvas_elem,false);return}var canvas_container_elem=m_cont.get_container();m_cont.resize_to_container();if(show_fps){create_fps_logger_elem(fps_elem_id, fps_wrapper_id);m_main.set_fps_callback(fps_callback)}if(pause_invisible){handle_page_visibility();handle_position_visibility()}if(force_container_ratio)m_main.append_loop_cb(function(){canvas_container_elem.style.height=canvas_container_elem.clientWidth/force_container_ratio+"px"});if(autoresize)m_main.append_loop_cb(function(){m_cont.resize_to_container()});if(track_container_position)m_main.append_loop_cb(function(){m_cont.force_offsets_updating()});if(min_capabilities)m_cfg.reset_limits();if(quality== m_cfg.P_AUTO)m_dbg.test_performance(function(time,bw){if(time==0){m_print.log("QUALITY TEST RESULT: UNSUPPORTED, using HIGH");m_cfg.apply_quality(m_cfg.P_HIGH)}else if(bwwindow.innerHeight||coords.bottom<0){if(check_paused)was_paused=m_main.is_paused();m_main.pause();check_paused=false}else if(!was_paused&&!check_paused){m_main.resume();check_paused=true}}frame_counter++};m_main.append_loop_cb(visibility_change)}function setup_canvas(canvas_container_id, init_hud_canvas,report_init_failure,purge_elements){var canvas_elem=document.createElement("canvas");var append_to=document.getElementById(canvas_container_id);if(!append_to){m_print.error('Warning: canvas container "'+canvas_container_id+'" not found, appending to body');append_to=document.body}canvas_elem.style.position="absolute";canvas_elem.style.left=0;canvas_elem.style.top=0;canvas_elem.style.width=append_to.offsetWidth+"px";canvas_elem.style.height=append_to.offsetHeight+"px";canvas_elem.width= append_to.offsetWidth*window.devicePixelRatio;canvas_elem.height=append_to.offsetHeight*window.devicePixelRatio;if(init_hud_canvas){var canvas_elem_hud=document.createElement("canvas");canvas_elem_hud.style.position="absolute";canvas_elem.style.left=0;canvas_elem.style.top=0;canvas_elem_hud.style.pointerEvents="none"}else var canvas_elem_hud=null;append_to.appendChild(canvas_elem);if(!m_main.init(canvas_elem,canvas_elem_hud)){if(report_init_failure)report_app_error("Browser could not initialize WebGL", "For more info visit","https://www.blend4web.com/doc/en/problems_and_solutions.html#problems-upon-startup",purge_elements);return false}if(canvas_elem_hud)m_cont.insert_to_container(canvas_elem_hud,"LAST");return true}function create_fps_logger_elem(fps_elem_id,fps_wrapper_id){if(fps_elem_id){if(fps_wrapper_id)document.getElementById(fps_wrapper_id).style.display="block";_fps_logger_elem=document.getElementById(fps_elem_id)}else{_fps_logger_elem=document.createElement("div");_fps_logger_elem.innerHTML= 0;_fps_logger_elem.style.cssText="position:absolute;"+"font-family: Arial, sans-serif;"+"top: 20px;"+"right: 20px;"+"text-shadow: 0px 0px 6px #000;"+"font-size: 40px;"+"line-height: 50px;"+"font-weight: bold;"+"color: #fff;";m_cont.insert_to_container(_fps_logger_elem,"JUST_AFTER_CANVAS")}}function fps_callback(fps,phy_fps){var fps_str=String(fps);if(phy_fps)fps_str+="/"+String(phy_fps);_fps_logger_elem.innerHTML=fps_str}function elem_cloned(elem_id){var target=document.getElementById(elem_id);var new_element= target.cloneNode(true);target.parentNode.replaceChild(new_element,target);return new_element}exports.set_onclick=function(elem_id,callback){var elem=elem_cloned(elem_id);elem.addEventListener("mouseup",function(e){callback(elem.value)},false)};exports.set_onchange=function(elem_id,callback){var elem=elem_cloned(elem_id);elem.addEventListener("change",function(e){var checked=elem.checked;var rslt=checked!=undefined?checked:elem.value;callback(rslt)},false)};exports.set_onkeypress=function(elem_id, callback){var elem=elem_cloned(elem_id);elem.addEventListener("keypress",function(e){callback(e.keyCode,elem.value)},false)};function trans_hover_cam_horiz_local(camobj,dir,fact){var dist=Math.max(m_cam.hover_get_distance(camobj),HOVER_SPEED_MIN);var obj_quat=m_trans.get_rotation(camobj,_quat4_tmp);var abs_dir=m_util.quat_to_dir(obj_quat,dir,_vec3_tmp);abs_dir[2]=0;__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__["normalize"](abs_dir,abs_dir);__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__["scale"](abs_dir, dist*fact,abs_dir);var obj_trans=m_trans.get_translation(camobj,_vec3_tmp2);__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__["add"](obj_trans,abs_dir,obj_trans);m_cam.set_translation(camobj,obj_trans)}function zoom_hover_cam(camobj,fact){var limits=m_cam.hover_get_vertical_limits(camobj,_limits_tmp);if(limits.up!=limits.down){var y_angle=m_cam.get_camera_angles(camobj,_vec2_tmp2)[1];var angle_factor=(limits.down-y_angle)/(limits.down-limits.up);var dist_limits=m_cam.hover_get_distance_limits(camobj, _limits_tmp);angle_factor=Math.max(angle_factor,HOVER_ZOOM_FACTOR_MIN/dist_limits.max);m_cam.rotate_camera(camobj,0,angle_factor*fact)}}function trans_eye_cam_local(camobj,fact_x,fact_y,fact_z){fact_x*=EYE_KEY_TRANS_FACTOR;fact_y*=EYE_KEY_TRANS_FACTOR;fact_z*=EYE_KEY_TRANS_FACTOR;m_trans.move_local(camobj,fact_x,fact_y,fact_z)}function calc_fact_from(fact_to){return fact_to/(1-fact_to)}function trans_targ_cam_local(camobj,fact_view,elapsed){var dist=m_cam.target_get_distance(camobj);var abs_fact_view= Math.abs(fact_view);var fact=Math.pow(abs_fact_view*elapsed,TARGET_KEY_ZOOM_POW1-Math.pow(abs_fact_view*elapsed,TARGET_KEY_ZOOM_POW2));if(fact_view<0)if(dist>EPSILON_DISTANCE)fact_view=-dist*fact;else fact_view=0;else fact_view=dist*calc_fact_from(fact);m_trans.move_local(camobj,0,0,fact_view)}function get_dest_mouse_touch(obj,value,fact,dist,dest_value){var t_mult=dist*fact;for(var i=value;i>0;--i){dist+=t_mult;dest_value+=t_mult;t_mult=dist*fact}return dest_value}function get_dest_zoom(obj,value, velocity_zoom,dest_value,dev_fact,use_pivot){if(use_pivot){var cam_pivot=m_cam.target_get_pivot(obj,_vec3_tmp);var cam_eye=m_cam.get_translation(obj);var dist=__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__["dist"](cam_pivot,cam_eye)+dest_value;if(value>0)dest_value=get_dest_mouse_touch(obj,value,-velocity_zoom,dist,dest_value);else dest_value=get_dest_mouse_touch(obj,-value,calc_fact_from(velocity_zoom),dist,dest_value)}else dest_value-=value*dev_fact*velocity_zoom;return dest_value}exports.enable_camera_controls= enable_camera_controls;function enable_camera_controls(disable_default_pivot,disable_letter_controls,disable_zoom,element,allow_element_exit,disable_gamepad_controls){_disable_default_pivot=disable_default_pivot;_disable_letter_controls=disable_letter_controls;_disable_zoom=disable_zoom;_element=element;_allow_element_exit=allow_element_exit;_disable_gamepad_controls=disable_gamepad_controls;var obj=m_scs.get_active_camera();enable_cam_controls_resetting(obj);var use_pivot=false;var character=null; var use_hover=false;switch(m_cam.get_move_style(obj)){case m_cam.MS_TARGET_CONTROLS:use_pivot=!disable_default_pivot;break;case m_cam.MS_EYE_CONTROLS:character=m_scs.get_first_character();break;case m_cam.MS_STATIC:return;case m_cam.MS_HOVER_CONTROLS:use_hover=true;break}var velocity=m_cam.get_velocities(obj,_velocity_tmp);var elapsed=m_ctl.create_elapsed_sensor();if(m_phy.has_simulated_physics(obj)){var collision=m_ctl.create_collision_sensor(obj,null,true);var collision_cb=function(obj,id,pulse){var coll_dist= m_ctl.get_sensor_payload(obj,id,0).coll_dist;if(coll_dist<0){var coll_norm=m_ctl.get_sensor_payload(obj,id,0).coll_norm;var recover_offset=_vec3_tmp;__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__["scale"](coll_norm,-CAM_COLL_DELTA*coll_dist,recover_offset);var trans=m_trans.get_translation(obj,_vec3_tmp2);__WEBPACK_IMPORTED_MODULE_16__libs_gl_matrix_vec3_js__["add"](trans,recover_offset,trans);m_trans.set_translation_v(obj,trans)}};m_ctl.create_sensor_manifold(obj,"CAMERA_COLLISION",m_ctl.CT_POSITIVE, [collision],null,collision_cb)}if(character){var trans=m_trans.get_translation(obj);var quat=m_trans.get_rotation(obj);var char_quat=m_util.cam_quat_to_mesh_quat(quat);trans[2]-=CHAR_HEAD_POSITION;m_phy.set_transform(character,trans,char_quat);m_cons.append_stiff_trans(obj,character,[0,0,.5]);var char_dir=new Float32Array(2);var is_fly=true;m_phy.set_character_move_type(character,m_phy.CM_FLY);var move_type_cb=function(){is_fly=!is_fly;m_phy.set_character_move_type(character,is_fly?m_phy.CM_FLY:m_phy.CM_WALK)}; m_ctl.create_kb_sensor_manifold(obj,"TOGGLE_CHAR_MOVE_TYPE",m_ctl.CT_SHOT,m_ctl.KEY_C,move_type_cb)}var key_cb=function(obj,id,pulse){if(pulse==1){var elapsed=m_ctl.get_sensor_value(obj,id,0);m_cam.get_velocities(obj,velocity);switch(id){case "FORWARD":if(character)char_dir[0]=1;else if(use_hover){var hover_angle=m_cam.get_camera_angles(obj,_vec2_tmp2)[1];var axis=Math.abs(hover_angle)>=Math.PI/4?m_util.AXIS_Y:m_util.AXIS_MZ;trans_hover_cam_horiz_local(obj,axis,velocity.trans*HOVER_KEY_TRANS_FACTOR* elapsed)}else if(use_pivot)trans_targ_cam_local(obj,-velocity.zoom,elapsed);else trans_eye_cam_local(obj,0,0,-velocity.trans*elapsed);break;case "BACKWARD":if(character)char_dir[0]=-1;else if(use_hover){var hover_angle=m_cam.get_camera_angles(obj,_vec2_tmp2)[1];var axis=Math.abs(hover_angle)>=Math.PI/4?m_util.AXIS_MY:m_util.AXIS_Z;trans_hover_cam_horiz_local(obj,axis,velocity.trans*HOVER_KEY_TRANS_FACTOR*elapsed)}else if(use_pivot)trans_targ_cam_local(obj,velocity.zoom,elapsed);else trans_eye_cam_local(obj, 0,0,velocity.trans*elapsed);break;case "UP":if(use_hover)zoom_hover_cam(obj,-velocity.zoom*HOVER_KEY_ZOOM_FACTOR*elapsed);else if(!character)trans_eye_cam_local(obj,0,velocity.trans*elapsed,0);break;case "DOWN":if(use_hover)zoom_hover_cam(obj,velocity.zoom*HOVER_KEY_ZOOM_FACTOR*elapsed);else if(!character)trans_eye_cam_local(obj,0,-velocity.trans*elapsed,0);break;case "LEFT":if(character)char_dir[1]=1;else if(use_hover)trans_hover_cam_horiz_local(obj,m_util.AXIS_MX,velocity.trans*HOVER_KEY_TRANS_FACTOR* elapsed);else trans_eye_cam_local(obj,-velocity.trans*elapsed,0,0);break;case "RIGHT":if(character)char_dir[1]=-1;else if(use_hover)trans_hover_cam_horiz_local(obj,m_util.AXIS_X,velocity.trans*HOVER_KEY_TRANS_FACTOR*elapsed);else trans_eye_cam_local(obj,velocity.trans*elapsed,0,0);break;case "ROT_LEFT":if(use_pivot)m_cam.rotate_camera(obj,-velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed,0);else m_cam.rotate_camera(obj,velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed,0);break;case "ROT_RIGHT":if(use_pivot)m_cam.rotate_camera(obj, velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed,0);else m_cam.rotate_camera(obj,-velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed,0);break;case "ROT_UP":if(use_pivot)m_cam.rotate_camera(obj,0,-velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed);else m_cam.rotate_camera(obj,0,velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed);break;case "ROT_DOWN":if(use_pivot)m_cam.rotate_camera(obj,0,velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed);else m_cam.rotate_camera(obj,0,-velocity.rot*TARGET_EYE_KEY_ROT_FACTOR*elapsed); break;default:break}}else switch(id){case "FORWARD":case "BACKWARD":if(character)char_dir[0]=0;break;case "LEFT":case "RIGHT":if(character)char_dir[1]=0;break}if(character){m_phy.set_character_move_dir(character,char_dir[0],char_dir[1]);var angles=m_cam.get_camera_angles_char(obj,_vec2_tmp);m_phy.set_character_rotation_h(character,angles[0]);m_phy.set_character_vert_move_dir_angle(character,angles[1])}};var key_w,key_s,key_a,key_d,key_r,key_f,gmpd_btn_6,gmpd_btn_7;var lh_axis,lv_axis,rh_axis,rv_axis; if(!disable_gamepad_controls){var gmpd_indices=m_input.check_enable_gamepad_indices();if(gmpd_indices.length)var gamepad_id=gmpd_indices[gmpd_indices.length-1];else var gamepad_id=0;gmpd_btn_6=m_ctl.create_gamepad_btn_sensor(m_input.GMPD_BUTTON_6,gamepad_id);gmpd_btn_7=m_ctl.create_gamepad_btn_sensor(m_input.GMPD_BUTTON_7,gamepad_id);lh_axis=m_ctl.create_gamepad_axis_sensor(m_input.GMPD_AXIS_0,gmpd_indices);lv_axis=m_ctl.create_gamepad_axis_sensor(m_input.GMPD_AXIS_1,gmpd_indices);rh_axis=m_ctl.create_gamepad_axis_sensor(m_input.GMPD_AXIS_2, gmpd_indices);rv_axis=m_ctl.create_gamepad_axis_sensor(m_input.GMPD_AXIS_3,gmpd_indices)}else gmpd_btn_6=gmpd_btn_7=lh_axis=lv_axis=rh_axis=rv_axis=m_ctl.create_custom_sensor(0);if(!disable_letter_controls){key_w=m_ctl.create_keyboard_sensor(m_ctl.KEY_W);key_s=m_ctl.create_keyboard_sensor(m_ctl.KEY_S);key_a=m_ctl.create_keyboard_sensor(m_ctl.KEY_A);key_d=m_ctl.create_keyboard_sensor(m_ctl.KEY_D);key_r=m_ctl.create_keyboard_sensor(m_ctl.KEY_R);key_f=m_ctl.create_keyboard_sensor(m_ctl.KEY_F)}else key_w= key_s=key_a=key_d=key_r=key_f=m_ctl.create_custom_sensor(0);var key_up=m_ctl.create_keyboard_sensor(m_ctl.KEY_UP);var key_down=m_ctl.create_keyboard_sensor(m_ctl.KEY_DOWN);var key_left=m_ctl.create_keyboard_sensor(m_ctl.KEY_LEFT);var key_right=m_ctl.create_keyboard_sensor(m_ctl.KEY_RIGHT);var key_triple_logic=function(s){return s[0]&&(s[1]||s[2]||s[3])};var key_double_pos_logic=function(s){return s[0]&&(s[1]||s[2]>AXIS_THRESHOLD)};var key_double_neg_logic=function(s){return s[0]&&(s[1]||s[2]<-AXIS_THRESHOLD)}; var key_triple_pos_logic=function(s){return s[0]&&(s[1]||s[2]||s[3]>AXIS_THRESHOLD)};var key_triple_neg_logic=function(s){return s[0]&&(s[1]||s[2]||s[3]<-AXIS_THRESHOLD)};if(!use_hover){m_ctl.create_sensor_manifold(obj,"FORWARD",m_ctl.CT_CONTINUOUS,[elapsed,key_w,lv_axis],key_double_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"BACKWARD",m_ctl.CT_CONTINUOUS,[elapsed,key_s,lv_axis],key_double_pos_logic,key_cb)}if(use_pivot){m_ctl.create_sensor_manifold(obj,"ROT_UP",m_ctl.CT_CONTINUOUS,[elapsed, key_up,key_r,rv_axis],key_triple_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_DOWN",m_ctl.CT_CONTINUOUS,[elapsed,key_down,key_f,rv_axis],key_triple_pos_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_LEFT",m_ctl.CT_CONTINUOUS,[elapsed,key_left,key_a,rh_axis],key_triple_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_RIGHT",m_ctl.CT_CONTINUOUS,[elapsed,key_right,key_d,rh_axis],key_triple_pos_logic,key_cb)}else if(use_hover){m_ctl.create_sensor_manifold(obj,"LEFT",m_ctl.CT_CONTINUOUS, [elapsed,key_left,key_a,lh_axis],key_triple_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"RIGHT",m_ctl.CT_CONTINUOUS,[elapsed,key_right,key_d,lh_axis],key_triple_pos_logic,key_cb);m_ctl.create_sensor_manifold(obj,"FORWARD",m_ctl.CT_CONTINUOUS,[elapsed,key_up,key_w,lv_axis],key_triple_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"BACKWARD",m_ctl.CT_CONTINUOUS,[elapsed,key_down,key_s,lv_axis],key_triple_pos_logic,key_cb);m_ctl.create_sensor_manifold(obj,"UP",m_ctl.CT_CONTINUOUS,[elapsed, key_f,rv_axis],key_double_pos_logic,key_cb);m_ctl.create_sensor_manifold(obj,"DOWN",m_ctl.CT_CONTINUOUS,[elapsed,key_r,rv_axis],key_double_neg_logic,key_cb)}else{m_ctl.create_sensor_manifold(obj,"UP",m_ctl.CT_CONTINUOUS,[elapsed,key_r,gmpd_btn_6],key_triple_logic,key_cb);m_ctl.create_sensor_manifold(obj,"DOWN",m_ctl.CT_CONTINUOUS,[elapsed,key_f,gmpd_btn_7],key_triple_logic,key_cb);m_ctl.create_sensor_manifold(obj,"LEFT",m_ctl.CT_CONTINUOUS,[elapsed,key_a,lh_axis],key_double_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj, "RIGHT",m_ctl.CT_CONTINUOUS,[elapsed,key_d,lh_axis],key_double_pos_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_UP",m_ctl.CT_CONTINUOUS,[elapsed,key_up,rv_axis],key_double_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_DOWN",m_ctl.CT_CONTINUOUS,[elapsed,key_down,rv_axis],key_double_pos_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_LEFT",m_ctl.CT_CONTINUOUS,[elapsed,key_left,rh_axis],key_double_neg_logic,key_cb);m_ctl.create_sensor_manifold(obj,"ROT_RIGHT",m_ctl.CT_CONTINUOUS, [elapsed,key_right,rh_axis],key_double_pos_logic,key_cb)}if(!disable_zoom){var dest_zoom_mouse=0;var mouse_wheel=m_ctl.create_mouse_wheel_sensor(element);var dest_zoom_touch=0;var touch_zoom=m_ctl.create_touch_zoom_sensor(element);var mouse_wheel_cb=function(obj,id,pulse){if(pulse==1){var value=m_ctl.get_sensor_value(obj,id,0);m_cam.get_velocities(obj,velocity);if(use_pivot||use_hover)dest_zoom_mouse=get_dest_zoom(obj,value,velocity.zoom,dest_zoom_mouse,HOVER_MOUSE_ZOOM_FACTOR,use_pivot);else{var factor= value*velocity.zoom;velocity.trans*=1+factor;m_cam.set_velocities(obj,velocity)}}};m_ctl.create_sensor_manifold(obj,"MOUSE_WHEEL",m_ctl.CT_LEVEL,[mouse_wheel],null,mouse_wheel_cb);var touch_zoom_cb=function(obj,id,pulse,param){if(pulse==1){var value=m_ctl.get_sensor_value(obj,id,0);m_cam.get_velocities(obj,velocity);if(m_ctl.get_sensor_payload(obj,id,0)===m_ctl.PL_MULTITOUCH_MOVE_ZOOM)dest_zoom_touch=get_dest_zoom(obj,value,velocity.zoom*TARGET_TOUCH_ZOOM_FACTOR,dest_zoom_touch,HOVER_TOUCH_ZOOM_FACTOR, use_pivot)}};m_ctl.create_sensor_manifold(obj,"TOUCH_ZOOM",m_ctl.CT_LEVEL,[touch_zoom],null,touch_zoom_cb);var zoom_interp_cb=function(obj,id,pulse){if(use_pivot||use_hover)if(Math.abs(dest_zoom_mouse)>EPSILON_DELTA||Math.abs(dest_zoom_touch)>EPSILON_DELTA){var value=m_ctl.get_sensor_value(obj,id,0);var zoom_mouse=m_util.smooth(dest_zoom_mouse,0,value,smooth_coeff_zoom_mouse());dest_zoom_mouse-=zoom_mouse;var zoom_touch=m_util.smooth(dest_zoom_touch,0,value,smooth_coeff_zoom_touch());dest_zoom_touch-= zoom_touch;if(use_hover)zoom_hover_cam(obj,-(zoom_mouse+zoom_touch));else{var res_dist=m_cam.target_get_distance(obj)+zoom_mouse+zoom_touch;res_dist=Math.max(res_dist,EPSILON_DISTANCE);m_cam.target_set_distance(obj,res_dist)}}else{dest_zoom_mouse=0;dest_zoom_touch=0}};m_ctl.create_sensor_manifold(obj,"ZOOM_INTERPOL",m_ctl.CT_POSITIVE,[elapsed],null,zoom_interp_cb)}var dest_x_mouse=0;var dest_y_mouse=0;var dest_pan_x_mouse=0;var dest_pan_y_mouse=0;var mouse_cb=function(obj,id,pulse,param){if(pulse== 1){var value=m_ctl.get_sensor_value(obj,id,1);m_cam.get_velocities(obj,velocity);if(!use_hover){var left_mult=TARGET_EYE_MOUSE_ROT_MULT_PX*velocity.rot;var right_mult=TARGET_EYE_MOUSE_PAN_MULT_PX*velocity.trans}else{var left_mult=HOVER_MOUSE_PAN_MULT_PX*velocity.trans;var right_mult=HOVER_MOUSE_ROT_MULT_PX*velocity.rot}if(m_ctl.get_sensor_payload(obj,id,0).which===1){dest_x_mouse+=param=="X"?-value*left_mult:0;dest_y_mouse+=param=="Y"?-value*left_mult:0}else if(m_ctl.get_sensor_payload(obj,id,0).which=== 2||m_ctl.get_sensor_payload(obj,id,0).which===3){dest_pan_x_mouse+=param=="X"?-value*right_mult:0;dest_pan_y_mouse+=param=="Y"?-value*right_mult:0}}};var dest_pan_x_gmpd=0;var dest_pan_y_gmpd=0;if(!disable_gamepad_controls){var gmpd_panning_x_pos_cb=function(obj,id,pulse){m_cam.get_velocities(obj,velocity);dest_pan_x_gmpd+=velocity.trans*TRANS_GMPD_KOEF};var gmpd_panning_y_pos_cb=function(obj,id,pulse){m_cam.get_velocities(obj,velocity);dest_pan_y_gmpd+=velocity.zoom*ZOOM_GMPD_KOEF};var gmpd_panning_x_neg_cb= function(obj,id,pulse){m_cam.get_velocities(obj,velocity);dest_pan_x_gmpd-=velocity.trans*TRANS_GMPD_KOEF};var gmpd_panning_y_neg_cb=function(obj,id,pulse){m_cam.get_velocities(obj,velocity);dest_pan_y_gmpd-=velocity.zoom*ZOOM_GMPD_KOEF};if(use_pivot){m_ctl.create_sensor_manifold(obj,"GMPD_PAN_Y_POS",m_ctl.CT_CONTINUOUS,[gmpd_btn_6],null,gmpd_panning_y_pos_cb);m_ctl.create_sensor_manifold(obj,"GMPD_PAN_Y_NEG",m_ctl.CT_CONTINUOUS,[gmpd_btn_7],null,gmpd_panning_y_neg_cb);m_ctl.create_sensor_manifold(obj, "GMPD_PAN_X_POS",m_ctl.CT_CONTINUOUS,[lh_axis],function(s){return s[0]<-AXIS_THRESHOLD},gmpd_panning_x_neg_cb);m_ctl.create_sensor_manifold(obj,"GMPD_PAN_X_NEG",m_ctl.CT_CONTINUOUS,[lh_axis],function(s){return s[0]>AXIS_THRESHOLD},gmpd_panning_x_pos_cb)}else if(use_hover){m_ctl.create_sensor_manifold(obj,"GMPD_PAN_X_POS",m_ctl.CT_CONTINUOUS,[rh_axis],function(s){return s[0]<-AXIS_THRESHOLD},gmpd_panning_x_neg_cb);m_ctl.create_sensor_manifold(obj,"GMPD_PAN_X_NEG",m_ctl.CT_CONTINUOUS,[rh_axis],function(s){return s[0]> AXIS_THRESHOLD},gmpd_panning_x_pos_cb)}}if(allow_element_exit){var mouse_move_x=m_ctl.create_mouse_move_sensor("X",window);var mouse_move_y=m_ctl.create_mouse_move_sensor("Y",window);var mouse_down_c=m_ctl.create_mouse_click_sensor(element);var mouse_down_w=m_ctl.create_mouse_click_sensor(window);var element_exit_state=false;var element_exit_logic=function(s){if(s[2])element_exit_state=true;else if(!s[0])element_exit_state=false;return element_exit_state&&s[0]};m_ctl.create_sensor_manifold(obj,"MOUSE_X", m_ctl.CT_POSITIVE,[mouse_down_w,mouse_move_x,mouse_down_c],element_exit_logic,mouse_cb,"X");m_ctl.create_sensor_manifold(obj,"MOUSE_Y",m_ctl.CT_POSITIVE,[mouse_down_w,mouse_move_y,mouse_down_c],element_exit_logic,mouse_cb,"Y");var device=m_input.get_device_by_type_element(m_input.DEVICE_MOUSE,window);m_input.switch_prevent_default(device,false)}else{var mouse_move_x=m_ctl.create_mouse_move_sensor("X",element);var mouse_move_y=m_ctl.create_mouse_move_sensor("Y",element);var mouse_down=m_ctl.create_mouse_click_sensor(element); m_ctl.create_sensor_manifold(obj,"MOUSE_X",m_ctl.CT_POSITIVE,[mouse_down,mouse_move_x],null,mouse_cb,"X");m_ctl.create_sensor_manifold(obj,"MOUSE_Y",m_ctl.CT_POSITIVE,[mouse_down,mouse_move_y],null,mouse_cb,"Y")}var dest_x_touch=0;var dest_y_touch=0;var dest_pan_x_touch=0;var dest_pan_y_touch=0;var touch_move_x=m_ctl.create_touch_move_sensor("X",element);var touch_move_y=m_ctl.create_touch_move_sensor("Y",element);var touch_cb=function(obj,id,pulse,param){if(pulse==1){m_cam.get_velocities(obj,velocity); if(use_hover)var r_mult=HOVER_TOUCH_PAN_MULT_PX*velocity.trans;else var r_mult=TARGET_EYE_TOUCH_ROT_MULT_PX*velocity.rot;var value=m_ctl.get_sensor_value(obj,id,0);if(m_ctl.get_sensor_payload(obj,id,0).gesture===m_ctl.PL_SINGLE_TOUCH_MOVE){dest_x_touch+=param=="X"?-value*r_mult:0;dest_y_touch+=param=="Y"?-value*r_mult:0}else if(m_ctl.get_sensor_payload(obj,id,0).gesture===m_ctl.PL_MULTITOUCH_MOVE_PAN){if(!use_hover)var pan_mult=TARGET_EYE_TOUCH_PAN_MULT_PX*velocity.trans;else var pan_mult=HOVER_TOUCH_ROT_MULT_PX* velocity.rot;dest_pan_x_touch+=param=="X"?-value*pan_mult:0;dest_pan_y_touch+=param=="Y"?-value*pan_mult:0}}};m_ctl.create_sensor_manifold(obj,"TOUCH_X",m_ctl.CT_POSITIVE,[touch_move_x],null,touch_cb,"X");m_ctl.create_sensor_manifold(obj,"TOUCH_Y",m_ctl.CT_POSITIVE,[touch_move_y],null,touch_cb,"Y");var rot_trans_interp_cb=function(obj,id,pulse){if(Math.abs(dest_x_mouse)>EPSILON_DELTA||Math.abs(dest_y_mouse)>EPSILON_DELTA||Math.abs(dest_x_touch)>EPSILON_DELTA||Math.abs(dest_y_touch)>EPSILON_DELTA|| Math.abs(dest_pan_x_mouse)>EPSILON_DELTA||Math.abs(dest_pan_y_mouse)>EPSILON_DELTA||Math.abs(dest_pan_x_touch)>EPSILON_DELTA||Math.abs(dest_pan_y_touch)>EPSILON_DELTA||Math.abs(dest_pan_x_gmpd)>EPSILON_DELTA||Math.abs(dest_pan_y_gmpd)>EPSILON_DELTA){var value=m_ctl.get_sensor_value(obj,id,0);var x_mouse=m_util.smooth(dest_x_mouse,0,value,smooth_coeff_rot_trans_mouse());var y_mouse=m_util.smooth(dest_y_mouse,0,value,smooth_coeff_rot_trans_mouse());dest_x_mouse-=x_mouse;dest_y_mouse-=y_mouse;var x_touch= m_util.smooth(dest_x_touch,0,value,smooth_coeff_rot_trans_touch());var y_touch=m_util.smooth(dest_y_touch,0,value,smooth_coeff_rot_trans_touch());dest_x_touch-=x_touch;dest_y_touch-=y_touch;var trans_x_mouse=m_util.smooth(dest_pan_x_mouse,0,value,smooth_coeff_rot_trans_mouse());var trans_y_mouse=m_util.smooth(dest_pan_y_mouse,0,value,smooth_coeff_rot_trans_mouse());dest_pan_x_mouse-=trans_x_mouse;dest_pan_y_mouse-=trans_y_mouse;var trans_x_touch=m_util.smooth(dest_pan_x_touch,0,value,smooth_coeff_rot_trans_touch()); var trans_y_touch=m_util.smooth(dest_pan_y_touch,0,value,smooth_coeff_rot_trans_touch());dest_pan_x_touch-=trans_x_touch;dest_pan_y_touch-=trans_y_touch;var trans_x_gmpd=m_util.smooth(dest_pan_x_gmpd,0,value,smooth_coeff_rot_trans_mouse());var trans_y_gmpd=m_util.smooth(dest_pan_y_gmpd,0,value,smooth_coeff_rot_trans_mouse());dest_pan_x_gmpd-=trans_x_gmpd;dest_pan_y_gmpd-=trans_y_gmpd;if(use_pivot){m_cam.rotate_camera(obj,x_mouse+x_touch,y_mouse+y_touch);var dist=m_cam.target_get_distance(obj);m_cam.target_pan_pivot(obj, dist*(trans_x_mouse+trans_x_touch+trans_x_gmpd),dist*(trans_y_mouse+trans_y_touch+trans_y_gmpd))}else if(use_hover){if(x_mouse+x_touch)trans_hover_cam_horiz_local(obj,m_util.AXIS_X,(x_mouse+x_touch)*HOVER_MOUSE_TOUCH_TRANS_FACTOR);if(y_mouse+y_touch){var hover_angle=m_cam.get_camera_angles(obj,_vec2_tmp2)[1];var axis=Math.abs(hover_angle)>Math.PI/4?m_util.AXIS_MY:m_util.AXIS_Z;trans_hover_cam_horiz_local(obj,axis,(y_mouse+y_touch)*HOVER_MOUSE_TOUCH_TRANS_FACTOR)}m_cam.rotate_camera(obj,trans_x_mouse+ trans_x_touch+trans_x_gmpd,0)}else{m_cam.rotate_camera(obj,(x_mouse+x_touch)*EYE_ROTATION_DECREMENT,(y_mouse+y_touch)*EYE_ROTATION_DECREMENT);if(character){var angles=m_cam.get_camera_angles_char(obj,_vec2_tmp);m_phy.set_character_rotation_h(character,angles[0]);m_phy.set_character_vert_move_dir_angle(character,angles[1])}}}};m_ctl.create_sensor_manifold(obj,"ROT_TRANS_INTERPOL",m_ctl.CT_POSITIVE,[elapsed],null,rot_trans_interp_cb);m_ctl.create_kb_sensor_manifold(obj,"DEC_STEREO_DIST",m_ctl.CT_SHOT, m_ctl.KEY_LEFT_SQ_BRACKET,function(obj,id,pulse){var dist=m_cam.get_stereo_distance(obj);m_cam.set_stereo_distance(obj,.9*dist)});m_ctl.create_kb_sensor_manifold(obj,"INC_STEREO_DIST",m_ctl.CT_SHOT,m_ctl.KEY_RIGHT_SQ_BRACKET,function(obj,id,pulse){var dist=m_cam.get_stereo_distance(obj);m_cam.set_stereo_distance(obj,1.1*dist)})}function enable_cam_controls_resetting(cam){var prev_ms=m_cam.get_move_style(cam);var move_style_cb=function(){var curr_ms=m_cam.get_move_style(cam);var is_changed=curr_ms!= prev_ms;prev_ms=curr_ms;return is_changed};var cb_sensor=m_ctl.create_callback_sensor(move_style_cb);function reset_controls_cb(cam,id,pulse){disable_camera_controls();enable_camera_controls(_disable_default_pivot,_disable_letter_controls,_disable_zoom,_element,_allow_element_exit,_disable_gamepad_controls)}m_ctl.create_sensor_manifold(cam,"CHANGE_MOVE_STYLE",m_ctl.CT_POSITIVE,[cb_sensor],null,reset_controls_cb)}exports.disable_camera_controls=disable_camera_controls;function disable_camera_controls(){var cam= m_scs.get_active_camera();if(m_ctl.check_sensor_manifold(cam,"TOGGLE_CHAR_MOVE_TYPE")&&m_scs.get_first_character())m_cons.remove(cam);var cam_std_manifolds=["FORWARD","BACKWARD","ROT_UP","ROT_DOWN","ROT_LEFT","ROT_RIGHT","UP","DOWN","LEFT","RIGHT","MOUSE_WHEEL","TOUCH_ZOOM","ZOOM_INTERPOL","MOUSE_X","MOUSE_Y","TOUCH_X","TOUCH_Y","ROT_TRANS_INTERPOL","CHANGE_MOVE_STYLE","TOGGLE_CHAR_MOVE_TYPE"];for(var i=0;i'+link.replace("https://www.","")+"";elem.appendChild(top_elem);elem.appendChild(bottom_elem);document.body.appendChild(elem)}exports.get_url_params=function(allow_param_array){allow_param_array=!!allow_param_array;var url=decodeURIComponent(location.href.toString());if(url.indexOf("?")==-1)return null;var params=url.split("?")[1].split("&");var out={};for(var i=0;i1){var prop_val=param[1];if(allow_param_array)if(prop_name in out)out[prop_name].push(prop_val);else out[prop_name]=[prop_val];else out[prop_name]=prop_val}else if(allow_param_array){if(!(prop_name in out))out[prop_name]=[]}else out[prop_name]=""}return out};exports.css_animate=function(elem,prop,from,to,timeout,opt_prefix,opt_suffix,opt_callback){if(!elem||!prop||!isFinite(from)||!isFinite(to)||!isFinite(timeout))return;opt_prefix=opt_prefix||"";opt_suffix= opt_suffix||"";opt_callback=opt_callback||function(){};var elem_style=elem.style;var vendor_prop=prop.charAt(0).toUpperCase()+prop.slice(1);if(elem_style[prop]!=undefined);else if(elem_style["webkit"+vendor_prop]!=undefined)prop="webkit"+vendor_prop;else if(elem_style["ms"+vendor_prop]!=undefined)prop="ms"+vendor_prop;else if(elem_style["moz"+vendor_prop]!=undefined)prop="moz"+vendor_prop;else return;function css_anim_cb(val){if(!elem)return;elem_style[prop]=opt_prefix+val+opt_suffix;if(from>to&& val<=to||from=to){elem_style[prop]=opt_prefix+to+opt_suffix;opt_callback()}}animate(elem,from,to,timeout,css_anim_cb)};exports.attr_animate=function(elem,attr_name,from,to,timeout,opt_callback){if(!elem||!attr_name||!isFinite(from)||!isFinite(to)||!isFinite(timeout))return;opt_callback=opt_callback||function(){};function attr_anim_cb(val){if(!elem)return;if(val>=0)elem.setAttribute(attr_name,val);if(from>to&&val<=to||from=to){elem.setAttribute(attr_name,to);opt_callback()}}animate(elem, from,to,timeout,attr_anim_cb)};function animate(elem,from,to,timeout,anim_cb){var start=performance.now();function cb(){var elapsed_total=performance.now()-start;var value=from+elapsed_total*(to-from)/timeout;anim_cb(value);if(elapsed_total>=timeout||!elem.parentNode)m_main.remove_loop_cb(cb)}m_main.append_loop_cb(cb)}exports.queue_animate=function(queue){if(!queue.length)return;var queue_obj=queue.shift();var elem=queue_obj.elem;var prop=queue_obj.prop;var from=queue_obj.from;var to=queue_obj.to; var duration=queue_obj.duration;var prefix=queue_obj.opt_prefix;var suffix=queue_obj.opt_suffix;var cb=function(){if(queue_obj.cb)queue_obj.cb();exports.queue_animate(queue)};if(queue_obj.type=="css")exports.css_animate(elem,prop,from,to,duration,prefix,suffix,cb);else if(queue_obj.type=="attr")exports.attr_animate(elem,prop,from,to,duration,cb)};function smooth_coeff_zoom_mouse(){return CAM_SMOOTH_ZOOM_MOUSE*_smooth_factor}function smooth_coeff_zoom_touch(){return CAM_SMOOTH_ZOOM_TOUCH*_smooth_factor} function smooth_coeff_rot_trans_mouse(){return CAM_SMOOTH_ROT_TRANS_MOUSE*_smooth_factor}function smooth_coeff_rot_trans_touch(){return CAM_SMOOTH_ROT_TRANS_TOUCH*_smooth_factor}exports.set_camera_smooth_factor=function(value){_smooth_factor=value};exports.get_camera_smooth_factor=function(){return _smooth_factor}}var app_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("app",App);__webpack_exports__["a"]=app_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__graph_js__=__webpack_require__(29);function DebugNodegraph(ns,exports){var m_graph=Object(__WEBPACK_IMPORTED_MODULE_1__graph_js__["a"])(ns);exports.nodegraph_to_dot=function(graph,detailed_print){if(detailed_print){var get_data_info=function(attr){var data_info="";switch(attr.type){case "GEOMETRY_UV":data_info="\nuv_layer: "+attr.data.value;break;case "TEXTURE_COLOR":case "TEXTURE_NORMAL":data_info="\ntexture: "+attr.data.value.name+"\n("+attr.data.value.img_filepath+ ")";break}if(data_info=="")data_info="\n---";return data_info};var nodes_label_cb=function(id,attr){var node_text=attr.type+"("+attr.name+")";var inputs=attr.inputs;node_text+="\n\nINPUTS:";if(inputs.length)for(var i=0;i\n"+in2.identifier}}else{var nodes_label_cb=function(id, attr){return attr.type};var edges_label_cb=function(id1,id2,attr){var node1=m_graph.get_node_attr(graph,id1);var node2=m_graph.get_node_attr(graph,id2);var out1=node1.outputs[attr[0]];var in2=node2.inputs[attr[1]];return out1.identifier+"\n==>\n"+in2.identifier}}return m_graph.debug_dot(graph,nodes_label_cb,edges_label_cb)}}var debug_nodegraph_fact=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("__debug_nodegraph",DebugNodegraph);__webpack_exports__["a"]=debug_nodegraph_fact},function(module, __webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__util_b4w_js__=__webpack_require__(32);var __WEBPACK_IMPORTED_MODULE_2__util_assert_js__=__webpack_require__(5);var __WEBPACK_IMPORTED_MODULE_3__util_generator_js__=__webpack_require__(31);var __WEBPACK_IMPORTED_MODULE_4__util_path_js__=__webpack_require__(48);function Int_IPC(ns,exports){var m_assert=Object(__WEBPACK_IMPORTED_MODULE_2__util_assert_js__["a"])(ns); var m_generator=Object(__WEBPACK_IMPORTED_MODULE_3__util_generator_js__["a"])(ns);var _wait_for_loading=true;exports.IN_LOADED=0;exports.IN_COLLISION=1;exports.IN_COLLISION_POS_NORM=2;exports.IN_COLLISION_IMPULSE=3;exports.IN_ERROR=4;exports.IN_FBMSG=5;exports.IN_FLOATER_BOB_TRANSFORM=6;exports.IN_LOG=7;exports.IN_PROP_OFFSET=8;exports.IN_RAY_HIT=9;exports.IN_RAY_HIT_POS_NORM=10;exports.IN_REMOVE_RAY_TEST=11;exports.IN_TRANSFORM=12;exports.IN_VEHICLE_SPEED=13;exports.IN_PING=14;exports.IN_FPS=15; exports.IN_DEBUG_STATS=16;var IN_COLLISION=exports.IN_COLLISION;var IN_COLLISION_POS_NORM=exports.IN_COLLISION_POS_NORM;var IN_PROP_OFFSET=exports.IN_PROP_OFFSET;var IN_RAY_HIT=exports.IN_RAY_HIT;var IN_RAY_HIT_POS_NORM=exports.IN_RAY_HIT_POS_NORM;var IN_TRANSFORM=exports.IN_TRANSFORM;exports.OUT_INIT=100;exports.OUT_ACTIVATE=101;exports.OUT_ADD_BOAT_BOB=102;exports.OUT_ADD_CAR_WHEEL=103;exports.OUT_ADD_FLOATER_BOB=104;exports.OUT_APPEND_BOUNDING_BODY=105;exports.OUT_APPEND_BOAT=106;exports.OUT_APPEND_CAR= 107;exports.OUT_APPEND_CHARACTER=108;exports.OUT_APPEND_COLLISION_TEST=109;exports.OUT_APPEND_CONSTRAINT=110;exports.OUT_APPEND_FLOATER=111;exports.OUT_APPEND_GHOST_MESH_BODY=112;exports.OUT_APPEND_STATIC_MESH_BODY=113;exports.OUT_APPEND_WATER=114;exports.OUT_REMOVE_BODY=115;exports.OUT_APPLY_CENTRAL_FORCE=116;exports.OUT_APPLY_COLLISION_IMPULSE_TEST=117;exports.OUT_APPLY_TORQUE=118;exports.OUT_CHARACTER_JUMP=119;exports.OUT_CHARACTER_ROTATION_INCREMENT=120;exports.OUT_CLEAR_COLLISION_IMPULSE_TEST= 121;exports.OUT_DISABLE_SIMULATION=122;exports.OUT_ENABLE_SIMULATION=123;exports.OUT_PAUSE=124;exports.OUT_APPEND_RAY_TEST=125;exports.OUT_REMOVE_RAY_TEST=126;exports.OUT_CHANGE_RAY_TEST_FROM_TO=127;exports.OUT_REMOVE_COLLISION_TEST=128;exports.OUT_REMOVE_CONSTRAINT=129;exports.OUT_RESUME=130;exports.OUT_SET_CHARACTER_FLY_VELOCITY=131;exports.OUT_SET_CHARACTER_HOR_ROTATION=132;exports.OUT_SET_CHARACTER_MOVE_DIR=133;exports.OUT_SET_CHARACTER_MOVE_TYPE=134;exports.OUT_SET_CHARACTER_ROTATION=135;exports.OUT_SET_CHARACTER_RUN_VELOCITY= 136;exports.OUT_SET_CHARACTER_VERT_ROTATION=137;exports.OUT_SET_CHARACTER_WALK_VELOCITY=138;exports.OUT_SET_GRAVITY=139;exports.OUT_SET_LINEAR_VELOCITY=140;exports.OUT_SET_TRANSFORM=141;exports.OUT_SET_WATER_TIME=142;exports.OUT_ADD_WATER_WRAPPER=143;exports.OUT_UPDATE_BOAT_CONTROLS=144;exports.OUT_UPDATE_CAR_CONTROLS=145;exports.OUT_PING=146;exports.OUT_DEBUG=147;exports.OUT_UPDATE_WORLD=148;exports.OUT_SET_ANGULAR_VELOCITY=149;exports.OUT_SET_CHARACTER_VERT_MOVE_DIR_ANGLE=150;exports.OUT_UPDATE_BOUNDING_BODY= 151;exports.OUT_UPDATE_STATIC_MESH_BODY=152;var OUT_SET_TRANSFORM=exports.OUT_SET_TRANSFORM;var _worker_listeners=__WEBPACK_IMPORTED_MODULE_1__util_b4w_js__["a"].worker_listeners;var _worker_namespaces=__WEBPACK_IMPORTED_MODULE_1__util_b4w_js__["a"].worker_namespaces;var _msg_cache_IN_TRANSFORM={msg_id:IN_TRANSFORM,body_id:0,time:0,trans:new Float32Array(3),quat:new Float32Array(4),linvel:new Float32Array(3),angvel:new Float32Array(3),len:0};var _msg_cache_IN_PROP_OFFSET={msg_id:IN_PROP_OFFSET,chassis_hull_body_id:0, prop_ind:0,trans:new Float32Array(3),quat:new Float32Array(4),len:0};var _msg_cache_IN_RAY_HIT={msg_id:IN_RAY_HIT,id:0,body_id_hit:0,hit_fract:0,hit_time:0,len:0};var _msg_cache_IN_RAY_HIT_POS_NORM={msg_id:IN_RAY_HIT_POS_NORM,id:0,body_id_hit:0,hit_fract:0,hit_time:0,hit_pos:new Float32Array(3),hit_norm:new Float32Array(3),len:0};var _msg_cache_IN_COLLISION={msg_id:IN_COLLISION,body_id_a:0,body_id_b:0,result:0,len:0};var _msg_cache_IN_COLLISION_POS_NORM={msg_id:IN_COLLISION_POS_NORM,body_id_a:0,body_id_b:0, result:0,coll_point:new Float32Array(3),coll_norm:new Float32Array(3),coll_dist:0,len:0};var _msg_cache_OUT_SET_TRANSFORM={msg_id:OUT_SET_TRANSFORM,body_id:0,trans:new Float32Array(3),quat:new Float32Array(4),len:0};var _msg_cache_list=[_msg_cache_IN_TRANSFORM,_msg_cache_IN_PROP_OFFSET,_msg_cache_IN_RAY_HIT,_msg_cache_IN_RAY_HIT_POS_NORM,_msg_cache_IN_COLLISION,_msg_cache_IN_COLLISION_POS_NORM,_msg_cache_OUT_SET_TRANSFORM];function find_script(src){var scripts=document.getElementsByTagName("script"); var norm_src=Object(__WEBPACK_IMPORTED_MODULE_4__util_path_js__["b"])(src);for(var i=0;i-1){var has_render_bundles=false;var is_cube_subs=subs.type==m_subs.MAIN_CUBE_REFLECT||subs.type== m_subs.MAIN_CUBE_REFLECT_BLEND;var draw_data=subs.draw_data;for(var i=0;i0&&!bundles[0].batch.blend){sort_bundles(bundles);draw_data.z_index= bundles[0].z_index}ddata.do_render=draw_data_do_render}subs.need_perm_uniforms_update=false;switch(subs.type){case m_subs.DEBUG_VIEW:break;default:if(subs.type==m_subs.MAIN_OPAQUE||subs.type==m_subs.SHADOW_RECEIVE||subs.type==m_subs.MAIN_GLOW||subs.type==m_subs.MAIN_PLANE_REFLECT||subs.type==m_subs.MAIN_CUBE_REFLECT||has_render_bundles)subs.do_render=true;else{if(subs.do_render)m_render.clear(subs);subs.do_render=false}break}}else if(subs.need_perm_uniforms_update){var draw_data=subs.draw_data;for(var i= 0;i=252?6:q>=248?5:q>=240?4:q>=224?3:q>=192?2:1;_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128| c>>>6&63;buf[i++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65537)if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK)return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len));var result="";for(var i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536)utf16buf[out++]=c;else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf, out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length)max=buf.length;pos=max-1;while(pos>=0&&(buf[pos]&192)===128)pos--;if(pos<0)return max;if(pos===0)return max;return pos+_utf8len[buf[pos]]>max?pos:max}},{"./common":1}],3:[function(pako_require,module,exports){function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n=len>2E3?2E3:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16| 0}module.exports=adler32},{}],4:[function(pako_require,module,exports){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],5:[function(pako_require,module, exports){function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++)c=c&1?3988292384^c>>>1:c>>>1;table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc^=-1;for(var i=pos;i>>8^t[(crc^buf[i])&255];return crc^-1}module.exports=crc32},{}],6:[function(pako_require,module,exports){function GZheader(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment= "";this.hcrc=0;this.done=false}module.exports=GZheader},{}],7:[function(pako_require,module,exports){var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var s_window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var input,output;state=strm.state;_in=strm.next_in;input=strm.input;last=_in+(strm.avail_in-5);_out=strm.next_out; output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);dmax=state.dmax;wsize=state.wsize;whave=state.whave;wnext=state.wnext;s_window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0)output[_out++]=here& 65535;else if(op&16){len=here&65535;op&=15;if(op){if(bits>>=op;bits-=op}if(bits<15){hold+=input[_in++]<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bitsdmax){strm.msg="invalid distance too far back"; state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave)if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}from=0;from_source=s_window;if(wnext===0){from+=wsize-op;if(op2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1)output[_out++]=from_source[from++]}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++]; len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1)output[_out++]=output[from++]}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<>3;_in-=len;bits-=len<< 3;hold&=(1<>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode= null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state)return Z_STREAM_ERROR;state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap)strm.adler=state.wrap&1;state.mode=HEAD;state.last=0;state.havedict=0;state.dmax= 32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state)return Z_STREAM_ERROR;state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state)return Z_STREAM_ERROR;state=strm.state;if(windowBits< 0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48)windowBits&=15}if(windowBits&&(windowBits<8||windowBits>15))return Z_STREAM_ERROR;if(state.window!==null&&state.wbits!==windowBits)state.window=null;state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm)return Z_STREAM_ERROR;state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK)strm.state=null; return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144)state.lens[sym++]=8;while(sym<256)state.lens[sym++]=9;while(sym<280)state.lens[sym++]=7;while(sym<288)state.lens[sym++]=8;inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32)state.lens[sym++]=5;inflate_table(DISTS,state.lens,0,32,distfix, 0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy)dist=copy;utils.arraySet(state.window, src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize)state.wnext=0;if(state.whave>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head)state.head.done=false;if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>= 4;bits-=4;len=(hold&15)+8;if(state.wbits===0)state.wbits=len;else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<>8&1;if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0)break inf_leave;have--;hold+=input[next++]<>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits<16){if(have=== 0)break inf_leave;have--;hold+=input[next++]<>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0)break inf_leave;have--;hold+=input[next++]<>>8&255;state.check=crc32(state.check, hbuf,2,0)}hold=0;bits=0}else if(state.head)state.head.extra=null;state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have)copy=have;if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra)state.head.extra=new Array(state.head.extra_len);utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512)state.check=crc32(state.check,input,copy,next);have-=copy;next+=copy;state.length-=copy}if(state.length)break inf_leave}state.length=0;state.mode= NAME;case NAME:if(state.flags&2048){if(have===0)break inf_leave;copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536)state.head.name+=String.fromCharCode(len)}while(len&©>9&1; state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0)break inf_leave;have--;hold+=input[next++]<>>= bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0)break inf_leave;have--;hold+=input[next++]<>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0)break inf_leave;have--; hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES)break inf_leave;case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have)copy=have;if(copy>left)copy=left;if(copy===0)break inf_leave;utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break}state.mode=TYPE;break;case TABLE:while(bits< 14){if(have===0)break inf_leave;have--;hold+=input[next++]<>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have>>= 3;bits-=3}while(state.have<19)state.lens[order[state.have++]]=0;state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<= bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits< n){if(have===0)break inf_leave;have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--)state.lens[state.have++]=len}}if(state.mode===BAD)break;if(state.lens[256]=== 0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);state.distbits=opts.bits;if(ret){strm.msg="invalid distances set"; state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES)break inf_leave;case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE)state.back=-1;break}state.back=0;for(;;){here=state.lencode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>>=last_bits; bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits>>=state.extra; bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255; here_val=here&65535;if(last_bits+here_bits<=bits)break;if(have===0)break inf_leave;have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0)break inf_leave;copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave)if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else from=state.wnext-copy;if(copy>state.length)copy= state.length;from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left)copy=left;left-=copy;state.length-=copy;do output[put++]=from_source[from++];while(--copy);if(state.length===0)state.mode=LEN;break;case LIT:if(left===0)break inf_leave;output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0)break inf_leave;have--;hold|=input[next++]<=1;max--)if(count[max]!==0)break;if(root>max)root=max;if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1))return-1;offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;for(;;){here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>= 1;if(incr!==0){huff&=incr-1;huff+=incr}else huff=0;sym++;if(--count[len]===0){if(len===max)break;len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0)drop=root;next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0)table[next+huff]=len-drop<<24|64<<16|0;opts.bits= root;return 0}},{"../utils/common":1}],10:[function(pako_require,module,exports){module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],11:[function(pako_require,module,exports){function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type= 2;this.adler=0}module.exports=ZStream},{}],"/lib/inflate.js":[function(pako_require,module,exports){var zlib_inflate=pako_require("./zlib/inflate");var utils=pako_require("./utils/common");var strings=pako_require("./utils/strings");var c=pako_require("./zlib/constants");var msg=pako_require("./zlib/messages");var ZStream=pako_require("./zlib/zstream");var GZheader=pako_require("./zlib/gzheader");var toString=Object.prototype.toString;function Inflate(options){if(!(this instanceof Inflate))return new Inflate(options); this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0)opt.windowBits=-15}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits))opt.windowBits+=32;if(opt.windowBits>15&&opt.windowBits<48)if((opt.windowBits&15)===0)opt.windowBits|=15;this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new ZStream;this.strm.avail_out=0;var status= zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK)throw new Error(msg[status]);this.header=new GZheader;zlib_inflate.inflateGetHeader(this.strm,this.header)}Inflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var dictionary=this.options.dictionary;var status,_mode;var next_out_utf8,tail,utf8str;var dict;var allowBufError=false;if(this.ended)return false;_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data=== "string")strm.input=strings.binstring2buf(data);else if(toString.call(data)==="[object ArrayBuffer]")strm.input=new Uint8Array(data);else strm.input=data;strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status===c.Z_NEED_DICT&&dictionary){if(typeof dictionary==="string")dict=strings.string2buf(dictionary);else if(toString.call(dictionary)==="[object ArrayBuffer]")dict= new Uint8Array(dictionary);else dict=dictionary;status=zlib_inflate.inflateSetDictionary(this.strm,dict)}if(status===c.Z_BUF_ERROR&&allowBufError===true){status=c.Z_OK;allowBufError=false}if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out)if(strm.avail_out===0||status===c.Z_STREAM_END||strm.avail_in===0&&(_mode===c.Z_FINISH||_mode===c.Z_SYNC_FLUSH))if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out); tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail)utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0);this.onData(utf8str)}else this.onData(utils.shrinkBuf(strm.output,strm.next_out));if(strm.avail_in===0&&strm.avail_out===0)allowBufError=true}while((strm.avail_in>0||strm.avail_out===0)&&status!==c.Z_STREAM_END);if(status===c.Z_STREAM_END)_mode=c.Z_FINISH;if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm); this.onEnd(status);this.ended=true;return status===c.Z_OK}if(_mode===c.Z_SYNC_FLUSH){this.onEnd(c.Z_OK);strm.avail_out=0;return true}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=utils.flattenChunks(this.chunks);this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator=new Inflate(options); inflator.push(input,true);if(inflator.err)throw inflator.msg||msg[inflator.err];return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate},{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js")});var inflate=window.pako.inflate}, function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_b4w_js__=__webpack_require__(32);__WEBPACK_IMPORTED_MODULE_0__util_b4w_js__["a"].module["shader_texts"]=function(exports,require){exports["anchors.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","GLSL_OUT_FRAG_COLOR", "=","vec4","(","1.0",")",";","}"]}]},exports["anchors.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"ANCHOR_NUM",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","vec3","u_position","[","ANCHOR_NUM","]",";","uniform","mat4","u_view_proj_matrix",";","uniform","vec2","u_texel_size",";","GLSL_IN","float","a_index",";","void","main","(",")","{","int","c","=","int","(","mod","(","a_index",",","3.0",")",")",";","int","d","=","int","(","a_index", "/","3.0",")",";","vec2","e",";","if","(","c","==","0",")","{","e","=","vec2","(","-","4.0","*","u_texel_size","[","0","]",",","-","u_texel_size","[","1","]",")",";","}","else","if","(","c","==","1",")","{","e","=","vec2","(","4.0","*","u_texel_size","[","0","]",",","-","u_texel_size","[","1","]",")",";","}","else","{","e","=","vec2","(","0.0",",","5.0","*","u_texel_size","[","1","]",")",";","}","vec4","f","=","u_view_proj_matrix","*","vec4","(","u_position","[","d","]",",","1.0",")",";","f",".", "xy","+=","e","*","f",".","w",";","gl_Position","=","f",";","}"]}]},exports["color_id.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"USE_OUTLINE", TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION_CORRECTION",TOKENS:["0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT", TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_BLEND_TYPE",TOKENS:["TEXTURE_BLEND_TYPE_MIX"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LAMP_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_VALUES",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_RGBS",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"POISSON_DISK_NUM",TOKENS:["NO_SOFT_SHADOWS"]},{TYPE:"var",NAME:"USE_DERIVATIVES_EXT", TOKENS:["0"]},{TYPE:"var",NAME:"USE_LOD_SMOOTHING",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1","USE_DERIVATIVES_EXT",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_OES_standard_derivatives",":","enable"]}]}}]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"math.glslv"}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"coverage.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_time",";","uniform","float","u_environment_energy",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions", "[","NUM_LIGHTS","]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform","vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye_frag",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{TYPE:"logical_or_expr",PLACES:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3", "u_camera_direction",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_VIEW_TSR",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_VIEW_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR", {TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_diffuse_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_sampler",";","uniform","float","u_alpha_factor",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_OUTLINE", {TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_color_id",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_plane_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_cube_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube", "u_mirrormap",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_refractmap",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_REFRACTION","USE_REFRACTION_CORRECTION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_emit",";","uniform","float","u_ambient",";", "uniform","vec2","u_fresnel_params",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_mirror_factor",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_refl_plane",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_LAMP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","vec3","u_lamp_light_positions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_directions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_color_intensities","[","NUM_LAMP_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_VALUE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_node_values","[","NUM_VALUES","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_RGB"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","vec3","u_node_rgbs","[","NUM_RGBS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_csm_center_dists",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW", "u_shadow_map0",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map1",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map3",";","uniform","sampler2D","u_shadow_mask",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_OUTLINE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_outline_intensity",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_OBJECT_INFO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","vec3","u_obj_info",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_lod_coverage",";","uniform","float","u_lod_cmp_logic",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","h",";","GLSL_IN","vec4","i",";","GLSL_IN","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","k",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","USE_REFRACTION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","m", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","n",";","GLSL_IN","vec4","o",";","GLSL_IN","vec4","u",";","GLSL_IN","vec4","v",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","B",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"nodes.glslf"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","!","C","(","u_lod_coverage",",", "u_lod_cmp_logic",")",")","discard",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","D","=","normalize","(","u_camera_eye_frag","-","h",")",";","vec3","E",";","vec3","F",";","vec3","G",";","vec4","H",";","float","I",";","J","(","D",",","E",",","F",",","G",",","H",",","I",")",";","float","L","=","I",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","L","=","(","GLSL_TEXTURE","(","u_sampler",",","A",")",")",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","M","=","u_alpha_factor","*","L",";","M","+=","(","1.0","-","step","(","0.0",",","M",")",")",";","L","=","mix","(","M",",","1.0",",","u_diffuse_color",".","a", ")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","L","=","u_diffuse_color",".","a",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA_CLIP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","L","<","0.5",")","discard",";","L","=","1.0",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_OUTLINE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","1.0",",","1.0",",","1.0",",","u_outline_intensity",")", ";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","u_color_id",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["color_id.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"MAIN_BEND_COL",TOKENS:["0"]},{TYPE:"var",NAME:"DETAIL_BEND", TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"AU_QUALIFIER",TOKENS:["GLSL_IN"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"BEND_CENTER_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD_JITTERED", TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC_GRASS",TOKENS:["0"]},{TYPE:"var",NAME:"SKINNED",TOKENS:["0"]},{TYPE:"var",NAME:"FRAMES_BLENDING",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_ANIM",TOKENS:["0"]},{TYPE:"var",NAME:"SMAA_JITTER",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_ANIM_MIX_NORMALS_FACTOR",TOKENS:["u_va_frame_factor"]},{TYPE:"var",NAME:"MAX_BONES",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include", FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"include",FILE:"scale_texcoord.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0",",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","mat3","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr", ";","uniform","mat4","u_proj_matrix",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD","DYNAMIC_GRASS",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_JITTER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_subpixel_jitter",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","float","u_view_max_depth",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsb","[","MAX_BONES","]",";","uniform","vec4","u_transb","[","MAX_BONES","]",";","uniform","vec4","u_arm_rel_trans",";","uniform","vec4","u_arm_rel_quat",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsa","[","MAX_BONES","]",";","uniform","vec4","u_transa","[","MAX_BONES","]",";","uniform","float","u_frame_factor",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_JITTERED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_jitter_amp",";","uniform","float","u_jitter_freq",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform", "vec3","u_wind",";","uniform","PRECISION","float","u_time",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_va_frame_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_texture_scale",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec4","a_tbn",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES", "ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_shade_tangs",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_influence",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","a_bending_col_main",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DETAIL_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_bending_col_detail",";","AU_QUALIFIER","float","au_detail_bending_amp",";","AU_QUALIFIER","float","au_branch_bending_amp",";","AU_QUALIFIER","float","au_detail_bending_freq",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["AU_QUALIFIER","float","au_wind_bending_amp",";","AU_QUALIFIER","float","au_wind_bending_freq", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BEND_CENTER_ONLY"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position_next",";"]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_tbn_next",";"]}]}}]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN", "vec2","a_texcoord",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","B",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","h",";","GLSL_OUT","vec4","i",";","GLSL_OUT","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT", "vec4","k",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","m",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";"]}]}}]}]}}]},{TYPE:"include",FILE:"skin.glslv"},{TYPE:"include",FILE:"wind_bending.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"nodes.glslv"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","mat3","N","=","u_view_tsr",";","vec3","O","=","a_position",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["NODES","ALPHA","CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_NORMAL_MAP","USE_NODE_GEOMETRY_NO","CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},{TYPE:"logical_or_expr",PLACES:6},{TYPE:"logical_and_expr",PLACES:3},"USE_TBN_SHADING","CALC_TBN",{TYPE:"logical_and_expr",PLACES:2},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:7}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["float","P",",","Q",";","vec4","S","=","R","(","a_tbn",",","P",",","Q",")",";","vec3","U","=","T","(","S",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","T","(","S",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";","vec3","W","=","Q","*","cross","(","U",",","V",")",";","vec4","Y","=","X","(","W",",","Q","*","P",")",";","V","=","T","(","Y",",","U",")",";"]}]}}, {TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","0.0",")",";","vec3","W","=","vec3","(","0.0",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","U","=","vec3","(","0.0",")",";","vec3","V","=","vec3","(","0.0",")",";","vec3","W","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["mat3","Z","=","u_model_tsr",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["CALC_TBN"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ac","=","normalize","(","_","(","u_model_tsr",",","U",")",")",";","vec3","ad","=","cross","(","vec3","(","0.0",",","0.0",",","1.0",")",",","ac",")",";","vec3","ae","=","cross","(","ac",",","ad",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ae","=","a_shade_tangs",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ae","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","mix","(","O",",","a_position_next",",","u_va_frame_factor",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["float","af",",","ah",";","vec4","ai","=","R","(","a_tbn_next",",","af",",","ah",")",";","vec3","aj","=","T","(","ai",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";","U","=","mix","(","U",",","aj",",","VERTEX_ANIM_MIX_NORMALS_FACTOR",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ak","=","T","(","ai",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";","vec3","al","=","ah","*","cross","(","aj",",","ak", ")",";","vec4","am","=","X","(","al",",","ah","*","af",")",";","ak","=","T","(","am",",","aj",")",";","V","=","mix","(","V",",","ak",",","u_va_frame_factor",")",";","W","=","mix","(","W",",","al",",","u_va_frame_factor",")",";"]}]}}]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["an","(","O",",","V",",","W",",","U",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","au_center_pos",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aq","=","ap","(","Z",",","ao",")",";","Z","=","as","(","u_camera_eye",",","aq",",","N",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["Z","=","at","(","u_wind",",","u_time",",","u_jitter_amp",",","u_jitter_freq",",","aq",",","Z",")",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","O","-","ao",",","ao",",","V",",","ae",",","W",",","U",",","Z",")",";","aw",".","ao","=","aq",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(","O",",","ao",",","V",",","ae",",","W",",","U",",","Z",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ax","(","aw",".","O",",","aw",".","ao",",","U",",","mat4","(","0.0",")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ay","=","T","(","a_tbn",",","vec3","(","0.0",",","1.0",",","0.0",")", ")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ay","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["ax","(","aw",".","O",",","aw",".","ao",",","ay",",","mat4","(","0.0",")",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=", "az","(","a_texcoord",",","u_texture_scale",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["h","=","aw",".","O",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL", "USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:12}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["j","=","aw",".","U",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","aA","=","(","dot","(","cross","(","aw",".","U",",","aw",".","V",")",",","aw",".","W",")","<","0.0",")","?","-","1.0",":","1.0",";","k","=","vec4","(","aw",".","V",",","aA",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["B","=","aw",".","aB",";"]}]}}]},{TYPE:"txt",TOKENS:["i","=","vec4","(","ap","(","N",",","aw",".","O",")",",","1.0",")",";","vec4","f","=","u_proj_matrix","*","i",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_JITTER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["f",".","xy","+=","u_subpixel_jitter","*","f",".","w",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr", PLACES:2},"USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["l","=","aC","(","f",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["m","=","-","i",".","z","/","u_view_max_depth",";"]}]}}]},{TYPE:"txt",TOKENS:["J","(",")",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","u_proj_matrix","*","vec4","(","ap","(","N",",","aw", ".","O",")",",","1.0",")",";","}"]}]},exports["debug_view.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"DEBUG_SPHERE",TOKENS:["0"]},{TYPE:"var",NAME:"WIREFRAME_QUALITY",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"DEBUG_SPHERE_DYNAMIC",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE",{TYPE:"logic_negative_expr", PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","int","u_debug_view_mode",";","uniform","float","u_cluster_id",";","uniform","float","u_batch_debug_id_color",";","uniform","float","u_batch_debug_main_render_time",";","uniform","float","u_debug_colors_seed",";","uniform","float","u_debug_render_time_threshold",";","uniform","vec3","u_wireframe_edge_color",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","aD",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","const","float","aE","=", "1.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE_DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","vec3","aF","=","vec3","(","1.0",",","0.05",",","0.05",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","vec3","aF","=","vec3","(","0.05",",","0.05",",","1.0",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","vec3","aG", "=","vec3","(","0.4",",","0.4",",","1.0",")",";","const","vec3","aH","=","vec3","(","1.0",",","0.4",",","0.4",")",";","const","vec3","aI","=","vec3","(","1.0",",","1.0",",","1.0",")",";","const","vec3","aJ","=","vec3","(","0.0",",","133.0","/","255.0",",","66.0","/","255.0",")",";","const","vec3","aK","=","vec3","(","160.0","/","255.0",",","38.0","/","255.0",",","33.0","/","255.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["float","aP","(",")","{","float","aL","=","1.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIREFRAME_QUALITY",0,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aM","=","sign","(","aD","-","vec3","(","0.02","*","aE",")",")",";","if","(","aM",".","x","<","0.0","||","aM",".","y","<","0.0","||","aM",".","z","<","0.0",")","aL","=","0.0",";"]}]}},{TYPE:"elif",EXPRESSION:["WIREFRAME_QUALITY",1,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_OES_standard_derivatives",":","enable"]}]}}]},{TYPE:"txt",TOKENS:["vec3","aN","=","fwidth","(","aD",")",";","vec3","aO","=","smoothstep","(","vec3","(","0.0",")",",","aN","*","aE",",","aD",")",";","aL","=","min","(","min","(","aO",".","x",",","aO",".","y",")",",","aO",".","z",")",";","aL","=","clamp","(","aL",",","0.0",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","aL",";","}"]}]}}]}, {TYPE:"txt",TOKENS:["void","main","(",")","{","vec3","aQ","=","vec3","(","0.0",")",";","float","L","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aM","=","sign","(","aD","-","vec3","(","0.02","*","aE",")",")",";","if","(","aM",".","x","<","0.0","||","aM",".","y","<","0.0","||","aM",".","z","<","0.0",")","{","aQ","=","aF",";","L","=","1.0",";","}","else","discard",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["if","(","u_debug_view_mode","==","DV_OPAQUE_WIREFRAME",")","{","float","aL","=","aP","(",")",";","aQ","=","vec3","(","mix","(","u_wireframe_edge_color",",","aI",",","aL",")",")",";","L","=","1.0",";","}","else","if","(","u_debug_view_mode","==","DV_TRANSPARENT_WIREFRAME",")","{","float","aL","=","aP","(",")",";","aQ","=","u_wireframe_edge_color",";","L","=","mix","(","1.0",",","0.0",",","aL",")",";","}","else","if","(","u_debug_view_mode","==","DV_FRONT_BACK_VIEW",")","{","float","aL","=", "aP","(",")",";","if","(","gl_FrontFacing",")","aQ","=","mix","(","u_wireframe_edge_color",",","aG",",","aL",")",";","else","aQ","=","mix","(","u_wireframe_edge_color",",","aH",",","aL",")",";","L","=","1.0",";","}","else","if","(","u_debug_view_mode","==","DV_CLUSTERS_VIEW",")","{","float","aR","=","u_cluster_id","+","u_debug_colors_seed","+","2.0",";","aQ","=","vec3","(","fract","(","aR","*","19.73",")",",","fract","(","aR","*","6.34",")",",","fract","(","aR","*","1.56",")",")",";","L","=","1.0", ";","}","else","if","(","u_debug_view_mode","==","DV_BATCHES_VIEW",")","{","float","aR","=","u_batch_debug_id_color","+","u_debug_colors_seed",";","aQ","=","vec3","(","fract","(","aR","*","19.73",")",",","fract","(","aR","*","6.34",")",",","fract","(","aR","*","1.56",")",")",";","L","=","1.0",";","}","else","if","(","u_debug_view_mode","==","DV_RENDER_TIME",")","{","float","aS",";","if","(","u_debug_render_time_threshold",">","0.0",")","aS","=","clamp","(","u_batch_debug_main_render_time",",","0.0", ",","u_debug_render_time_threshold",")","/","u_debug_render_time_threshold",";","else","aS","=","1.0",";","float","aT","=","clamp","(","2.0","*","aS",",","0.0",",","1.0",")",";","float","aU","=","clamp","(","2.0","*","aS","-","1.0",",","0.0",",","1.0",")",";","float","aV","=","aS",";","aQ","=","mix","(","aJ",",","aK",",","vec3","(","aT",",","aU",",","aV",")",")",";","L","=","1.0",";","}"]}]}}]},{TYPE:"txt",TOKENS:["aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]},exports["debug_view.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"USE_INSTANCED_PARTCLS",TOKENS:["0"]},{TYPE:"var",NAME:"DEBUG_VIEW_SPECIAL_SKYDOME",TOKENS:["0"]},{TYPE:"var",NAME:"DEBUG_SPHERE",TOKENS:["0"]},{TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var", NAME:"DYNAMIC_GRASS",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_ANIM",TOKENS:["0"]},{TYPE:"var",NAME:"SKINNED",TOKENS:["0"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"AU_QUALIFIER",TOKENS:["GLSL_IN"]},{TYPE:"var",NAME:"BEND_CENTER_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"FRAMES_BLENDING",TOKENS:["0"]},{TYPE:"var",NAME:"MAIN_BEND_COL",TOKENS:["0"]},{TYPE:"var",NAME:"MAX_BONES",TOKENS:["0"]},{TYPE:"var",NAME:"DETAIL_BEND",TOKENS:["0"]},{TYPE:"var", NAME:"BILLBOARD_JITTERED",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec4","a_tbn",";","GLSL_IN","float","a_polyindex",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_INSTANCED_PARTCLS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_part_ts",";","GLSL_IN","vec4","a_part_r",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE", {TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","a_bending_col_main",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DETAIL_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_bending_col_detail",";","AU_QUALIFIER","float","au_detail_bending_amp",";","AU_QUALIFIER", "float","au_branch_bending_amp",";","AU_QUALIFIER","float","au_detail_bending_freq",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["AU_QUALIFIER","float","au_wind_bending_amp",";","AU_QUALIFIER","float","au_wind_bending_freq",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BEND_CENTER_ONLY"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:3},"USE_INSTANCED_PARTCLS", {TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position_next",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_influence",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec3", "aD",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0",",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE", {TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_wind",";","uniform","float","u_time",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_jitter_amp",";","uniform","float","u_jitter_freq",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_va_frame_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsb","[","MAX_BONES","]",";","uniform","vec4","u_transb","[","MAX_BONES", "]",";","uniform","vec4","u_arm_rel_trans",";","uniform","vec4","u_arm_rel_quat",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsa","[","MAX_BONES","]",";","uniform","vec4","u_transa","[","MAX_BONES","]",";","uniform","float","u_frame_factor",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_grass_map_depth", ";","uniform","sampler2D","u_grass_map_color",";","uniform","vec4","u_camera_quat",";","uniform","vec3","u_grass_map_dim",";","uniform","float","u_grass_size",";","uniform","float","u_scale_threshold",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"skin.glslv"},{TYPE:"include",FILE:"wind_bending.glslv"},{TYPE:"include",FILE:"dynamic_grass.glslv"}]}}]},{TYPE:"txt",TOKENS:["void","main","(", ")","{","if","(","a_polyindex","==","0.0",")","aD","=","vec3","(","1.0",",","0.0",",","0.0",")",";","else","if","(","a_polyindex","==","1.0",")","aD","=","vec3","(","0.0",",","0.0",",","1.0",")",";","else","aD","=","vec3","(","0.0",",","1.0",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_VIEW_SPECIAL_SKYDOME"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gl_Position","=","vec4","(","a_position",".","xy",",","0.9999999",",","1.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_INSTANCED_PARTCLS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","Z","=","aZ","(","a_part_ts",".","xyz",",","aY","(",")",")",";","Z","=","a_","(","vec3","(","a_part_ts",".","w",")",",","Z",")",";","Z","=","bc","(","a_part_r",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["Z","=","bd","(","u_model_tsr",",","Z",")",";"]}]}}]}]}}, {TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","Z","=","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["mat3","N","=","u_view_tsr",";","vec3","O","=","a_position",";","vec4","S","=","R","(","a_tbn",")",";","vec3","U","=","T","(","S",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_SPHERE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(","O",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0", ")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","Z",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","mix","(","O",",","a_position_next",",","u_va_frame_factor",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","0.0",")",";","vec3","W","=","vec3","(","0.0",")",";","an","(","O",",","V",",", "W",",","U",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:3},"USE_INSTANCED_PARTCLS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","au_center_pos",";"]}]}},{TYPE:"elif",EXPRESSION:["DYNAMIC_GRASS","USE_INSTANCED_PARTCLS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","a_part_ts", ".","xyz",";","O","=","ap","(","Z",",","O",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","be","(","O",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","ao",",","u_grass_map_depth",",","u_grass_map_color",",","u_grass_map_dim",",","u_grass_size",",","u_camera_eye", ",","u_camera_quat",",","N",",","Z",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aq","=","ap","(","Z",",","ao",")",";","Z","=","as","(","u_camera_eye",",","aq",",","N",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","bf","=","aq",";","Z","=","at","(","u_wind", ",","u_time",",","u_jitter_amp",",","u_jitter_freq",",","bf",",","Z",")",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","O","-","ao",",","ao",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","Z",")",";","aw",".","ao","=","aq",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(","O",",","ao",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","Z",")", ";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ax","(","aw",".","O",",","aw",".","ao",",","U",",","mat4","(","0.0",")",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","u_proj_matrix","*","vec4","(","ap","(","N",",","aw",".","O",")",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["error.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include", FILE:"std.glsl"},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","GLSL_OUT_FRAG_COLOR","=","vec4","(","1.0",",","0.0",",","1.0",",","1.0",")",";","}"]}]},exports["error.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";","void","main","(",")","{","gl_Position", "=","u_proj_matrix","*","bh","(","u_view_tsr",")","*","vec4","(","a_position",",","1.0",")",";","}"]}]},exports["grass_map.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"DYNAMIC_GRASS_SIZE",TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC_GRASS_COLOR",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_SIZE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","bi",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","bi",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","bi",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_SIZE"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","bi",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","bi",",","vec3","(","1.0",")",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4", "(","1.0",",","bi",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","1.0",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["grass_map.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"DYNAMIC_GRASS_SIZE",TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC_GRASS_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]}, {TYPE:"var",NAME:"BILLBOARD_JITTERED",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_SIZE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","a_grass_size",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_grass_color", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_SIZE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","bi",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","bi",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3", "bi",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0",",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_wind",";","uniform","float","u_time",";","uniform","float","u_jitter_amp",";","uniform","float","u_jitter_freq",";"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","mat3","N","=","u_view_tsr",";","mat3","Z","=","u_model_tsr",";"]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aq","=","ap","(","Z",",","vec3","(","0.0",")",")",";","Z","=","as","(","u_camera_eye",",","aq",",","N",",","u_model_tsr",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["Z","=","at","(","u_wind",",","u_time",",","u_jitter_amp",",","u_jitter_freq",",","vec3","(","0.0",")",",", "Z",")",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","a_position",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","Z",")",";","aw",".","ao","=","aq",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(","a_position",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","Z",")",";"]}]}}]},{TYPE:"txt", TOKENS:["vec4","f","=","u_proj_matrix","*","vec4","(","ap","(","N",",","aw",".","O",")",",","1.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_SIZE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bi","=","vec4","(","a_grass_size",",","a_grass_color",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bi","=","a_grass_size",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bi","=","a_grass_color",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","f",";","}"]}]},exports["halo.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"SKY_STARS",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"}, {TYPE:"txt",TOKENS:["uniform","vec4","u_diffuse_color",";","uniform","vec3","u_halo_rings_color",";","uniform","vec3","u_halo_lines_color",";","uniform","float","u_halo_hardness",";","uniform","float","u_halo_size",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_sun_intensity",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_halo_stars_blend",";","uniform","float","u_halo_stars_height",";","uniform","float","u_cam_water_depth",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS","WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","bj",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";","GLSL_IN","float","bk",";","GLSL_OUT", "vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"include",FILE:"halo_color.glslf"},{TYPE:"txt",TOKENS:["void","main","(",")","{","vec4","bm","=","bl","(",")",";","vec3","aQ","=","bm",".","rgb",";","float","aM","=","bm",".","a",";","aW","(","aQ",")",";","aX","(","aQ",",","aM",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","aM",")",";","}"]}]},exports["halo.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]}, {TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_STARS",TOKENS:["0"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";","uniform","PRECISION","float","u_halo_size",";","uniform","vec3","u_camera_eye",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0",",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec2","a_halo_bb_vertex",";","GLSL_IN","float","a_random_vals",";","GLSL_OUT","vec2","A",";","GLSL_OUT","float","bk",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","bj",";"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","mat3","N","=","u_view_tsr",";","mat3","Z","=","u_model_tsr",";","vec3","O","=","ap","(","Z",",","a_position",")",";","A","=","a_halo_bb_vertex","*","2.0","-","1.0",";","bk","=","a_random_vals",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["mat3","bo","=","bn","(","O",",","N",")",";","mat3","bp","=","N",";","bp","[","0","]","[","0","]","=","0.0",";","bp","[","0","]","[","1","]","=","0.0",";","bp","[","0","]","[","2","]","=","0.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","bo","=","bn","(","O",",","N",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec2","bq","=","(","a_halo_bb_vertex","*","2.0","-","1.0",")","*","u_halo_size",";","vec3","bs","=","vec3","(","bq","[","0","]",",","0.0",",", "bq","[","1","]",")",";","vec3","bt","=","ap","(","bo",",","bs",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","f","=","u_proj_matrix","*","vec4","(","ap","(","bp",",","bt",")",",","1.0",")",";","f",".","z","=","0.99999","*","f",".","w",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bj", "=","vec4","(","bt",",","1.0",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","f","=","u_proj_matrix","*","vec4","(","ap","(","N",",","bt",")",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","f",";","}"]}]},exports["irradiance_skybox.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform", "samplerCube","u_sky_reflection",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","GLSL_IN","vec3","bu",";","void","main","(",")","{","vec3","bv","=","normalize","(","bu",")",";","vec3","bw",";","vec3","bx","=","vec3","(","0.0",")",";","vec3","by","=","vec3","(","0.0",",","0.0",",","1.0",")",";","vec3","bz","=","vec3","(","1.0",",","0.0",",","0.0",")",";","const","float","bA","=","0.025",";","float","bB","=","0.0",";","for","(","float","bC","=","0.0",";","bC","<","2.0","*","M_PI",";","bC","+=","bA", ")","{","for","(","float","bD","=","0.0",";","bD","<","0.5","*","M_PI",";","bD","+=","bA",")","{","vec3","bE","=","vec3","(","sin","(","bD",")","*","cos","(","bC",")",",","sin","(","bD",")","*","sin","(","bC",")",",","cos","(","bD",")",")",";","vec3","bF","=","bE",".","x","*","bz","+","bE",".","y","*","by","+","bE",".","z","*","bv",";","vec3","bw","=","GLSL_TEXTURE_CUBE","(","u_sky_reflection",",","bF",")",".","rgb",";","bG","(","bw",")",";","bx","+=","bw","*","cos","(","bD",")","*","sin","(","bD", ")",";","bB","++",";","}","}","bx","=","M_PI","*","bx","*","(","1.0","/","float","(","bB",")",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","bx",",","1.0",")",";","}"]}]},exports["lens_flares.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_sampler",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR", ";","void","main","(",")","{","vec4","aQ","=","GLSL_TEXTURE","(","u_sampler",",","A",")",";","aW","(","aQ",".","rgb",")",";","aX","(","aQ",".","rgb",",","aQ",".","a",")",";","GLSL_OUT_FRAG_COLOR","=","aQ",";","}"]}]},exports["lens_flares.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"define",NAME:"LIGHT_INDEX",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"txt",TOKENS:["uniform","mat3", "u_view_tsr",";","uniform","mat4","u_proj_matrix",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","GLSL_IN","float","a_lf_dist",";","GLSL_IN","vec2","a_lf_bb_vertex",";","GLSL_IN","vec2","a_texcoord",";","GLSL_OUT","vec2","A",";","void","main","(",")","{","A","=","a_texcoord",";","vec3","bH","=","normalize","(","u_light_directions","[","LIGHT_INDEX","]",")",";","vec4","f","=","u_proj_matrix","*","vec4","(","bI","(","u_view_tsr",",","bH",")",",","0.0",")",";","f",".","x","/=","f", ".","w",";","f",".","y","/=","f",".","w",";","f","+=","99999.0","*","step","(","f",".","z",",","0.0",")",";","f","+=","100.0","*","(","step","(","1.0",",","abs","(","f",".","x",")",")","+","step","(","1.0",",","abs","(","f",".","y",")",")",")",";","f",".","x","=","a_lf_dist","*","f",".","x",";","f",".","y","=","a_lf_dist","*","f",".","y",";","float","bJ","=","u_proj_matrix","[","1","]","[","1","]","/","u_proj_matrix","[","0","]","[","0","]",";","vec2","bK","=","vec2","(","a_lf_bb_vertex",".","x", "/","bJ",",","a_lf_bb_vertex",".","y",")",";","if","(","a_lf_dist","<","0.999",")","{","const","float","bL","=","1.9",";","bK","*=","(","1.0","+","bL","*","length","(","f",".","xy",")",")",";","}","gl_Position","=","vec4","(","f",".","xy","+","bK",",","0.999999",",","1.0",")",";","}"]}]},exports["line.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include", FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","vec4","u_diffuse_color",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec3","aQ","=","u_diffuse_color",".","xyz",";","float","L","=","u_diffuse_color",".","a",";","aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]},exports["line.glslv"]= {TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec3","a_direction",";","uniform","mat3","u_model_tsr",";","uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";","uniform","float","u_height",";","uniform","float","u_line_width",";","void","main","(",")","{","mat3","N","=","u_view_tsr",";","mat3","Z", "=","u_model_tsr",";","au","aw","=","av","(","a_position",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","normalize","(","a_direction",")",",","Z",")",";","vec4","bM","=","u_proj_matrix","*","vec4","(","ap","(","N",",","aw",".","O",")",",","1.0",")",";","bM",".","xyz","/=","bM",".","w",";","vec4","bN","=","u_proj_matrix","*","vec4","(","ap","(","N",",","aw",".","O","+","aw",".","U",")",",","1.0",")",";","bN",".","xyz","/=","bN",".","w",";", "float","bJ","=","u_proj_matrix","[","1","]","[","1","]","/","u_proj_matrix","[","0","]","[","0","]",";","vec2","bO","=","(","bN","-","bM",")",".","xy",";","bO",".","x","*=","bJ",";","float","bP","=","M_PI","/","2.0",";","mat2","bQ","=","mat2","(","cos","(","bP",")",",","sin","(","bP",")",",","-","sin","(","bP",")",",","cos","(","bP",")",")",";","bO","=","bQ","*","bO",";","bO","=","normalize","(","bO",")",";","vec2","bR","=","(","u_line_width","/","u_height",")","*","vec2","(","1.0","/","bJ",",", "1.0",")",";","gl_Position","=","vec4","(","bM",".","xy","+","bO",".","xy","*","bR","/","2.0",",","bM",".","z",",","1.0",")",";","gl_Position","*=","bM",".","w",";","}"]}]},exports["main.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"SHADELESS",TOKENS:["0"]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR", TOKENS:["0"]},{TYPE:"var",NAME:"NORMAL_TEXCOORD",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_PROJ_MATRIX_FRAG",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_NORM_CO",TOKENS:["TEXTURE_COORDS_NONE"]}, {TYPE:"var",NAME:"PARALLAX",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"RGBA_SHADOWS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_BSDF_SKY_DIM",TOKENS:["0"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"WETTABLE",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_VALUES",TOKENS:["0"]}, {TYPE:"var",NAME:"NUM_RGBS",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LAMP_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"SSAO_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"PROCEDURAL_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION_CORRECTION", TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION1",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION2",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_LEVEL",TOKENS:["0.0"]},{TYPE:"var",NAME:"POISSON_DISK_NUM",TOKENS:["NO_SOFT_SHADOWS"]},{TYPE:"var",NAME:"USE_DERIVATIVES_EXT",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TEXTURE_LOD_EXT",TOKENS:["0"]},{TYPE:"var",NAME:"USE_LOD_SMOOTHING",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1", "USE_DERIVATIVES_EXT",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_OES_standard_derivatives",":","enable"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1","USE_TEXTURE_LOD_EXT",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_EXT_shader_texture_lod",":","enable"]}]}}]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"include", FILE:"math.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"coverage.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAUSTICS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"caustics.glslf"}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["RGBA_SHADOWS","USE_REFRACTION_CORRECTION",{TYPE:"logical_or_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"pack.glslf"}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_time",";","uniform","vec2","u_texel_size",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1","USE_BSDF_SKY_DIM",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_bsdf_cube_sky_dim",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_environment_energy",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions","[","NUM_LIGHTS","]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform","vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAUSTICS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_sun_quaternion",";","uniform","vec3","u_sun_intensity",";","uniform","vec3","u_sun_direction", ";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye_frag",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{TYPE:"logical_or_expr",PLACES:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_direction",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}, "USE_VIEW_TSR",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_VIEW_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR_INVERSE"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_PROJ_MATRIX_FRAG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_proj_matrix_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_color_density",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_underwater_fog_color_density",";","uniform","float","u_cam_water_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_cube_fog",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_lod_coverage",";","uniform","float","u_lod_cmp_logic",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_plane_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_cube_reflection", ";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_mirrormap",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_PBR_SIMPLE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_PBR_STANDARD",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","samplerCube","u_cube_irradiance",";","uniform","samplerCube","u_cube_r_convolution",";","uniform","sampler2D","u_brdf",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_shadow_mask",";"]}]}},{TYPE:"elif",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_csm_center_dists",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION", "GLSL_SMPLR2D_SHDW","u_shadow_map1",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION", "GLSL_SMPLR2D_SHDW","u_shadow_map3",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","USE_NODE_B4W_REFRACTION",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_refractmap",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","USE_NODE_BSDF_PRINCIPLED",{TYPE:"logical_or_expr",PLACES:2},"USE_REFRACTION","REFRACTIVE","USE_REFRACTION_CORRECTION",{TYPE:"logical_and_expr",PLACES:4}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_emit",";","uniform","float","u_ambient",";","uniform","vec2","u_fresnel_params",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_mirror_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_refl_plane",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_LAMP","NUM_LAMP_LIGHTS",0,{TYPE:"non_equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "vec3","u_lamp_light_positions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_directions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_color_intensities","[","NUM_LAMP_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_VALUE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_node_values","[","NUM_VALUES","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_RGB"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "vec3","u_node_rgbs","[","NUM_RGBS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_OBJECT_INFO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_obj_info",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","h",";","GLSL_IN","vec3", "j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2},"SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"CAUSTICS","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:3},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr", PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","k",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","B",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","n",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","o",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","u",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","v",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","USE_POSITION_CLIP",{TYPE:"logical_or_expr", PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","USE_NODE_B4W_REFRACTION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","m",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"include",FILE:"nodes.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include", FILE:"fog.glslf"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","!","C","(","u_lod_coverage",",","u_lod_cmp_logic",")",")","discard",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2},"SHADELESS", {TYPE:"logic_negative_expr",PLACES:1},"CAUSTICS","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:3},{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bS","=","length","(","i",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bT","=","h",".","z","-","WATER_LEVEL",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","D","=","normalize","(","u_camera_eye_frag","-","h",")",";","vec3","E",";","vec3", "F",";","vec3","G",";","vec4","H",";","float","I",";","J","(","D",",","E",",","F",",","G",",","H",",","I",")",";","vec3","aQ","=","E",";","float","L","=","I",";","vec3","U","=","G",";","vec4","bU","=","H",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WETTABLE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","max","(","aQ", "-","sqrt","(","0.01","*","-","min","(","bT",",","0.0",")",")",",","0.5","*","aQ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAUSTICS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bV","(","aQ",",","bT",",","u_time",",","bU",",","U",",","u_sun_direction",",","u_sun_intensity",",","u_sun_quaternion",",","h",",","bS",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA_CLIP"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["if","(","L","<","0.5",")","discard",";","L","=","1.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","min","(","1.0",",","L",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bW", "(","aQ",",","bS",",","D",",","bT",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bW","(","aQ",",","bS",",","D",",","1.0",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_ONLY","SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bX","=","GLSL_TEXTURE_PROJ","(","u_shadow_mask",",","l",")",".","a",";","aQ","=","vec3","(","bX",")",";"]}]}}]},{TYPE:"txt", TOKENS:["aQ","=","max","(","vec3","(","0.0",")",",","aQ",")",";","aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA","ALPHA_CLIP",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]},exports["main.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION", TOKENS:["highp"]},{TYPE:"var",NAME:"SHADELESS",TOKENS:["0"]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"MAIN_BEND_COL",TOKENS:["0"]},{TYPE:"var",NAME:"DETAIL_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN",TOKENS:["0"]},{TYPE:"var",NAME:"USE_INSTANCED_PARTCLS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_NORM_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"PARALLAX",TOKENS:["0"]},{TYPE:"var", NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"SMAA_JITTER",TOKENS:["0"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"AU_QUALIFIER",TOKENS:["GLSL_IN"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"BEND_CENTER_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD_JITTERED",TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC_GRASS",TOKENS:["0"]}, {TYPE:"var",NAME:"SKINNED",TOKENS:["0"]},{TYPE:"var",NAME:"FRAMES_BLENDING",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_ANIM",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"MAC_OS_SHADOW_HACK",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION1",TOKENS:["0"]},{TYPE:"var", NAME:"CSM_SECTION2",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXCOORD",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_ANIM_MIX_NORMALS_FACTOR",TOKENS:["u_va_frame_factor"]},{TYPE:"var",NAME:"MAX_BONES",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"include",FILE:"scale_texcoord.glslv"},{TYPE:"txt", TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec4","a_tbn",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_INSTANCED_PARTCLS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_part_ts",";","GLSL_IN","vec4","a_part_r",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_shade_tangs",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN", "vec4","a_influence",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:3},"USE_INSTANCED_PARTCLS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","float","a_bending_col_main",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DETAIL_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_bending_col_detail",";","AU_QUALIFIER","float","au_detail_bending_amp",";","AU_QUALIFIER","float","au_branch_bending_amp",";","AU_QUALIFIER","float","au_detail_bending_freq",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["AU_QUALIFIER","float","au_wind_bending_amp",";","AU_QUALIFIER","float","au_wind_bending_freq",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["BEND_CENTER_ONLY"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position_next",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN", "USE_NODE_TEX_COORD_RE",{TYPE:"logical_or_expr",PLACES:9}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_tbn_next",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","vec3","a_color",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","h",";","GLSL_OUT","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2},"SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"CAUSTICS","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:3},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr", PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","k",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr", PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","bY",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_COLOR","DYNAMIC_GRASS",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","bZ",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","n",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","o",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","u", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","v",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_OUT","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_B4W_REFRACTION",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","m",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","B",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0",",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_view_refl_matrix",";"]}]}}]}, {TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"BILLBOARD","DYNAMIC_GRASS",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_JITTER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_subpixel_jitter",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_grass_map_depth",";","uniform","sampler2D","u_grass_map_color",";","uniform","vec4","u_camera_quat",";","uniform","vec3","u_grass_map_dim",";","uniform","float","u_grass_size",";","uniform","float","u_scale_threshold",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsb","[","MAX_BONES","]",";","uniform", "vec4","u_transb","[","MAX_BONES","]",";","uniform","vec4","u_arm_rel_trans",";","uniform","vec4","u_arm_rel_quat",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsa","[","MAX_BONES","]",";","uniform","vec4","u_transa","[","MAX_BONES","]",";","uniform","float","u_frame_factor",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_JITTERED"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_jitter_amp",";","uniform","float","u_jitter_freq",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_wind",";","uniform","PRECISION","float","u_time",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_va_frame_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","vec3","u_texture_scale",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_normal_offset",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAC_OS_SHADOW_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_v_light_tsr","[","NUM_CAST_LAMPS","]",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4", "u_v_light_ts","[","NUM_CAST_LAMPS","]",";","uniform","vec4","u_v_light_r","[","NUM_CAST_LAMPS","]",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix1",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2}, {TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix2",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix3",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","USE_NODE_B4W_REFRACTION",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","PRECISION","float","u_view_max_depth",";"]}]}}]},{TYPE:"include",FILE:"dynamic_grass.glslv"},{TYPE:"include",FILE:"shadow.glslv"},{TYPE:"include",FILE:"skin.glslv"},{TYPE:"include",FILE:"wind_bending.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"nodes.glslv"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat4","b_","=","u_view_refl_matrix",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat4","b_","=","mat4","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["mat3","N","=","u_view_tsr",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_INSTANCED_PARTCLS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","Z","=","aZ","(","a_part_ts",".","xyz",",","aY","(",")",")",";","Z","=","a_","(","vec3","(","a_part_ts",".","w",")",",","Z",")",";", "Z","=","bc","(","a_part_r",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["Z","=","bd","(","u_model_tsr",",","Z",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","Z","=","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","O","=","a_position",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO", "USE_NODE_NORMAL_MAP","CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_TBN_SHADING","CALC_TBN",{TYPE:"logical_and_expr",PLACES:2},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:14}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","P",",","Q",";","vec4","S","=","R","(","a_tbn",",","P",",","Q", ")",";","vec3","ca","=","T","(","S",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr", PLACES:13}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","U","=","ca",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","U","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE","NODES",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_UV_ORCO",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","T", "(","S",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";","vec3","W","=","Q","*","cross","(","U",",","V",")",";","vec4","Y","=","X","(","W",",","Q","*","P",")",";","V","=","T","(","Y",",","U",")",";"]}]}},{TYPE:"elif",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cb","=","ap","(","Z",",","O",")",";","vec3","ac","=","normalize", "(","bI","(","Z",",","ca",")",")",";","vec3","D","=","cb","-","u_camera_eye",";","vec3","W","=","cross","(","D",",","ac",")",";","vec3","V","=","cross","(","ac",",","W",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","0.0",")",";","vec3","W","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["vec3","ac","=","normalize","(","bI","(","Z",",","ca",")",")",";","vec3","ad","=","cross","(","vec3","(","0.0",",","0.0",",","1.0",")",",","ac",")",";","vec3","ae","=","cross","(","ac",",","ad",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ae","=","a_shade_tangs",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ae","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["O","=","mix","(","O",",","a_position_next",",","u_va_frame_factor",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_NORMAL_MAP","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"USE_NODE_BSDF_BEGIN","USE_NODE_TEX_COORD_RE","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:10}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["float","af",",","ah",";","vec4","ai","=","R","(","a_tbn_next",",","af",",","ah",")",";","vec3","aj","=","T","(","ai",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_NORMAL_MAP","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","USE_NODE_BSDF_BEGIN","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:8}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["U","=","mix", "(","U",",","aj",",","VERTEX_ANIM_MIX_NORMALS_FACTOR",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ak","=","T","(","ai",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";","vec3","al","=","ah","*","cross","(","aj",",","ak",")",";","vec4","am","=","X","(","al",",","ah","*","af",")",";","ak","=","T","(","am",",","aj",")",";","V","=","mix","(","V",",","ak",",", "u_va_frame_factor",")",";","W","=","mix","(","W",",","al",",","u_va_frame_factor",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["an","(","O",",","V",",","W",",","U",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:3},"USE_INSTANCED_PARTCLS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["vec3","ao","=","au_center_pos",";"]}]}},{TYPE:"elif",EXPRESSION:["DYNAMIC_GRASS","USE_INSTANCED_PARTCLS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","a_part_ts",".","xyz",";","O","=","ap","(","Z",",","O",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=", "be","(","O",",","V",",","ae",",","W",",","U",",","ao",",","u_grass_map_depth",",","u_grass_map_color",",","u_grass_map_dim",",","u_grass_size",",","u_camera_eye",",","u_camera_quat",",","N",",","Z",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aq","=","ap","(","Z",",","ao",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","(","b_","*","vec4","(","O",",","1.0",")",")",".","xyz",";","ao","=","(","b_","*","vec4","(","ao",",","1.0",")",")",".","xyz",";","aq","=","(","b_","*","vec4","(","aq",",","1.0",")",")",".","xyz",";"]}]}}]},{TYPE:"txt",TOKENS:["Z","=","as","(","u_camera_eye",",","aq",",","N",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3", "bf","=","aq",";","Z","=","at","(","u_wind",",","u_time",",","u_jitter_amp",",","u_jitter_freq",",","bf",",","Z",")",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","O","-","ao",",","ao",",","V",",","ae",",","W",",","U",",","Z",")",";","aw",".","ao","=","aq",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(","O",",","ao",",","V",",","ae",",","W",",","U",",","Z",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE", {TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","aA","=","(","dot","(","cross","(","aw",".","U",",","aw",".","V",")",",","aw",".","W",")","<","0.0",")","?","-","1.0",":","1.0",";","k","=","vec4","(","aw",".","V",",","aA",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["B","=","aw",".","aB",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ax","(","aw",".","O",",","aw",".","ao",",","U",",","b_",")",";"]}]}}]},{TYPE:"txt",TOKENS:["h","=","aw",".","O",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE", "USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:13}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["j","=","aw",".","U",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bY","=","u_camera_eye","-","aw",".","O",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","az","(","a_texcoord",",","u_texture_scale",")",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bZ","=","aw",".","aQ",";"]}]}},{TYPE:"elif",EXPRESSION:["VERTEX_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bZ","=","a_color",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2},"BILLBOARD",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4", "cc","=","b_","*","vec4","(","aw",".","O",",","1.0",")",";","cc",".","xyz","=","ap","(","N",",","cc",".","xyz",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cc","=","vec4","(","ap","(","N",",","aw",".","O",")",",","1.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2},"SHADELESS", {TYPE:"logic_negative_expr",PLACES:1},"CAUSTICS","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:3},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["i","=","cc",";"]}]}}]},{TYPE:"txt",TOKENS:["vec4","f","=","u_proj_matrix","*","cc",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_JITTER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["f",".","xy","+=","u_subpixel_jitter","*","f",".","w",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["l","=","aC","(","f",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cd","(","aw",".","O",",","aw",".","U",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","NODES",{TYPE:"logic_negative_expr",PLACES:1},"USE_NODE_B4W_REFRACTION",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["m","=","-","cc",".","z","/","u_view_max_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["J", "(",")",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","f",";","}"]}]},exports["main_stack.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"TEXTURE_NORM_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"TEXTURE_SPEC_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR0_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var", NAME:"TEXTURE_COLOR1_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"PARALLAX",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_PLANE"]},{TYPE:"var",NAME:"RGBA_SHADOWS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_SPEC",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA_AS_SPEC",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_STENCIL_ALPHA_MASK",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_STENCIL_ALPHA_MASK_CO", TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"NORMAL_TEXCOORD",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION_CORRECTION",TOKENS:["0"]},{TYPE:"var",NAME:"DOUBLE_SIDED_LIGHTING",TOKENS:["0"]},{TYPE:"var",NAME:"SHADELESS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXCOORD",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"WETTABLE",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION1",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION2",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]}, {TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_LEVEL",TOKENS:["0.0"]},{TYPE:"var",NAME:"PROCEDURAL_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_BLEND_TYPE",TOKENS:["TEXTURE_BLEND_TYPE_MIX"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"PARALLAX_LOD_DIST",TOKENS:["5.0"]},{TYPE:"var",NAME:"PARALLAX_STEPS", TOKENS:["5.0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"DYNAMIC_GRASS",TOKENS:["0"]},{TYPE:"var",NAME:"POISSON_DISK_NUM",TOKENS:["NO_SOFT_SHADOWS"]},{TYPE:"var",NAME:"SSAO_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"USE_LOD_SMOOTHING", TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"coverage.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAUSTICS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include", FILE:"caustics.glslf"}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["RGBA_SHADOWS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"pack.glslf"}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_time",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{TYPE:"logical_and_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_environment_energy",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions","[","NUM_LIGHTS", "]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform","vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAUSTICS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_sun_quaternion",";","uniform","vec3","u_sun_intensity",";","uniform","vec3","u_sun_direction",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE", {TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_color_density",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_underwater_fog_color_density",";","uniform","float","u_cam_water_depth", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_cube_fog",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_lod_coverage",";","uniform","float","u_lod_cmp_logic",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_colormap0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_SPEC","ALPHA_AS_SPEC",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_specmap0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE", {TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_normalmap0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_STENCIL_ALPHA_MASK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_colormap1",";","uniform","sampler2D","u_stencil0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D", "u_plane_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_cube_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_shadow_mask",";"]}]}},{TYPE:"elif",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_csm_center_dists",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW", "u_shadow_map0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map1",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map3",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_refractmap",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","USE_REFRACTION_CORRECTION", {TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_emit",";","uniform","float","u_ambient",";","uniform","vec2","u_fresnel_params",";","uniform","float","u_specular_alpha",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_reflect_factor",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_mirror_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_refl_plane",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4", "u_diffuse_color",";","uniform","vec2","u_diffuse_params",";","uniform","float","u_diffuse_intensity",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_normal_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_diffuse_color_factor", ";","uniform","float","u_alpha_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_SPEC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_specular_color_factor",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_specular_color",";","uniform","vec3","u_specular_params",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","float","u_parallax_scale",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_refr_bump",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","h",";","GLSL_IN","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2},"SHADELESS",{TYPE:"logic_negative_expr", PLACES:1},"CAUSTICS",{TYPE:"logical_and_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","vec4","k",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","bY",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","B",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_COLOR","DYNAMIC_GRASS",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","vec3","bZ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","n",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","o",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS", 2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","u",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","v",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr", PLACES:2},"REFRACTIVE",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","m",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"shadow.glslf"}]}}]},{TYPE:"include", FILE:"mirror.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"refraction.glslf"}]}}]},{TYPE:"include",FILE:"environment.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"lighting_nodes.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"fog.glslf"}]}}]}, {TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","!","C","(","u_lod_coverage",",","u_lod_cmp_logic",")",")","discard",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2},"SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}, "CAUSTICS","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:3},{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bS","=","length","(","i",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bT","=","h",".","z","-","WATER_LEVEL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","ce","=","A",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3", "cf","=","normalize","(","j",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","gl_FrontFacing","==","false",")"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","gl_FrontFacing",")"]}]}}]},{TYPE:"txt",TOKENS:["cf","=","cf",";","else","cf","=","-","cf",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","W","=","cross","(","cf",",","k",".","xyz",")","*","k",".","w",";","mat3","cg","=","mat3","(","k",".","xyz",",","W",",","cf",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["mat3","N","=","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","ch","=","normalize","(","bI","(","N",",","j",")",")",".","st",";","ch","=","ch","*","vec2","(","0.495",")","+","vec2","(","0.5",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"PARALLAX",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["if","(","bS","<","PARALLAX_LOD_DIST",")","{","float","ci","=","clamp","(","0.5","*","(","PARALLAX_LOD_DIST","-","bS",")",",","0.0",",","1.0",")",";","float","cj","=","u_parallax_scale","*","ci",";","vec3","ck","=","normalize","(","bY","*","cg",")",";","float","cl","=","1.0","/","PARALLAX_STEPS",";","vec2","cm","=","ck",".","xy","*","cj","/","(","PARALLAX_STEPS","*","ck",".","z",")",";","float","cn","=","1.0",";","float","co",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO", "TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","cp","=","ch",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","cp","=","ce",";"]}]}}]},{TYPE:"txt",TOKENS:["co","=","GLSL_TEXTURE","(","u_normalmap0",",","cp",")",".","a",";","for","(","float","cq","=","1.0",";","cq","<=","PARALLAX_STEPS",";","cq","++",")","{","if","(","co","<","cn",")","{","cn","-=","cl",";","cp","-=","cm",";","co","=","GLSL_TEXTURE","(","u_normalmap0", ",","cp",")",".","a",";","}","}","vec2","cr","=","cp","+","cm",";","float","cs","=","GLSL_TEXTURE","(","u_normalmap0",",","cr",")",".","a","-","(","cn","+","cl",")",";","float","ct","=","co","-","cn",";","float","cu","=","ct","/","(","ct","-","cs",")",";","cp","=","cu","*","cr","+","(","1.0","-","cu",")","*","cp",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXCOORD"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ce","+=","cp","-","ch",";"]}]}}]},{TYPE:"txt",TOKENS:["ch","=","cp",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ch","+=","cp","-","ce",";"]}]}}]},{TYPE:"txt",TOKENS:["ce","=","cp",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec4","cv",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cv","=","GLSL_TEXTURE","(","u_normalmap0",",","ch",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cv","=","GLSL_TEXTURE","(","u_normalmap0",",","ce",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","cw","=","cv",".","rgb","-","0.5",";","cw","=","mix","(","vec3","(","0.0",",","0.0", ",","1.0",")",",","cw",",","u_normal_factor",")",";","vec3","U","=","cg","*","cw",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","U","=","cf",";"]}]}}]},{TYPE:"txt",TOKENS:["U","=","normalize","(","U",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ch","=","normalize","(","bI","(","N",",","U",")",")",".","st",";","ch","=","ch","*","vec2","(","0.495",")","+","vec2","(","0.5",")",";"]}]}}]},{TYPE:"txt", TOKENS:["vec3","D","=","normalize","(","bY",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_COLOR","DYNAMIC_GRASS",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cx","=","bZ",";","bG","(","cx",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_COLOR","DYNAMIC_GRASS",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cy","=","vec4","(","cx",",","1.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec4","cy","=","u_diffuse_color",";"]}]}}]},{TYPE:"txt",TOKENS:["float","cz","=","1.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cA","=","GLSL_TEXTURE","(","u_colormap0",",","ch",")",";"]}]}},{TYPE:"elif",EXPRESSION:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_UV_ORCO",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4", "cA","=","GLSL_TEXTURE","(","u_colormap0",",","ce",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR0_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bG","(","cA",".","rgb",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_STENCIL_ALPHA_MASK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cB",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR1_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cB","=","GLSL_TEXTURE","(","u_colormap1",",","ch",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cB","=","GLSL_TEXTURE","(","u_colormap1",",","ce",")",";"]}]}}]},{TYPE:"txt",TOKENS:["bG","(","cB",".","rgb",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_STENCIL_ALPHA_MASK_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cC","=","GLSL_TEXTURE", "(","u_stencil0",",","ch",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cC","=","GLSL_TEXTURE","(","u_stencil0",",","ce",")",";"]}]}}]},{TYPE:"txt",TOKENS:["cA","=","mix","(","cA",",","cB",",","cC",".","r",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cy",".","rgb","=","mix","(","cy",".","rgb",",","cA",".","rgb",",","u_diffuse_color_factor", ")",";","float","M","=","u_alpha_factor","*","cA",".","a",";","M","+=","(","1.0","-","step","(","0.0",",","M",")",")",";","cy",".","a","=","mix","(","M",",","1.0",",","u_diffuse_color",".","a",")",";","cz","=","cA",".","a",";"]}]}},{TYPE:"elif",EXPRESSION:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MULTIPLY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cy",".","rgb","*=","mix","(","vec3","(","1.0",")",",","cA",".","rgb",",","u_diffuse_color_factor",")",";","cy",".","a", "=","cA",".","a",";","cz","=","cA",".","a",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aQ","=","cy",".","rgb",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cD","=","u_diffuse_intensity","*","cy",".","rgb",";","vec3","cF","=","u_environment_energy","*","cE","(","U",")",";","vec3","cG","=","u_ambient","*","cF",";","vec4","bU","=","cH","(","cD",")",";","vec3","cI","=","u_emit","*","cy",".","rgb", ";","vec3","cJ","=","u_specular_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_SPEC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA_AS_SPEC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cK","=","vec3","(","cz",")",";"]}]}},{TYPE:"elif",EXPRESSION:["TEXTURE_SPEC_CO","TEXTURE_COORDS_NORMAL",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cK","=","GLSL_TEXTURE","(","u_specmap0",",","ch",")",".","rgb",";"]}]}}, {TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cK","=","GLSL_TEXTURE","(","u_specmap0",",","ce",")",".","rgb",";"]}]}}]},{TYPE:"txt",TOKENS:["bG","(","cK",".","rgb",")",";","cJ","=","mix","(","cJ",",","cK",",","u_specular_color_factor",")",";"]}]}}]},{TYPE:"txt",TOKENS:["float","cL","=","u_specular_params","[","0","]",";","vec2","cM","=","vec2","(","u_specular_params","[","1","]",",","u_specular_params","[","2","]",")",";","vec3","cN","=","cL","*","cJ",";","vec3","aQ",";","vec3", "cO",";","cP","(","cI",",","cG",",","cD",",","cN",",","h",",","U",",","D",",","cM",",","u_diffuse_params",",","bU",",","0.0",",","vec4","(","0.0",")",",","aQ",",","cO",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cQ","(","aQ",",","D",",","U",",","u_reflect_factor",",","N",")",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["cQ","(","aQ",",","D",",","U",",","u_reflect_factor",",","mat3","(","0.0",")",")",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cQ","(","aQ",",","D",",","U",",","u_mirror_factor",",","mat3","(","0.0",")",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","+=","cO",";"]}]}}]}, {TYPE:"txt",TOKENS:["float","L","=","cy",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WETTABLE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","max","(","aQ","-","sqrt","(","0.01","*","-","min","(","bT",",","0.0",")",")",",","0.5","*","aQ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAUSTICS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bV","(","aQ",",","bT",",","u_time",",","bU",",","U",",","u_sun_direction",",","u_sun_intensity",",","u_sun_quaternion",",","h",",","bS",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA_CLIP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","L","<","0.5",")","discard",";","L","=","1.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","t","=","max","(","max","(","cO",".","r",",","cO",".","g",")",",","cO",".","b",")","*","u_specular_alpha",";","L","=","cy",".","a","*","(","1.0","-","t",")","+","t",";"]}]}}]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","cR","=", "-","(","bI","(","N",",","U",")",")",".","xy",";","aQ","=","mix","(","cS","(","l",",","cR","*","u_refr_bump",")",",","aQ",",","L",")",";","L","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bW","(","aQ",",","bS",",","D",",","bT",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bW", "(","aQ",",","bS",",","D",",","1.0",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_ONLY","SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bX","=","GLSL_TEXTURE_PROJ","(","u_shadow_mask",",","l",")",".","a",";","aQ","=","vec3","(","bX",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA","ALPHA_CLIP",{TYPE:"logic_negative_expr", PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]},exports["node_skybox.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"USE_VIEW_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR_INVERSE",TOKENS:["0"]}, {TYPE:"var",NAME:"NUM_VALUES",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_RGBS",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_VALUE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_node_values","[","NUM_VALUES","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_RGB"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3", "u_node_rgbs","[","NUM_RGBS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_VIEW_TSR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_VIEW_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","bu",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"include", FILE:"nodes.glslf"},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEXTURE_ENVIRONMENT_EQUIRECTANGULAR","USE_NODE_TEXTURE_ENVIRONMENT_MIRROR_BALL","USE_NODE_GEOMETRY_NO","USE_NODE_GEOMETRY_GL","USE_NODE_GEOMETRY_IN","USE_NODE_TEX_COORD_GE","USE_NODE_TEX_COORD_OB","USE_NODE_TEX_COORD_NO","USE_NODE_B4W_REFLECT_WORLD",{TYPE:"logical_or_expr",PLACES:9}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","D","=","-","normalize","(","bu",")",";"]}]}}, {TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","D",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","E",";","vec3","F",";","vec3","G",";","vec4","H",";","float","I",";","J","(","D",",","E",",","F",",","G",",","H",",","I",")",";","E","=","max","(","vec3","(","0.0",")",",","E",")",";","aW","(","E",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","E",",","_1_0",")",";","}"]}]},exports["particle_system.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"NUM_VALUES", TOKENS:["0"]},{TYPE:"var",NAME:"NUM_RGBS",TOKENS:["0"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"NUM_LAMP_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"PROCEDURAL_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"NORMAL_TEXCOORD",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR_INVERSE", TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"SOFT_STRENGTH",TOKENS:["0.25"]},{TYPE:"var",NAME:"SOFT_PARTICLES",TOKENS:["0"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]}, {TYPE:"var",NAME:"TEXTURE_NORM_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"USE_DERIVATIVES_EXT",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TEXTURE_LOD_EXT",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1","USE_DERIVATIVES_EXT",{TYPE:"logical_and_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_OES_standard_derivatives",":","enable"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1","USE_TEXTURE_LOD_EXT",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_EXT_shader_texture_lod",":","enable"]}]}}]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES", "NODES",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"pack.glslf"}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_environment_energy",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions","[","NUM_LIGHTS","]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform","vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_color_density",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_underwater_fog_color_density",";","uniform","float","u_cam_water_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "mat4","u_cube_fog",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_emit",";","uniform","float","u_ambient",";","uniform","float","u_time",";","uniform","vec3","u_camera_eye_frag",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{TYPE:"logical_or_expr",PLACES:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_direction",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_LAMP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_lamp_light_positions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_directions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_color_intensities","[","NUM_LAMP_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_VALUE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","vec4","u_node_values","[","NUM_VALUES","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_RGB"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_node_rgbs","[","NUM_RGBS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NORMAL_TEXCOORD","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_VIEW_TSR",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_VIEW_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";","uniform","float","u_view_max_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_OBJECT_INFO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "vec3","u_obj_info",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE","USE_TBN_SHADING",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","k",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["TEXTURE_COLOR","USE_NODE_TEX_COORD_UV","USE_NODE_UV_MERGED","USE_NODE_UVMAP","USE_NODE_GEOMETRY_UV","USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:7}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","h",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"NODES",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","vec4","i",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","j",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"fog.glslf"}]}}]},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"particles_nodes.glslf"},{TYPE:"txt",TOKENS:["void","main","(",")","{","vec3","D","=","normalize","(","u_camera_eye_frag","-","h",")",";","vec3","E",";","vec3", "F",";","vec3","G",";","vec4","H",";","float","I",";","J","(","D",",","E",",","F",",","G",",","H",",","I",")",";","vec3","aQ","=","E",";","float","L","=","I",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA_CLIP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","L","<","0.5",")","discard",";","L","=","1.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","min","(","1.0",",","L",")", ";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bW","(","aQ",",","length","(","i",")",",","D",",","1.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","cT","=","-","i",".","z","/","u_view_max_depth",";","vec4","cU","=","GLSL_TEXTURE_PROJ", "(","u_scene_depth",",","l",")",";","float","cW","=","cV","(","cU",")",";","float","cX","=","cW","-","cT",";","float","cY","=","u_view_max_depth","/","SOFT_STRENGTH","*","cX",";","L","=","L","*","min","(","cY",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA","ALPHA_CLIP",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"txt", TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]},exports["particle_system.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"BILLBOARD_ALIGN",TOKENS:["BILLBOARD_ALIGN_VIEW"]},{TYPE:"var",NAME:"TEXTURE_NORM_CO",TOKENS:["TEXTURE_COORDS_NONE"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"HALO_PARTICLES", TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"PARTICLES_SHADELESS",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"SOFT_PARTICLES",TOKENS:["0"]},{TYPE:"var",NAME:"COLOR_RAMP_LENGTH",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"WORLD_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_COLOR_RAMP",TOKENS:["0"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]}, {TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"MAIN_BEND_COL",TOKENS:["0"]},{TYPE:"var",NAME:"DETAIL_BEND",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec4","a_tbn",";","GLSL_IN","vec3","a_p_data",";","GLSL_IN","vec4","a_p_vels",";","GLSL_IN","vec2","a_p_bb_vertex",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES", {TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","cZ",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","bZ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE","USE_TBN_SHADING",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","k",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR","HALO_PARTICLES", "USE_NODE_TEX_COORD_UV","USE_NODE_UV_MERGED","USE_NODE_UVMAP","USE_NODE_GEOMETRY_UV","USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:8}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","h",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","bY",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"NODES",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["HALO_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","bk",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_p_color_ramp","[","COLOR_RAMP_LENGTH","]",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_p_time",";","uniform","float","u_p_length",";","uniform","int","u_p_cyclic",";","uniform","float", "u_p_fade_in",";","uniform","float","u_p_fade_out",";","uniform","float","u_p_nfactor",";","uniform","float","u_p_gravity",";","uniform","float","u_p_mass",";","uniform","float","u_p_wind_fac",";","uniform","float","u_p_max_lifetime",";","uniform","float","u_p_tilt",";","uniform","float","u_p_tilt_rand",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_view_refl_matrix", ";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";","uniform","vec3","u_wind",";","uniform","float","u_p_size",";","uniform","vec3","u_camera_eye",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WORLD_SPACE",{TYPE:"logic_negative_expr",PLACES:1},"NODES","HALO_PARTICLES",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_COLOR_RAMP"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color_ramp_tex",";"]}]}}]},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"include",FILE:"particles.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"particles_nodes.glslv"}]}}]},{TYPE:"txt",TOKENS:["float","db","(","vec2","c_",",","vec2","da",")","{","return","(","atan","(","da",".","y",",","da",".","x",")","-","atan","(","c_",".","y",",", "c_",".","x",")",")",";","}","void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat4","b_","=","u_view_refl_matrix",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat4","b_","=","mat4","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["mat3","N","=","u_view_tsr",";","dc","pp",";","pp","=","dd","(",")",";","float","de",";","mat3","bo","=","aY","(",")", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","df","=","(","b_","*","vec4","(","pp",".","O",",","1.0",")",")",".","xyz",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","df","=","pp",".","O",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","U","=","vec3","(","0.0",",","-","1.0",",","0.0",")",";","if","(","BILLBOARD_ALIGN","==","BILLBOARD_ALIGN_VIEW",")","{","de","=", "pp",".","bP",";","bo","=","bn","(","df",",","N",")",";","}","else","if","(","BILLBOARD_ALIGN","==","BILLBOARD_ALIGN_XY",")","{","de","=","db","(","vec2","(","EPSILON",",","1.0",")",",","vec2","(","U",".","x",",","-","U",".","y",")",")","+","pp",".","bP",";","bo","=","aZ","(","df",",","bo",")",";","vec4","dg","=","X","(","RIGHT_VECTOR",",","-","M_PI","/","2.0",")",";","bo","=","bc","(","dg",",","bo",")",";","}","else","if","(","BILLBOARD_ALIGN","==","BILLBOARD_ALIGN_YZ",")","{","de","=","pp",".", "bP",";","bo","=","aZ","(","df",",","bo",")",";","vec4","dh","=","X","(","UP_VECTOR",",","M_PI","/","2.0",")",";","bo","=","bc","(","dh",",","bo",")",";","}","else","if","(","BILLBOARD_ALIGN","==","BILLBOARD_ALIGN_ZX",")","{","de","=","pp",".","bP",";","bo","=","aZ","(","df",",","bo",")",";","}","vec3","bs","=","vec3","(","(","a_p_bb_vertex","[","0","]","*","2.0","-","1.0",")","*","pp",".","di","*","u_p_size",",","0.0",",","(","a_p_bb_vertex","[","1","]","*","2.0","-","1.0",")","*","pp",".","di", "*","u_p_size",")",";","float","dj","=","a_p_data","[","2","]",";","float","dk","=","u_p_tilt","*","u_p_tilt_rand","*","(","2.0","*","dj","-","1.0",")",";","float","dl","=","(","dk","+","u_p_tilt",")","*","M_PI",";","vec4","dm","=","X","(","TOWARD_VECTOR",",","dl","+","de",")",";","vec3","bt","=","ap","(","bo",",","T","(","dm",",","bs",")",")",";","vec4","cc","=","vec4","(","ap","(","N",",","bt",")",",","1.0",")",";","vec4","f","=","u_proj_matrix","*","cc",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bk","=","dj",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","dn","=","aY","(",")",";","dm","=","X","(","TOWARD_VECTOR",",","de",")",";","dn","=","bc","(","dm",",","dn",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE", "NODES",{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_NORM_CO","TEXTURE_COORDS_UV_ORCO",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2},"USE_TBN_SHADING",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","1.0",",","0.0",",","0.0",")",";","vec3","W","=","vec3","(","0.0",",","0.0",",","1.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","0.0",")",";","vec3","W","=","vec3","(","0.0", ")",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","vec3","(","0.0",")",",","vec3","(","0.0",")",",","V",",","vec3","(","0.0",")",",","W",",","U",",","bd","(","bo",",","dn",")",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_NORM_CO","TEXTURE_COORDS_NONE",{TYPE:"non_equal_expr",PLACES:2},"CALC_TBN_SPACE","USE_TBN_SHADING",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","aA","=","(","dot","(","cross","(","aw",".","U",",","aw",".","V",")", ",","aw",".","W",")","<","0.0",")","?","-","1.0",":","1.0",";","k","=","vec4","(","aw",".","V",",","aA",")",";"]}]}}]},{TYPE:"txt",TOKENS:["J","(","pp",".","O",",","pp",".","dp",",","pp",".","dq",",","pp",".","dr",",","pp",".","di",",","a_p_bb_vertex",",","a_p_data","[","0","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(", "vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","U",",","bd","(","bo",",","dn",")",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","a_p_bb_vertex",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","a_p_bb_vertex","*","2.0","-","1.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["cZ","=","pp",".","L",";"]}]}}]},{TYPE:"txt",TOKENS:["bZ","=","pp",".","aQ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1},"PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2},"USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL", "USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT",{TYPE:"logical_or_expr",PLACES:11}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["j","=","aw",".","U",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["l","=","aC","(","f",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"NODES",{TYPE:"logical_or_expr", PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["i","=","cc",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","f",";","h","=","bt",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bY","=","u_camera_eye","-","bt",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["particle_system_stack.glslf"]={TYPE:"grp", PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"PROCEDURAL_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_BLEND_TYPE",TOKENS:["TEXTURE_BLEND_TYPE_MIX"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"SOFT_STRENGTH",TOKENS:["0.25"]},{TYPE:"var",NAME:"SOFT_PARTICLES", TOKENS:["0"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"HALO_PARTICLES",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_STARS",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"PARTICLES_SHADELESS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"}, {TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","NODES",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"pack.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_sampler", ";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_environment_energy",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions","[","NUM_LIGHTS","]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform","vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","float","u_diffuse_color_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"txt", TOKENS:["uniform","vec2","u_diffuse_params",";","uniform","float","u_diffuse_intensity",";","uniform","float","u_emit",";","uniform","float","u_ambient",";","uniform","vec3","u_specular_color",";","uniform","vec3","u_specular_params",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_halo_size",";","uniform","vec3","u_halo_rings_color",";","uniform","float","u_halo_hardness",";","uniform","vec3","u_halo_lines_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_sun_intensity",";","uniform","float","u_halo_stars_blend",";","uniform","float","u_halo_stars_height",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_p_alpha_start",";","uniform","float","u_p_alpha_end",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_color_density",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_underwater_fog_color_density",";","uniform","float","u_cam_water_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_cube_fog",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_diffuse_color",";"]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";","uniform","float","u_view_max_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR","HALO_PARTICLES","USE_NODE_TEX_COORD_UV","USE_NODE_UV_MERGED","USE_NODE_UVMAP","USE_NODE_GEOMETRY_UV", "USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:8}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","h",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","cZ",";"]}]}}]},{TYPE:"txt", TOKENS:["GLSL_IN","vec3","bZ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","bY",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"NODES",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","bk",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","bj",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","B",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","j",";","GLSL_OUT", "vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"include",FILE:"lighting_nodes.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"fog.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"environment.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include", FILE:"halo_color.glslf"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","D","=","normalize","(","bY",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HALO_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","bm","=","bl","(",")",";", "vec3","aQ","=","bm",".","rgb","*","bZ",";","float","ds","=","0.9","*","length","(","A",")",";","float","dt","=","smoothstep","(","u_p_alpha_start",",","u_p_alpha_end",",","ds",")",";","float","L","=","bm",".","a","*","(","1.0","-","dt",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cy","=","u_diffuse_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cA","=","GLSL_TEXTURE","(","u_sampler",",", "A",")",";","bG","(","cA",".","rgb",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cy",".","rgb","=","mix","(","cy",".","rgb",",","cA",".","rgb",",","u_diffuse_color_factor",")",";"]}]}},{TYPE:"elif",EXPRESSION:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MULTIPLY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cy",".","rgb","*=","mix","(","vec3", "(","1.0",")",",","cA",".","rgb",",","u_diffuse_color_factor",")",";"]}]}}]},{TYPE:"txt",TOKENS:["cy",".","a","=","cA",".","a",";"]}]}}]},{TYPE:"txt",TOKENS:["cy",".","rgb","*=","bZ",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PARTICLES_SHADELESS",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cD","=","u_diffuse_intensity","*","cy",".","rgb",";","vec3","cI","=","u_emit","*","cy",".","rgb",";","vec3","U","=","normalize","(","j",")",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logic_negative_expr",PLACES:1},"SKY_COLOR",{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cF","=","u_environment_energy","*","cE","(","vec3","(","0.0",")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cF","=","u_environment_energy","*","cE","(","U",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","cG","=","u_ambient","*","cF",";","float","cL","=","u_specular_params", "[","0","]",";","vec2","cM","=","vec2","(","u_specular_params","[","1","]",",","u_specular_params","[","2","]",")",";","vec3","cN","=","cL","*","u_specular_color",";","vec3","aQ",";","vec3","cO",";","cP","(","cI",",","cG",",","cD",",","cN",",","h",",","U",",","D",",","cM",",","u_diffuse_params",",","vec4","(","1.0",")",",","0.0",",","vec4","(","0.0",")",",","aQ",",","cO",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aQ","=","cy",".","rgb",";"]}]}}]},{TYPE:"txt",TOKENS:["float", "L","=","cy",".","a","*","cZ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA_CLIP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","L","<","0.5",")","discard",";","L","=","1.0",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["bW","(","aQ",",","length","(","i",")",",","D",",","1.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","cT","=","-","i",".","z","/","u_view_max_depth",";","vec4","cU","=","GLSL_TEXTURE_PROJ","(","u_scene_depth",",","l",")",";","float","cW","=","cV","(","cU",")",";","float","cX","=","cW","-","cT",";","float","cY","=","u_view_max_depth","/","SOFT_STRENGTH","*","cX",";","L","=","L","*","min","(","cY",",","1.0", ")",";"]}]}}]},{TYPE:"txt",TOKENS:["aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA","ALPHA_CLIP",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]},exports["proc_skybox.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"}, {TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","vec3","u_sky_color",";","uniform","vec3","u_sun_direction",";","uniform","float","u_rayleigh_brightness",";","uniform","float","u_mie_brightness",";","uniform","float","u_spot_brightness",";","uniform","float","u_scatter_strength",";","uniform","float","u_rayleigh_strength",";","uniform","float","u_mie_strength",";","uniform","float","u_rayleigh_collection_power",";","uniform","float","u_mie_collection_power", ";","uniform","float","u_mie_distribution",";","GLSL_IN","vec3","bu",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","const","float","du","=","0.99",";","const","float","dv","=","1.8",";","const","int","dw","=","8",";","float","dB","(","vec3","O",",","vec3","bH",")","{","float","a","=","dot","(","bH",",","bH",")",";","float","b","=","2.0","*","dot","(","bH",",","O",")",";","float","dx","=","dot","(","O",",","O",")","-","1.0",";","float","dy","=","b","*","b","-","4.0","*","a","*","dx",";","float", "dz","=","sqrt","(","dy",")",";","float","q","=","(","-","b","-","dz",")","/","2.0",";","float","dA","=","dx","/","q",";","return","dA",";","}","float","dD","(","float","L",",","float","g",")","{","float","a","=","3.0","*","(","1.0","-","g","*","g",")",";","float","b","=","2.0","*","(","2.0","+","g","*","g",")",";","float","dx","=","1.0","+","L","*","L",";","float","dC","=","pow","(","1.0","+","g","*","g","-","2.0","*","g","*","L",",","1.5",")",";","dC","=","max","(","dC",",","0.00001",")",";","return", "(","a","/","b",")","*","(","dx","/","dC",")",";","}","float","dI","(","vec3","O",",","vec3","bH",",","float","dE",")","{","float","dF","=","dot","(","bH",",","-","O",")",";","if","(","dF","<","0.0",")","{","return","1.0",";","}","vec3","dG","=","O","+","dF","*","bH",";","if","(","length","(","dG",")","<","dE",")","{","return","0.0",";","}","else","if","(","length","(","dG",")",">=","dE",")","{","vec3","da","=","normalize","(","dG",")","*","dE","-","O",";","float","dH","=","acos","(","dot","(","normalize", "(","da",")",",","bH",")",")",";","return","smoothstep","(","0.0",",","1.0",",","pow","(","dH","*","2.0",",","3.0",")",")",";","}","else","return","1.0",";","}","vec3","dJ","(","float","aM",",","vec3","aQ",",","float","aL",")","{","return","aQ","-","aQ","*","pow","(","u_sky_color",",","vec3","(","aL","/","aM",")",")",";","}","void","main","(",")","{","vec3","bv","=","normalize","(","bu",")",";","vec3","dK","=","u_sun_direction",";","float","L","=","dot","(","bv",",","dK",")",";","float","dL","=", "dD","(","L",",","-","0.01",")","*","u_rayleigh_brightness","*","dK",".","z",";","float","dM","=","dD","(","L","-","0.5",",","u_mie_distribution",")","*","u_mie_brightness","*","(","1.0","-","dK",".","z",")",";","float","dN","=","smoothstep","(","0.0",",","100.0",",","dD","(","L",",","0.9995",")",")","*","u_spot_brightness",";","vec3","dO","=","vec3","(","0.0",",","0.0",",","du",")",";","float","dP","=","dB","(","dO",",","bv",")",";","float","dQ","=","dP","/","float","(","dw",")",";","float","dR", "=","dI","(","dO",",","bv",",","du","-","0.3",")",";","vec3","dS","=","vec3","(","0.0",",","0.0",",","0.0",")",";","vec3","dT","=","vec3","(","0.0",",","0.0",",","0.0",")",";","for","(","int","cq","=","0",";","cq","<","dw",";","cq","++",")","{","float","dU","=","dQ","*","float","(","cq",")",";","vec3","O","=","dO","+","bv","*","dU",";","float","dV","=","dI","(","O",",","dK",",","du","-","0.2",")",";","float","dW","=","dB","(","O",",","dK",")",";","vec3","dX","=","dJ","(","dW",",","vec3","(","dv", ")",",","u_scatter_strength",")","*","dV",";","dS","+=","dJ","(","sqrt","(","dU",")",",","u_sky_color","*","dX",",","u_rayleigh_strength",")",";","dT","+=","dJ","(","dU",",","dX",",","u_mie_strength",")",";","}","dS","=","dS","*","dR","*","pow","(","dP",",","u_rayleigh_collection_power",")","/","float","(","dw",")",";","dT","=","(","dT","*","dR","*","pow","(","dP",",","u_mie_collection_power",")",")","/","float","(","dw",")",";","vec3","aQ","=","vec3","(","dN","*","dT","+","dM","*","dT","+","dL", "*","dS",")",";","aW","(","aQ",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","1.0",")",";","}"]}]},exports["r_convolution_skybox.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_reflection",";","uniform","float","u_roughness",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","GLSL_IN","vec3","bu",";", "float","eb","(","int","cw",",","int","dY",")","{","float","dZ","=","1.0","/","float","(","dY",")",";","float","d_","=","1.0",";","float","ea","=","0.0",";","for","(","int","cq","=","0",";","cq","<","32",";","++","cq",")","{","if","(","cw",">","0",")","{","d_","=","mod","(","float","(","cw",")",",","2.0",")",";","ea","+=","d_","*","dZ",";","dZ","=","dZ","/","2.0",";","cw","=","int","(","float","(","cw",")","/","2.0",")",";","}","}","return","ea",";","}","vec2","ed","(","int","cq",",","int","ec",")", "{","return","vec2","(","float","(","cq",")","/","float","(","ec",")",",","eb","(","cq",",","2",")",")",";","}","vec3","ek","(","vec2","ee",",","vec3","ec",",","float","ef",")","{","float","a","=","ef","*","ef",";","float","bC","=","2.0","*","M_PI","*","ee",".","x",";","float","eg","=","sqrt","(","(","1.0","-","ee",".","y",")","/","(","1.0","+","(","a","*","a","-","1.0",")","*","ee",".","y",")",")",";","float","eh","=","sqrt","(","1.0","-","eg","*","eg",")",";","vec3","ei",";","ei",".","x","=","cos", "(","bC",")","*","eh",";","ei",".","y","=","sin","(","bC",")","*","eh",";","ei",".","z","=","eg",";","vec3","by","=","abs","(","ec",".","z",")","<","0.999","?","vec3","(","0.0",",","0.0",",","1.0",")",":","vec3","(","1.0",",","0.0",",","0.0",")",";","vec3","V","=","normalize","(","cross","(","by",",","ec",")",")",";","vec3","ej","=","cross","(","ec",",","V",")",";","vec3","bF","=","V","*","ei",".","x","+","ej","*","ei",".","y","+","ec","*","ei",".","z",";","return","normalize","(","bF",")",";","}", "void","main","(",")","{","vec3","el","=","vec3","(","0.0",")",";","if","(","u_roughness","!=","0.0",")","{","vec3","ec","=","normalize","(","bu",")",";","vec3","em","=","ec",";","vec3","en","=","em",";","const","int","eo","=","1024",";","float","ep","=","0.0",";","for","(","int","cq","=","0",";","cq","<","eo",";","++","cq",")","{","vec2","ee","=","ed","(","cq",",","eo",")",";","vec3","ei","=","ek","(","ee",",","ec",",","u_roughness",")",";","vec3","eq","=","normalize","(","2.0","*","dot","(","en", ",","ei",")","*","ei","-","en",")",";","float","er","=","max","(","dot","(","ec",",","eq",")",",","0.0",")",";","if","(","er",">","0.0",")","{","vec3","bw","=","GLSL_TEXTURE_CUBE","(","u_sky_reflection",",","eq",")",".","rgb",";","bG","(","bw",")",";","el","+=","bw","*","er",";","ep","+=","er",";","}","}","el","=","el","/","ep",";","}","else","{","vec3","bw","=","GLSL_TEXTURE_CUBE","(","u_sky_reflection",",","normalize","(","bu",")",")",".","rgb",";","bG","(","bw",")",";","el","=","bw",";","}","GLSL_OUT_FRAG_COLOR", "=","vec4","(","el",",","1.0",")",";","}"]}]},exports["shadow.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"SHADELESS",TOKENS:["0"]},{TYPE:"var",NAME:"RGBA_SHADOWS",TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR_INVERSE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR_INVERSE", TOKENS:["0"]},{TYPE:"var",NAME:"USE_VIEW_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_MODEL_TSR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION_CORRECTION",TOKENS:["0"]}, {TYPE:"var",NAME:"CSM_SECTION1",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION2",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LAMP_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_BLEND_TYPE",TOKENS:["TEXTURE_BLEND_TYPE_MIX"]},{TYPE:"var",NAME:"NUM_VALUES",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_RGBS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA", TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"POISSON_DISK_NUM",TOKENS:["NO_SOFT_SHADOWS"]},{TYPE:"var",NAME:"USE_DERIVATIVES_EXT",TOKENS:["0"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"var",NAME:"USE_LOD_SMOOTHING",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1","USE_DERIVATIVES_EXT",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension",TOKENS:["GL_OES_standard_derivatives",":","enable"]}]}}]}, {TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"math.glslv"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["RGBA_SHADOWS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"depth_fetch.glslf"},{TYPE:"include",FILE:"pack.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include", FILE:"coverage.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_time",";","uniform","float","u_environment_energy",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions","[","NUM_LIGHTS","]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform", "vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye_frag",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{TYPE:"logical_or_expr",PLACES:2},"CAMERA_TYPE","CAM_TYPE_ORTHO",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_direction",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE", "REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_VIEW_TSR",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_frag",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_VIEW_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_MODEL_TSR_INVERSE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr_inverse",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_plane_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_cube_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE", "REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_emit",";","uniform","float","u_ambient",";","uniform","vec2","u_fresnel_params",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_mirror_factor",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE", "REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_refl_plane",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_LAMP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_lamp_light_positions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_directions","[","NUM_LAMP_LIGHTS","]",";","uniform","vec3","u_lamp_light_color_intensities","[","NUM_LAMP_LIGHTS","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_VALUE"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_node_values","[","NUM_VALUES","]",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_RGB"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_node_rgbs","[","NUM_RGBS","]",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_colormap0",";","uniform","float","u_alpha_factor",";"]}]}}]}, {TYPE:"txt",TOKENS:["uniform","vec4","u_diffuse_color",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_pcf_blur_radii",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_csm_center_dists",";","uniform","PRECISION","GLSL_SMPLR2D_SHDW", "u_shadow_map0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map1",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map2", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","GLSL_SMPLR2D_SHDW","u_shadow_map3",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_shadow_mask",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["USE_NODE_B4W_REFRACTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_refractmap",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_REFRACTION","USE_REFRACTION_CORRECTION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_CURVE_VEC","USE_NODE_CURVE_RGB","USE_NODE_VALTORGB",{TYPE:"logical_or_expr",PLACES:3}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_nodes_texture",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_OBJECT_INFO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_obj_info",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["RGBA_SHADOWS","SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_camera_range",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_lod_coverage",";","uniform","float","u_lod_cmp_logic",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","h",";","GLSL_IN","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","k", ";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},"SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},"RGBA_SHADOWS",{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","n",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","o",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","u",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","v",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}, "USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","USE_REFRACTION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","m",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","B",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADELESS",{TYPE:"logic_negative_expr",PLACES:1},"NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"shadow.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES", "ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"nodes.glslf"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_LOD_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","!","C","(","u_lod_coverage",",","u_lod_cmp_logic",")",")","discard",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec3","D","=","normalize","(","u_camera_eye_frag","-","h",")",";","vec3","E",";","vec3","F",";","vec3","G",";","vec4","H",";","float","I",";","J","(","D",",","E",",","F",",","G",",","H",",","I",")",";","float","L","=","I",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","L","=","(","GLSL_TEXTURE","(","u_colormap0",",","A",")",")",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["TEXTURE_BLEND_TYPE","TEXTURE_BLEND_TYPE_MIX",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","M","=","u_alpha_factor","*","L",";","M","+=","(","1.0","-","step","(","0.0",",","M",")",")",";","L","=","mix","(","M",",","1.0",",","u_diffuse_color",".","a",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","L","=","u_diffuse_color",".","a",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["if","(","L","<","0.5",")","discard",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","NO_SHADOWS",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["RGBA_SHADOWS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","et","=","es","(","-","i",".","z",",","u_camera_range",")",";","GLSL_OUT_FRAG_COLOR","=","eu","(","et",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR", "=","vec4","(","1.0",")",";"]}]}}]}]}},{TYPE:"elif",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","ev","(","i",".","z",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR",".","a","*=", "clamp","(","k",".","r",",","0.999999999",",","1.0",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["shadow.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"MAIN_BEND_COL",TOKENS:["0"]},{TYPE:"var",NAME:"DETAIL_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN",TOKENS:["0"]},{TYPE:"var",NAME:"USE_INSTANCED_PARTCLS",TOKENS:["0"]}, {TYPE:"var",NAME:"NODES",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"SMAA_JITTER",TOKENS:["0"]},{TYPE:"var",NAME:"MAC_OS_SHADOW_HACK",TOKENS:["0"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"RGBA_SHADOWS",TOKENS:["0"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"AU_QUALIFIER",TOKENS:["GLSL_IN"]},{TYPE:"var",NAME:"BEND_CENTER_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION1", TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION2",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]},{TYPE:"var",NAME:"HAIR_BILLBOARD",TOKENS:["0"]},{TYPE:"var",NAME:"FRAMES_BLENDING",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_TEX_RES",TOKENS:["2048.0"]},{TYPE:"var",NAME:"VERTEX_ANIM",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"TEXTURE_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"VERTEX_ANIM_MIX_NORMALS_FACTOR",TOKENS:["u_va_frame_factor"]}, {TYPE:"var",NAME:"MAX_BONES",TOKENS:["0"]},{TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"SKINNED",TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC_GRASS",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD_JITTERED",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"include",FILE:"scale_texcoord.glslv"}, {TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";","GLSL_IN","vec4","a_tbn",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_INSTANCED_PARTCLS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_part_ts",";","GLSL_IN","vec4","a_part_r",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_shade_tangs",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["GLSL_IN","vec4","a_influence",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:3},"USE_INSTANCED_PARTCLS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["AU_QUALIFIER","vec3","au_center_pos",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","a_bending_col_main",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DETAIL_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_bending_col_detail",";","AU_QUALIFIER","float","au_detail_bending_amp",";","AU_QUALIFIER","float","au_branch_bending_amp",";","AU_QUALIFIER","float","au_detail_bending_freq",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["AU_QUALIFIER","float","au_wind_bending_amp",";","AU_QUALIFIER","float","au_wind_bending_freq",";"]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BEND_CENTER_ONLY"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_emitter_center",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position_next",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO", "USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_tbn_next",";"]}]}}]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES", "ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","h",";","GLSL_OUT","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","k",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE", "SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},"SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},"RGBA_SHADOWS",{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","i",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4", "n",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","o",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","u",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS", 3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","v",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","m",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","B",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0", ",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","mat3","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_JITTER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_subpixel_jitter",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD","SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_shadow_cast_billboard_view_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_grass_map_depth", ";","uniform","sampler2D","u_grass_map_color",";","uniform","vec4","u_camera_quat",";","uniform","vec3","u_grass_map_dim",";","uniform","float","u_grass_size",";","uniform","float","u_scale_threshold",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsb","[","MAX_BONES","]",";","uniform","vec4","u_transb","[","MAX_BONES","]",";","uniform","vec4","u_arm_rel_trans",";","uniform","vec4","u_arm_rel_quat",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_quatsa","[","MAX_BONES","]",";","uniform","vec4","u_transa","[","MAX_BONES","]",";","uniform","float","u_frame_factor",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_JITTERED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_jitter_amp",";","uniform","float","u_jitter_freq", ";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_wind",";","uniform","PRECISION","float","u_time",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_va_frame_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logic_negative_expr",PLACES:1},"TEXTURE_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "vec3","u_texture_scale",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_normal_offset",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAC_OS_SHADOW_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_v_light_tsr","[","NUM_CAST_LAMPS","]",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_v_light_ts", "[","NUM_CAST_LAMPS","]",";","uniform","vec4","u_v_light_r","[","NUM_CAST_LAMPS","]",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix1",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix2",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_p_light_matrix3",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","float","u_view_max_depth", ";"]}]}}]},{TYPE:"include",FILE:"dynamic_grass.glslv"},{TYPE:"include",FILE:"shadow.glslv"},{TYPE:"include",FILE:"skin.glslv"},{TYPE:"include",FILE:"wind_bending.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"nodes.glslv"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","mat3","N","=","u_view_tsr",";","vec3","O","=","a_position",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE", "SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"CALC_TBN_SPACE","USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_NO","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:13}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","P",",","Q",";","vec4","S","=","R","(","a_tbn",",","P", ",","Q",")",";","vec3","ca","=","T","(","S",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";","vec3","U","=","ca",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","U","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA","CALC_TBN_SPACE",{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","T","(","S",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";","vec3","W","=","Q","*","cross","(", "U",",","V",")",";","vec4","Y","=","X","(","W",",","Q","*","P",")",";","V","=","T","(","Y",",","U",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","0.0",")",";","vec3","W","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["VERTEX_ANIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","mix","(","O",",","a_position_next",",","u_va_frame_factor",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE",{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","af",",","ah",";","vec4","ai","=","R","(","a_tbn_next",",","af",",","ah",")",";","vec3","aj","=","T","(","ai",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";","U","=","mix","(","U",",","aj",",","VERTEX_ANIM_MIX_NORMALS_FACTOR",")", ";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ak","=","T","(","ai",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";","vec3","al","=","ah","*","cross","(","aj",",","ak",")",";","vec4","am","=","X","(","al",",","ah","*","af",")",";","ak","=","T","(","am",",","aj",")",";","V","=","mix","(","V",",","ak",",","u_va_frame_factor",")",";","W","=","mix","(","W",",","al",",","u_va_frame_factor",")",";"]}]}}]}]}}]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["an","(","O",",","V",",","W",",","U",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_INSTANCED_PARTCLS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","Z","=","aZ","(","a_part_ts",".","xyz",",","aY","(",")",")",";","Z","=","a_","(","vec3","(","a_part_ts",".","w",")",",","Z",")",";","Z","=","bc","(","a_part_r",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH",{TYPE:"logic_negative_expr", PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["Z","=","bd","(","u_model_tsr",",","Z",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","Z","=","u_model_tsr",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND","DYNAMIC_GRASS","BILLBOARD",{TYPE:"logical_or_expr",PLACES:3},"USE_INSTANCED_PARTCLS",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","au_center_pos", ";"]}]}},{TYPE:"elif",EXPRESSION:["DYNAMIC_GRASS","USE_INSTANCED_PARTCLS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","a_part_ts",".","xyz",";","O","=","ap","(","Z",",","O",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ao","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec3","ac","=","normalize","(","_","(","Z",",","ca",")",")",";","vec3","ad","=","cross","(","vec3","(","0.0",",","0.0",",","1.0",")",",","ac",")",";","vec3","ae","=","cross","(","ac",",","ad",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ae","=","a_shade_tangs",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ae","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","be","(","O",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","U",",","ao",",","u_grass_map_depth",",","u_grass_map_color",",","u_grass_map_dim",",","u_grass_size",",","u_camera_eye",",","u_camera_quat",",","N",",","Z",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aq","=","ap","(","Z",",","ao",")", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["HAIR_BILLBOARD",{TYPE:"logic_negative_expr",PLACES:1},"SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","ew","=","u_shadow_cast_billboard_view_tsr",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","ew","=","N",";"]}]}}]},{TYPE:"txt",TOKENS:["Z","=","as","(","u_camera_eye",",","aq",",","ew",",","Z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["WIND_BEND","BILLBOARD_JITTERED",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["Z","=","at","(","u_wind",",","u_time",",","u_jitter_amp",",","u_jitter_freq",",","aq",",","Z",")",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","O","-","ao",",","ao",",","V",",","ae",",","W",",","U",",","Z",")",";","aw",".","ao","=","aq",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["au","aw","=","av","(","O",",","ao",",","V",",","ae",",","W", ",","U",",","Z",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ay","=","ca",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ay","=","vec3","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["ax","(","aw",".","O",",","aw",".","ao",",","ay",",","mat4","(","0.0",")", ")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["h","=","aw",".","O",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","USE_NODE_NORMAL_MAP","CAUSTICS","CALC_TBN_SPACE","WIND_BEND","MAIN_BEND_COL","DETAIL_BEND",{TYPE:"logical_and_expr",PLACES:3},"USE_NODE_TEX_COORD_NO","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT", "USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:12}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["j","=","aw",".","U",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","aA","=","(","dot","(","cross","(","aw",".","U",",","aw",".","V",")",",","aw",".","W",")","<","0.0",")","?","-","1.0",":","1.0",";","k","=","vec4","(","aw",".","V",",","aA",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["B","=","aw",".","aB",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["vec4","cc","=","vec4","(","ap","(","N",",","aw",".","O",")",",","1.0",")",";","vec4","f","=","u_proj_matrix","*","cc",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_JITTER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["f",".","xy","+=","u_subpixel_jitter","*","f",".","w",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["l","=","aC","(","f",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","REFRACTIVE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["m","=","-","cc",".","z","/","u_view_max_depth",";"]}]}}]},{TYPE:"txt",TOKENS:["J","(",")",";"]}]}},{TYPE:"else", GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["TEXTURE_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","az","(","a_texcoord",",","u_texture_scale",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cd","(","aw",".","O",",","aw",".","U",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr", PLACES:2},"NODES","ALPHA",{TYPE:"logical_and_expr",PLACES:2},"SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2},"RGBA_SHADOWS",{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["i","=","cc",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","ey","=","(","u_proj_matrix","*","vec4","(","ex","(","N",")",",","1.0", ")",")",".","xy",";","float","ez","=","SHADOW_TEX_RES","/","2.0",";","ey","=","floor","(","ey","*","ez","+","0.5",")","/","ez","-","ey",";","f",".","xy","+=","ey",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","f",";","}"]}]},exports["sky.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"WO_SKYTEX",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYREAL",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYBLEND",TOKENS:["0"]},{TYPE:"var",NAME:"PROCEDURAL_SKYDOME",TOKENS:["0"]},{TYPE:"var", NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYPAPER",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"WATER_LEVEL",TOKENS:["0.0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr", PLACES:1},"REFLECTION_PASS","REFL_PASS_NONE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_camera_eye_frag",";","uniform","vec4","u_underwater_fog_color_density",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYBLEND","WO_SKYPAPER",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_sky_tex_fac",";","uniform","vec3","u_sky_tex_color",";","uniform","float", "u_sky_tex_dvar",";","uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYBLEND","WO_SKYPAPER","WO_SKYTEX",{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"sky_blending.glslf"}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","bu",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_SKYDOME",{TYPE:"logic_negative_expr",PLACES:1},"WO_SKYTEX","WO_SKYBLEND",{TYPE:"logical_or_expr",PLACES:2}, {TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec3","bw",";","vec3","bv","=","normalize","(","bu",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYBLEND","WO_SKYPAPER",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","eA","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYREAL"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eA","=","abs","(","A",".","y",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eA","=","(","A",".","y","+","1.0",")","*","0.5",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","eB","=","u_horizon_color",";","vec3","eC","=","u_zenith_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYTEX"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","eD","=","vec3","(","A",",","0.0",")",";","vec4","eE","=","GLSL_TEXTURE_CUBE","(","u_sky", ",","bv",")",";","bG","(","eE",".","rgb",")",";","bw","=","eF","(","eB",",","eC",",","eE",",","eA",",","eD",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bw","=","mix","(","eB",",","eC",",","eA",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bw","=","GLSL_TEXTURE_CUBE","(","u_sky",",","bv",")",".","rgb",";","bG","(","bw",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}, "REFLECTION_PASS","REFL_PASS_NONE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","eG","=","WATER_LEVEL","-","u_camera_eye_frag",".","z",";","vec3","eH","=","vec3","(","0.0",")",";","vec3","eI","=","mix","(","u_underwater_fog_color_density",".","rgb",",","eH",",","min","(","-","bv",".","z",",","1.0",")",")",";","eI","*=","min","(","1.0","-","min","(","0.03","*","eG",",","0.8",")",",","1.0",")",";","float","aL","=","clamp","(", "sign","(","0.01","*","eG","-","bv",".","z",")",",","0.0",",","1.0",")",";","bw","=","mix","(","bw",",","eI",",","aL",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aW","(","bw",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","bw",",","1.0",")",";","}"]}]},exports["sky.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PROCEDURAL_SKYDOME",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYTEX",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYBLEND",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt", TOKENS:["uniform","mat4","u_sky_vp_inverse",";","GLSL_IN","vec3","a_position",";","GLSL_OUT","vec3","bu",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_SKYDOME",{TYPE:"logic_negative_expr",PLACES:1},"WO_SKYTEX","WO_SKYBLEND",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","vec4","O","=","vec4","(","a_position",".","xy",",","0.9999999",",", "1.0",")",";","vec4","bv","=","u_sky_vp_inverse","*","O",";","bu","=","bv",".","xyz",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_SKYDOME",{TYPE:"logic_negative_expr",PLACES:1},"WO_SKYTEX","WO_SKYBLEND",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","a_position",".","xy",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","O",";","}"]}]},exports["skybox.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]}, {TYPE:"var",NAME:"PROCEDURAL_SKYDOME",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYTEX",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYBLEND",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","mat4","u_cube_view_matrix",";","GLSL_IN","vec3","a_position",";","GLSL_OUT","vec3","bu",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_SKYDOME",{TYPE:"logic_negative_expr",PLACES:1},"WO_SKYTEX","WO_SKYBLEND",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","vec4","O","=","vec4","(","a_position",".","xy",",","0.999999",",","1.0",")",";","vec4","bv","=","u_cube_view_matrix","*","O",";","bu","=","bv",".","xyz",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_SKYDOME",{TYPE:"logic_negative_expr",PLACES:1},"WO_SKYTEX","WO_SKYBLEND",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["A","=","a_position",".","xy",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","O",";","}"]}]},exports["tex_skybox.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"WO_SKYTEX",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYREAL",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYBLEND",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYPAPER",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt", TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","GLSL_IN","vec3","bu",";","GLSL_IN","vec2","A",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYTEX"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_sky_tex_fac",";","uniform","vec3","u_sky_tex_color",";","uniform","float","u_sky_tex_dvar",";","uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["WO_SKYTEX"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"sky_blending.glslf"}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","vec3","bv","=","normalize","(","bu",")",";","vec3","bw",";","float","eA","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYPAPER"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYTEX"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bw","=","GLSL_TEXTURE_CUBE","(","u_sky_texture",",","bv",")",".","xyz",";","bG","(", "bw",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bw","=","vec3","(","1.0",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYBLEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","L","=","acos","(","bv",".","z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYREAL"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eA","=","abs","(","L","*","INV_PI","-","0.5",")","*","2.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["eA","=","1.0","-","L","*","INV_PI",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["vec3","eB","=","u_horizon_color",";","vec3","eC","=","u_zenith_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYTEX"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","eE","=","GLSL_TEXTURE_CUBE","(","u_sky_texture",",","bv",")",";","bG","(","eE",".","rgb",")",";","vec3","eD","=","vec3","(","bu",".","xy",",","0.0",")",";","bw","=","eF","(","eB",",","eC",",","eE",",","eA",",","eD",")", ";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYBLEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bw","=","mix","(","eB",",","eC",",","eA",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bw","=","eB",";"]}]}}]}]}}]}]}}]},{TYPE:"txt",TOKENS:["aW","(","bw",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","bw",",","1.0",")",";","}"]}]},exports["water.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var", NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"USE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"DEBUG_WIREFRAME",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_NORMALMAPS",TOKENS:["0"]},{TYPE:"var",NAME:"FOAM",TOKENS:["0"]},{TYPE:"var",NAME:"SHORE_PARAMS",TOKENS:["0"]},{TYPE:"var",NAME:"GENERATED_MESH",TOKENS:["0"]},{TYPE:"var",NAME:"ABSORB",TOKENS:["6.0"]},{TYPE:"var",NAME:"SSS_STRENGTH",TOKENS:["1.0"]},{TYPE:"var",NAME:"SSS_WIDTH",TOKENS:["0.45"]},{TYPE:"var", NAME:"ALPHA",TOKENS:["0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"WAVES_HEIGHT",TOKENS:["1.0"]},{TYPE:"var",NAME:"WATER_LEVEL",TOKENS:["0.0"]},{TYPE:"var",NAME:"PROCEDURAL_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION_CORRECTION",TOKENS:["0"]},{TYPE:"var",NAME:"SHORE_SMOOTHING",TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC",TOKENS:["0"]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]}, {TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"pack.glslf"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"define",NAME:"REFL_BUMP",TOKENS:["0.002"]},{TYPE:"txt",TOKENS:["uniform","float","u_time",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_TEXTURE",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_sky_texture",";"]}]}},{TYPE:"elif",EXPRESSION:["USE_ENVIRONMENT_LIGHT","SKY_COLOR",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec3","u_horizon_color",";","uniform","vec3","u_zenith_color",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_environment_energy",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_light_positions","[","NUM_LIGHTS","]",";","uniform","vec3","u_light_directions","[","NUM_LIGHTS","]",";","uniform","vec4","u_light_color_intensities","[","NUM_LIGHTS","]",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec3","u_sun_intensity",";","uniform","vec3","u_sun_direction",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr", PLACES:2},"SHORE_SMOOTHING","WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_cam_water_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_color_density",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_underwater_fog_color_density",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat4","u_cube_fog",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_fog_params",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_normalmap0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_refractmap",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_plane_reflection",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","samplerCube","u_mirrormap",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","sampler2D","u_scene_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FOAM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_foam",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec4","u_diffuse_color",";","uniform","vec2","u_diffuse_params", ";","uniform","float","u_diffuse_intensity",";","uniform","float","u_ambient",";","uniform","vec2","u_fresnel_params",";","uniform","vec3","u_specular_color",";","uniform","vec3","u_specular_params",";","uniform","vec3","u_shallow_water_col",";","uniform","vec3","u_shore_water_col",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_water_norm_uv_velocity",";","uniform","vec2","u_normalmap0_scale", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",1,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_normalmap1_scale",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",2,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_normalmap2_scale",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",3,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "vec2","u_normalmap3_scale",";"]}]}}]}]}}]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_mirror_factor",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_reflect_factor",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_view_max_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_water_shallow_col_fac",";","uniform","float","u_water_shore_col_fac",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FOAM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_foam_factor",";","uniform","vec2","u_foam_uv_freq",";","uniform","vec2","u_foam_mag",";", "uniform","vec2","u_foam_scale",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_refr_bump",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_WIREFRAME"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","float","aE","=","1.0",";","uniform","vec3","u_wireframe_edge_color",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","bY",";","GLSL_IN","vec3","h",";","GLSL_IN","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2},"GENERATED_MESH",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","k",";","GLSL_IN","vec3","eJ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS", 0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2},"GENERATED_MESH","DYNAMIC",{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","eK",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","eL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE",{TYPE:"logical_or_expr", PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","m",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_WIREFRAME"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN", "vec3","aD",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","B",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"include",FILE:"environment.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE","SHORE_SMOOTHING","USE_REFRACTION_CORRECTION",{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"refraction.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"fog.glslf"}]}}]},{TYPE:"txt",TOKENS:["vec3","eT","(","in","vec2","eM",",","in","vec3","U",",","in","vec3","eN",",","in","vec3","eO",",","out","float","eP",",","in","float","eQ",")","{","eP","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","eR","=","eM",".","xy","+", "U",".","xy","*","REFL_BUMP","/","m",";","eP","=","u_reflect_factor",";","vec3","eS",";","if","(","u_cam_water_depth","<","0.0",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},"WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eS","=","u_underwater_fog_color_density",".","rgb",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eS","=","u_diffuse_color",".","rgb",";"]}]}}]},{TYPE:"txt", TOKENS:["}","else","{","eS","=","GLSL_TEXTURE","(","u_plane_reflection",",","eR",")",".","rgb",";","bG","(","eS",")",";","}"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eP","=","u_mirror_factor",";","vec3","eS","=","eO","*","GLSL_TEXTURE_CUBE","(","u_mirrormap",",","eN",")",".","rgb",";","bG","(","eS",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eP","=","u_reflect_factor",";", "vec3","eS","=","eO","*","vec3","(","0.3",",","0.5",",","1.0",")",";","bG","(","eS",")",";"]}]}}]},{TYPE:"txt",TOKENS:["eP","=","min","(","eP","*","eQ",",","1.0",")",";","return","eS",";","}"]},{TYPE:"include",FILE:"lighting_nodes.glslf"},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","cg","=","mat3","(","k",",","eJ",",","j",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3", "U","=","normalize","(","j",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC","FOAM",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bT","=","h",".","z","-","WATER_LEVEL",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","bT","=","h",".","z",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}, "FOAM",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","ce","=","vec2","(","eK",".","x",",","-","eK",".","y",")","+","0.5",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","ce","=","vec2","(","h",".","x",",","-","h",".","y",")","+","0.5",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec2","ce","=","A",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","eU","=","vec3","(","0.0",")",";","eU","+=","GLSL_TEXTURE","(","u_normalmap0",",","ce","*","u_normalmap0_scale","+","vec2","(","0.3",",","0.5",")","*","u_water_norm_uv_velocity","*","u_time",")",".","xyz","-","0.5",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",1,{TYPE:"g_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eU","+=","GLSL_TEXTURE","(","u_normalmap0",",","ce","*","u_normalmap1_scale","+","vec2","(","-","0.3",",","0.7",")","*","u_water_norm_uv_velocity","*","u_time",")",".","xyz","-","0.5",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",2,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eU","+=","GLSL_TEXTURE","(","u_normalmap0",",","ce","*","u_normalmap2_scale","+","vec2","(","0.0",",","1.1",")","*", "u_water_norm_uv_velocity","*","u_time",")",".","xyz","-","0.5",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",3,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eU","+=","GLSL_TEXTURE","(","u_normalmap0",",","ce","*","u_normalmap3_scale","+","vec2","(","-","0.66",",","-","0.3",")","*","u_water_norm_uv_velocity","*","u_time",")",".","xyz","-","0.5",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["U","=","mix","(","U",",","normalize","(","cg","*","eU",")",",","0.3",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["U","=","mix","(","U",",","normalize","(","cg","*","eU",")",",","0.5",")",";"]}]}}]},{TYPE:"txt",TOKENS:["U","=","normalize","(","U",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","D","=","normalize","(","bY",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE", "REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","eM","=","l",".","xy","/","l",".","z",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","eM","=","vec2","(","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","eV","=","eM","+","U",".","xy","*","u_refr_bump","/","m",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SHORE_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","L","=","u_diffuse_color",".","a",";","vec4","cU","=","GLSL_TEXTURE_PROJ","(","u_scene_depth",",","l",")",";","float","cW","=","cV","(","cU",")",";","float","cX","=","max","(","cW","-","m",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","eX","=","eW","(","cW",",","eV",",","eM",")",";","float","eY","=","max","(","eX","-","m",",","0.0", ")",";","float","eZ","=","u_view_max_depth","/","ABSORB","*","eY",";","float","e_","=","min","(","L","*","eZ",",","1.0",")",";","L","=","min","(","15.0","*","L","*","u_view_max_depth","*","cX",",","1.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","cY","=","u_view_max_depth","/","ABSORB","*","cX",";","if","(","u_cam_water_depth",">","0.0",")","L","=","min","(","L","*","cY",",","1.0",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float", "L","=","u_diffuse_color",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","e_","=","L",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","u_cam_water_depth","<","0.0",")","e_","=","0.0",";","vec3","fa","=","GLSL_TEXTURE","(","u_refractmap",",","eV",")",".","rgb",";","bG","(","fa",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fb","=","pow","(","min","(","eL",".","b","/","u_water_shallow_col_fac",",","1.0",")",",","0.3",")",";","vec3","cy","=","mix","(","u_shallow_water_col",",","u_diffuse_color",".","rgb",",","fb",")",";","fb","=","pow","(","min","(","eL",".","b","/","u_water_shore_col_fac",",","1.0",")",",","0.3",")",";","cy","=","mix","(","u_shore_water_col",",","cy",",","fb",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","cy","=","u_diffuse_color", ".","rgb",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FOAM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fc","=","max","(","1.0","-","u_view_max_depth","*","cX",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fc","=","1.0","-","L",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fd", "=","max","(","bT","/","WAVES_HEIGHT","+","0.1",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","fe","=","normalize","(","vec3","(","eL",".","rg",",","0.0",")",")",";","vec3","ff","=","normalize","(","mix","(","UP_VECTOR",",","fe",",","0.8",")",")",";","float","fg","=","1.25","*","max","(","dot","(","U",",","ff",")","-","0.2",",","0.0",")",";","fg","+=","max","(","dot","(","U",",","-","UP_VECTOR",")",",","0.0",")", ";","fc","+=","fg","*","(","1.0","-","eL",".","b",")",";","fd","*=","(","1.0","-","0.95","*","pow","(","eL",".","b",",","0.1",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["fc","+=","fd",";","fc","=","min","(","u_foam_factor","*","fc",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec4","fh","=","GLSL_TEXTURE","(","u_foam",",","u_foam_mag","*","sin","(","u_foam_uv_freq","*","u_time",")","+","ce","*","u_foam_scale",")",";"]}]}}]},{TYPE:"txt",TOKENS:["float","cL","=","u_specular_params","[","0","]",";","vec2", "cM","=","vec2","(","u_specular_params","[","1","]",",","u_specular_params","[","2","]",")",";","vec3","cN","=","cL","*","u_specular_color",";","vec3","cF","=","u_environment_energy","*","cE","(","U",")",";","vec3","cG","=","u_ambient","*","cF",";","vec3","eO","=","cG","+","u_sun_intensity",";","float","eP",";","vec3","eN","=","reflect","(","-","D",",","U",")",";","vec3","fi","=","normalize","(","eN","+","D",")",";","float","fj","=","1.0","-","dot","(","D",",","fi",")",";","float","ec","=","u_fresnel_params", "[","0","]",";","float","fk","=","u_fresnel_params","[","1","]",";","float","fl","=","fk","+","(","1.0","-","fk",")","*","pow","(","fj",",","ec",")",";","vec3","eS","=","eT","(","eM",",","U",",","eN",",","eO",",","eP",",","fl",")",";","vec3","cD","=","u_diffuse_intensity","*","cy",";","vec3","aQ",";","vec3","cO",";","cP","(","vec3","(","0.0",")",",","vec3","(","0.0",")",",","cD",",","cN",",","h",",","U",",","D",",","cM",",","u_diffuse_params",",","vec4","(","1.0",")",",","0.0",",","vec4","(","0.0", ")",",","aQ",",","cO",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fm","=","max","(","dot","(","u_sun_direction",",","-","j",")","+","SSS_WIDTH",",","0.0",")","*","max","(","dot","(","-","D",",","u_sun_direction",")","-","0.5",",","0.0",")","*","max","(","0.0",",","length","(","u_sun_intensity",")","-","0.1",")",";","fm","=","clamp","(","SSS_STRENGTH","*","fm",",","0.0",",","1.0",")",";","aQ","=","mix","(","aQ",",","u_shallow_water_col", ",","fm",")",";","aQ","=","mix","(","aQ",",","u_shore_water_col",",","fm",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","mix","(","fa",",","aQ",",","e_",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aQ","=","mix","(","aQ",",","eS",",","eP",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FOAM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fn","=","mix","(","fh",".","g",",","fh",".","r",",","max","(","4.0","*","(", "fc","-","0.75",")",",","0.0",")",")",";","fn","=","mix","(","fh",".","b",",","fn",",","max","(","2.0","*","fc","-","1.0",",","0.0",")",")",";","fn","=","mix","(","0.0",",","fn",",","fc",")",";","aQ","=","mix","(","aQ",",","eO",",","fn",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aQ","+=","cO",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fo","=", "m","*","u_view_max_depth",";","float","fp","=","1.0",";","if","(","u_cam_water_depth",">","1.0",")","fp","=","2.0",";","bW","(","aQ",",","fo",",","D",",","fp",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aW","(","aQ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","max","(","L",",","cO",".","r",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FOAM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L", "+=","fn",";"]}]}}]}]}},{TYPE:"elif",EXPRESSION:["SHORE_SMOOTHING",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["L","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aX","(","aQ",",","L",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_WIREFRAME",1,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"extension", TOKENS:["GL_OES_standard_derivatives",":","enable"]}]}}]},{TYPE:"txt",TOKENS:["vec3","aN","=","fwidth","(","aD",")",";","vec3","aO","=","smoothstep","(","vec3","(","0.0",")",",","aN","*","aE",",","aD",")",";","float","fq","=","min","(","min","(","aO",".","x",",","aO",".","y",")",",","aO",".","z",")",";","fq","=","clamp","(","fq",",","0.0",",","1.0",")",";","aQ","=","mix","(","u_wireframe_edge_color",",","aQ",",","fq",")",";","L","=","mix","(","1.0",",","L",",","fq",")",";"]}]}},{TYPE:"elif",EXPRESSION:["DEBUG_WIREFRAME", 2,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aM","=","sign","(","aD","-","vec3","(","0.02","*","aE",")",")",";","float","fq","=","1.0",";","if","(","aM",".","x","<","0.0","||","aM",".","y","<","0.0","||","aM",".","z","<","0.0",")","fq","=","0.0",";","aQ","=","mix","(","u_wireframe_edge_color",",","aQ",",","fq",")",";","L","=","mix","(","1.0",",","L",",","fq",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","L",")",";","}"]}]}, exports["water.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"USE_TBN_SHADING",TOKENS:["0"]},{TYPE:"var",NAME:"DEBUG_WIREFRAME",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_NORMALMAPS",TOKENS:["0"]},{TYPE:"var",NAME:"FOAM",TOKENS:["0"]},{TYPE:"var",NAME:"SHORE_PARAMS",TOKENS:["0"]},{TYPE:"var",NAME:"MAX_SHORE_DIST",TOKENS:["100.0"]},{TYPE:"var",NAME:"SHORE_MAP_SIZE_X",TOKENS:["1.0"]},{TYPE:"var",NAME:"SHORE_MAP_SIZE_Y",TOKENS:["1.0"]}, {TYPE:"var",NAME:"SHORE_MAP_CENTER_X",TOKENS:["0.0"]},{TYPE:"var",NAME:"SHORE_MAP_CENTER_Y",TOKENS:["0.0"]},{TYPE:"var",NAME:"GENERATED_MESH",TOKENS:["0"]},{TYPE:"var",NAME:"DST_NOISE_SCALE_0",TOKENS:["0.05"]},{TYPE:"var",NAME:"DST_NOISE_SCALE_1",TOKENS:["0.03"]},{TYPE:"var",NAME:"DST_NOISE_FREQ_0",TOKENS:["1.3"]},{TYPE:"var",NAME:"DST_NOISE_FREQ_1",TOKENS:["1.0"]},{TYPE:"var",NAME:"DIR_MIN_SHR_FAC",TOKENS:["0.4"]},{TYPE:"var",NAME:"DIR_FREQ",TOKENS:["0.5"]},{TYPE:"var",NAME:"DIR_NOISE_SCALE",TOKENS:["0.05"]}, {TYPE:"var",NAME:"DIR_NOISE_FREQ",TOKENS:["0.07"]},{TYPE:"var",NAME:"DIR_MIN_NOISE_FAC",TOKENS:["0.5"]},{TYPE:"var",NAME:"DST_MIN_FAC",TOKENS:["0.2"]},{TYPE:"var",NAME:"WAVES_HOR_FAC",TOKENS:["5.0"]},{TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"WAVES_HEIGHT",TOKENS:["1.0"]},{TYPE:"var",NAME:"WAVES_LENGTH",TOKENS:["10.0"]},{TYPE:"var",NAME:"WATER_LEVEL",TOKENS:["0.0"]},{TYPE:"var",NAME:"SHORE_SMOOTHING",TOKENS:["0"]},{TYPE:"var",NAME:"DYNAMIC",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE", TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"include",FILE:"procedural.glslf"},{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_position",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH",{TYPE:"logic_negative_expr",PLACES:1},"DYNAMIC",{TYPE:"logic_negative_expr",PLACES:1}, "NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","a_tbn",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH",{TYPE:"logic_negative_expr",PLACES:1},"NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","a_texcoord",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_WIREFRAME"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","a_polyindex",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","bY",";","GLSL_OUT","vec3","h",";","GLSL_OUT","vec3","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2},"GENERATED_MESH",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT", "vec2","A",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","k",";","GLSL_OUT","vec3","eJ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2},"GENERATED_MESH","DYNAMIC",{TYPE:"logical_and_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","eK",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","eL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","l",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","DISABLE_FOG", {TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","m",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_WIREFRAME"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","aD",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_TBN_SHADING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec3","B",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["STATIC_BATCH"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["const","mat3","u_model_tsr","=","mat3","(","0.0",",","0.0",",","0.0",",","1.0",",","1.0",",","1.0",",","0.0",",","0.0",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","mat3","u_model_tsr",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","mat3","u_view_tsr",";","uniform","mat4","u_proj_matrix",";","uniform","vec3","u_camera_eye",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "PRECISION","float","u_time",";","uniform","vec3","u_wind",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","PRECISION","float","u_view_max_depth",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform", "sampler2D","u_shore_dist_map",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","fx","(","in","vec2","fr",")","{","vec2","fs","=","0.5","+","vec2","(","(","fr",".","x","-","SHORE_MAP_CENTER_X",")","/","SHORE_MAP_SIZE_X",",","(","fr",".","y","-","SHORE_MAP_CENTER_Y",")","/","SHORE_MAP_SIZE_Y",")",";","vec4","ft","=","GLSL_TEXTURE","(","u_shore_dist_map",",","fs",")",";","const","vec2","fu","=","vec2","(","1.0","/","255.0",",", "1.0",")",";","float","fv","=","dot","(","ft",".","ba",",","fu",")",";","vec2","fw","=","normalize","(","ft",".","rg","*","2.0","-","1.0",")",";","return","vec3","(","fw",",","fv",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMALL_WAVES_FAC",TOKENS:["0.2"]},{TYPE:"txt",TOKENS:["void","fM","(","inout","vec3","fr",",","in","float","fy",",","in","vec3","ft",")","{","float","fA","=","fz","(","DST_NOISE_SCALE_0","*","(","fr",".", "xy","+","DST_NOISE_FREQ_0","*","fy",")",")","*","fz","(","DST_NOISE_SCALE_1","*","(","fr",".","yx","-","DST_NOISE_FREQ_1","*","fy",")",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fB","=","WAVES_LENGTH","/","MAX_SHORE_DIST","/","M_PI",";","float","fv","=","ft",".","b",";","float","fC","=","sqrt","(","fv",")",";","float","fD","=","max","(","fv",",","DIR_MIN_SHR_FAC",")","*","sin","(","fC","/","fB","+","DIR_FREQ","*","fy", ")",";","float","fE","=","max","(","fz","(","DIR_NOISE_SCALE","*","(","fr",".","xy","+","DIR_NOISE_FREQ","*","fy",")",")",",","DIR_MIN_NOISE_FAC",")",";","fD","*=","fE",";","float","fF","=","WAVES_HEIGHT","*","mix","(","fD",",","fA",",","max","(","fC",",","DST_MIN_FAC",")",")",";","vec2","fw","=","ft",".","rg",";","float","fG","=","WAVES_HOR_FAC","*","fD","*","max","(","MAX_SHORE_DIST","/","35.0","*","(","0.05","-","fv",")",",","0.0",")",";","vec2","fH","=","fG","*","fw",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["float","fF","=","WAVES_HEIGHT","*","fA",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","fI","=","1.0","*","(","fr",".","xy","-","0.3","*","fy",")",";","vec2","fJ","=","0.7","*","(","fr",".","yx","+","0.07","*","fy",")",";","float","fL","=","fK","(","fI",")",".","x","+","fK","(","fJ",")",".","x","-","1.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["fr",".","xy","+=","fH",";","fL","*=","fv",";"]}]}}]},{TYPE:"txt",TOKENS:["fF","+=","SMALL_WAVES_FAC","*","fL",";"]}]}}]},{TYPE:"txt",TOKENS:["fr",".","z","+=","fF",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEBUG_WIREFRAME"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","a_polyindex","==","0.0",")","aD","=","vec3","(","1.0",",","0.0",",","0.0",")",";","else","if","(","a_polyindex","==","1.0",")","aD","=","vec3","(","0.0", ",","0.0",",","1.0",")",";","else","aD","=","vec3","(","0.0",",","1.0",",","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","O","=","a_position",";","float","fN","=","abs","(","O",".","z",")",";","vec2","fO","=","u_camera_eye",".","xy","-","mod","(","u_camera_eye",".","xy",",","fN",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O",".","z","=","WATER_LEVEL", ";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O",".","z","=","0.0",";"]}]}}]},{TYPE:"txt",TOKENS:["O",".","xy","+=","fO",";","vec3","cb","=","O",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","a_texcoord",";"]}]}}]},{TYPE:"txt",TOKENS:["au","aw","=","av","(","a_position",",","vec3","(","0.0",")", ",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","u_model_tsr",")",";","vec3","cb","=","aw",".","O",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eL","=","fx","(","cb",".","xy",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fP","=","length","(","u_wind",")",";","if","(","fP","==","0.0",")","fP","=", "1.0",";","float","fQ","=","u_time",";","fQ","*=","fP",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fR","=","fN",";","vec3","fS","=","cb","+","vec3","(","fR",",","0.0",",","0.0",")",";","vec3","fT","=","cb","+","vec3","(","0.0",",","fR",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2},"FOAM",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eK", "=","cb",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","fS","=","cb","+","vec3","(","0.05",",","0.0",",","0.0",")",";","vec3","fT","=","cb","+","vec3","(","0.0",",","0.05",",","0.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_PARAMS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","fU","=","fx","(","fS",".","xy",")",";","vec3","fV","=","fx","(","fT",".","xy",")",";","fM","(","fS",",","fQ",",","fU",")",";","fM","(","fT",",","fQ",",","fV",")", ";","fM","(","cb",",","fQ",",","eL",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["fM","(","fS",",","fQ",",","vec3","(","0.0",")",")",";","fM","(","fT",",","fQ",",","vec3","(","0.0",")",")",";","fM","(","cb",",","fQ",",","vec3","(","0.0",")",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","a_position",".","z","<","0.0",")","{","cb",".","z","=", "WATER_LEVEL","-","1.0",";","fS",".","z","=","cb",".","z",";","fT",".","z","=","cb",".","z",";","}"]}]}}]},{TYPE:"txt",TOKENS:["vec3","ej","=","normalize","(","fS","-","cb",")",";","vec3","V","=","normalize","(","fT","-","cb",")",";","j","=","normalize","(","cross","(","ej",",","V",")",")",";","float","fW","=","dot","(","j",",","UP_VECTOR",")",";","float","aL","=","clamp","(","0.8","-","fW",",","0.0",",","1.0",")",";","j","=","mix","(","j",",","UP_VECTOR",",","aL",")",";"]}]}},{TYPE:"elif",EXPRESSION:["GENERATED_MESH", {TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","S","=","R","(","a_tbn",")",";","j","=","T","(","S",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["j","=","vec3","(","0.0",",","0.0",",","1.0",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_NORMALMAPS",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC",{TYPE:"logic_negative_expr", PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GENERATED_MESH",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","T","(","S",",","vec3","(","1.0",",","0.0",",","0.0",")",")",";"]}]}},{TYPE:"elif",EXPRESSION:["DYNAMIC",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","V","=","vec3","(","1.0",",","0.0",",","0.0",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["k","=","V",";","eJ","=", "cross","(","j",",","k",")",";"]}]}}]},{TYPE:"txt",TOKENS:["h","=","cb",";","bY","=","u_camera_eye","-","cb",";","vec4","cc","=","vec4","(","ap","(","u_view_tsr",",","cb",")",",","1.0",")",";","vec4","f","=","u_proj_matrix","*","cc",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","fX","=","f",".","x",";","float","fY","=", "f",".","y",";","float","fZ","=","f",".","w",";","l",".","x","=","(","fX","+","fZ",")","/","2.0",";","l",".","y","=","(","fY","+","fZ",")","/","2.0",";","l",".","z","=","fZ",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHORE_SMOOTHING","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["m","=","-","cc",".","z","/","u_view_max_depth",";"]}]}}]}, {TYPE:"txt",TOKENS:["gl_Position","=","f",";","}"]}]},exports["postprocessing/antialiasing.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"AA_METHOD",TOKENS:["AA_METHOD_FXAA_LIGHT"]},{TYPE:"var",NAME:"AA_QUALITY",TOKENS:["AA_QUALITY_LOW"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color",";","uniform","vec2","u_texel_size",";","GLSL_IN", "vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["AA_METHOD","AA_METHOD_FXAA_LIGHT",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_REDUCE_MIN",TOKENS:["(","1.0","/","128.0",")"]},{TYPE:"define",NAME:"FXAA_REDUCE_MUL",TOKENS:["(","1.0","/","8.0",")"]},{TYPE:"define",NAME:"FXAA_SPAN_MAX",TOKENS:["8.0"]},{TYPE:"txt",TOKENS:["vec4","gc","(","float","x",",","float","y",")","{","vec2","f_","=","A","+","vec2","(","x", ",","y",")","*","u_texel_size",";","return","GLSL_TEXTURE","(","u_color",",","f_",")",";","}","vec4","gx","(",")","{","vec4","gd","=","gc","(","-","1.0",",","-","1.0",")",";","vec4","ge","=","gc","(","1.0",",","-","1.0",")",";","vec4","gf","=","gc","(","-","1.0",",","1.0",")",";","vec4","gh","=","gc","(","1.0",",","1.0",")",";","vec4","gi","=","gc","(","0.0",",","0.0",")",";","float","gk","=","gj","(","gi",")",";","float","gl","=","gj","(","gd",")",";","float","gm","=","gj","(","ge",")",";","float", "gn","=","gj","(","gf",")",";","float","go","=","gj","(","gh",")",";","float","gp","=","min","(","gk",",","min","(","min","(","gl",",","gm",")",",","min","(","gn",",","go",")",")",")",";","float","gq","=","max","(","gk",",","max","(","max","(","gl",",","gm",")",",","max","(","gn",",","go",")",")",")",";","vec2","bH",";","bH",".","x","=","-","(","(","gl","+","gm",")","-","(","gn","+","go",")",")",";","bH",".","y","=","(","(","gl","+","gn",")","-","(","gm","+","go",")",")",";","float","gs","=","max", "(","(","gl","+","gm","+","gn","+","go",")","*","(","0.25","*","FXAA_REDUCE_MUL",")",",","FXAA_REDUCE_MIN",")",";","float","gt","=","1.0","/","(","min","(","abs","(","bH",".","x",")",",","abs","(","bH",".","y",")",")","+","gs",")",";","bH","=","min","(","vec2","(","FXAA_SPAN_MAX",",","FXAA_SPAN_MAX",")",",","max","(","vec2","(","-","FXAA_SPAN_MAX",",","-","FXAA_SPAN_MAX",")",",","bH","*","gt",")",")","*","u_texel_size",";","vec4","gu","=","0.5","*","(","GLSL_TEXTURE","(","u_color",",","A","+","bH", "*","(","1.0","/","3.0","-","0.5",")",")","+","GLSL_TEXTURE","(","u_color",",","A","+","bH","*","(","2.0","/","3.0","-","0.5",")",")",")",";","vec4","gv","=","gu","*","0.5","+","0.25","*","(","GLSL_TEXTURE","(","u_color",",","A","+","bH","*","-","0.5",")","+","GLSL_TEXTURE","(","u_color",",","A","+","bH","*","0.5",")",")",";","float","gw","=","gj","(","gv",")",";","if","(","(","gw","<","gp",")","||","(","gw",">","gq",")",")","return","gu",";","else","return","gv",";","}"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD", "AA_METHOD_FXAA_QUALITY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GREEN_AS_LUMA",TOKENS:["1"]},{TYPE:"include",FILE:"fxaa.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["AA_QUALITY","AA_QUALITY_HIGH",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PRESET",TOKENS:["39"]},{TYPE:"define",NAME:"FXAA_QUALITY_SUBPIX",TOKENS:["1.00"]},{TYPE:"define",NAME:"FXAA_QUALITY_EDGE_THRESHOLD",TOKENS:["0.063"]},{TYPE:"define",NAME:"FXAA_QUALITY_EDGE_THRESHOLD_MIN", TOKENS:["0.0312"]}]}},{TYPE:"elif",EXPRESSION:["AA_QUALITY","AA_QUALITY_MEDIUM",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PRESET",TOKENS:["20"]},{TYPE:"define",NAME:"FXAA_QUALITY_SUBPIX",TOKENS:["0.65"]},{TYPE:"define",NAME:"FXAA_QUALITY_EDGE_THRESHOLD",TOKENS:["0.166"]},{TYPE:"define",NAME:"FXAA_QUALITY_EDGE_THRESHOLD_MIN",TOKENS:["0.0625"]}]}},{TYPE:"elif",EXPRESSION:["AA_QUALITY","AA_QUALITY_LOW",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"FXAA_QUALITY_PRESET",TOKENS:["12"]},{TYPE:"define",NAME:"FXAA_QUALITY_SUBPIX",TOKENS:["0.50"]},{TYPE:"define",NAME:"FXAA_QUALITY_EDGE_THRESHOLD",TOKENS:["0.166"]},{TYPE:"define",NAME:"FXAA_QUALITY_EDGE_THRESHOLD_MIN",TOKENS:["0.0833"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["AA_METHOD","AA_METHOD_FXAA_LIGHT",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","gx","(",")",";"]}]}}, {TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_FXAA_QUALITY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","gy","=","u_texel_size",";","GLSL_OUT_FRAG_COLOR","=","gz","(","A",",","u_color",",","gy",",","FXAA_QUALITY_SUBPIX",",","FXAA_QUALITY_EDGE_THRESHOLD",",","FXAA_QUALITY_EDGE_THRESHOLD_MIN",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["postprocessing/bloom_combine.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"}, {TYPE:"include",FILE:"std.glsl"},{TYPE:"var",NAME:"BLUR_PASS_NUM",TOKENS:["BLUR_PASS_5"]},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_main",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_1",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_bloom_level_0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_2",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D", "u_bloom_level_1",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_3",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_bloom_level_2",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_4",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_bloom_level_3",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_5",{TYPE:"ge_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_bloom_level_4",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","gA","=","GLSL_TEXTURE","(","u_main",",","A",")",";","vec4","gB","=","vec4","(","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_1",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gB","+=","GLSL_TEXTURE","(","u_bloom_level_0", ",","A",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_2",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gB","+=","GLSL_TEXTURE","(","u_bloom_level_1",",","A",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_3",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gB","+=","GLSL_TEXTURE","(","u_bloom_level_2",",","A",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM", "BLUR_PASS_4",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gB","+=","GLSL_TEXTURE","(","u_bloom_level_3",",","A",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLUR_PASS_NUM","BLUR_PASS_5",{TYPE:"ge_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gB","+=","GLSL_TEXTURE","(","u_bloom_level_4",",","A",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","gA","+","gB",";","}"]}]},exports["postprocessing/coc.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version", TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"COC_TYPE",TOKENS:["COC_ALL"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"depth_fetch.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color",";","uniform","sampler2D","u_depth",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COC_TYPE","COC_COMBINE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_coc_fg",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","float","u_view_max_depth",";","uniform","float","u_dof_dist",";","uniform","float","u_dof_front_start",";","uniform","float","u_dof_front_end",";","uniform","float","u_dof_rear_start",";","uniform","float","u_dof_rear_end",";","uniform","vec2","u_camera_range",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","aQ","=","GLSL_TEXTURE","(","u_color", ",","A",")",";","if","(","u_dof_dist",">","0.0",")","{","float","et","=","gC","(","u_depth",",","A",",","u_camera_range",")",";","et","*=","u_view_max_depth",";","float","gD","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COC_TYPE","COC_COMBINE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","gE","=","GLSL_TEXTURE","(","u_coc_fg",",","A",")",";","float","gF","=","gE",".","a",";"]}]}}]},{TYPE:"txt",TOKENS:["if","(","et","<","u_dof_dist",")","gD","=", "(","u_dof_dist","-","et","-","u_dof_front_start",")","/","(","u_dof_front_end","-","u_dof_front_start",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COC_TYPE","COC_FOREGROUND",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["else","gD","=","(","et","-","u_dof_dist","-","u_dof_rear_start",")","/","(","u_dof_rear_end","-","u_dof_rear_start",")",";"]}]}}]},{TYPE:"txt",TOKENS:["gD","=","clamp","(","gD",",","0.0",",","1.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["COC_TYPE","COC_COMBINE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["gD","=","max","(","gD",",","gF",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COC_TYPE","COC_FOREGROUND",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","gD",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",".","xyz","*","gD",",","gD",")",";"]}]}}]}, {TYPE:"txt",TOKENS:["}","else","GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",".","xyz",",","0.0",")",";","}"]}]},exports["postprocessing/compositing.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color",";","uniform","float","u_brightness",";","uniform","float","u_contrast",";","uniform","float","u_exposure",";","uniform", "float","u_saturation",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","gG","=","GLSL_TEXTURE","(","u_color",",","A",")",";","vec3","aQ","=","gG",".","rgb",";","if","(","u_brightness","<","0.0",")","aQ","=","aQ","*","(","1.0","+","u_brightness",")",";","else","aQ","=","aQ","+","(","(","1.0","-","aQ",")","*","u_brightness",")",";","aQ","=","(","aQ","-","0.5",")","*","(","tan","(","(","u_contrast","+","1.0",")","*","M_PI_4",")",")","+","0.5", ";","aQ","*=","u_exposure",";","float","dv","=","gj","(","vec4","(","aQ",",","0.0",")",")",";","aQ","=","mix","(","vec3","(","dv",")",",","aQ",",","u_saturation",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","gG",".","a",")",";","}"]}]},exports["postprocessing/depth_pack.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";"]},{TYPE:"include",FILE:"precision_statement.glslf"}, {TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"pack.glslf"},{TYPE:"include",FILE:"depth_fetch.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_depth",";","uniform","vec2","u_camera_range",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","GLSL_OUT_FRAG_COLOR","=","eu","(","clamp","(","gC","(","u_depth",",","A",",","u_camera_range",")",",","0.0",",","0.999999",")",")",";","}"]}]},exports["postprocessing/dof.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version", TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"DOF_TYPE",TOKENS:["DOF_SIMPLE"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOF_TYPE","DOF_BOKEH",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","highp","sampler2D","u_sharp",";","uniform","highp","sampler2D","u_blurred1",";","uniform", "highp","sampler2D","u_blurred2",";","uniform","float","u_dof_dist",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"depth_fetch.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_sharp",";","uniform","sampler2D","u_blurred",";","uniform","sampler2D","u_depth",";","uniform","float","u_view_max_depth",";","uniform","float","u_dof_dist",";","uniform","float","u_dof_front_end",";","uniform","float","u_dof_rear_end",";","uniform","vec2","u_camera_range",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN", "vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","gH","=","GLSL_TEXTURE","(","u_sharp",",","A",")",";","if","(","u_dof_dist",">","0.0",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOF_TYPE","DOF_BOKEH",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","gD",";","vec4","gI","=","GLSL_TEXTURE","(","u_blurred1",",","A",")",";","vec4","gJ","=","GLSL_TEXTURE","(","u_blurred2",",","A",")",";","vec4","gK","=","min","(","gI", ".","rgba",",","gJ",".","rgba",")",";","gD","=","gK",".","a",";","if","(","gD",">","0.0",")","{","gK","=","vec4","(","gK",".","rgb","/","gD",",","gH",".","a",")",";","GLSL_OUT_FRAG_COLOR","=","mix","(","gH",",","gK",",","min","(","gD","*","5.0",",","1.0",")",")",";","}","else","GLSL_OUT_FRAG_COLOR","=","gH",";"]}]}},{TYPE:"elif",EXPRESSION:["DOF_TYPE","DOF_SIMPLE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","et","=","gC","(","u_depth",",","A",",","u_camera_range", ")",";","et","*=","u_view_max_depth",";","float","gL",";","if","(","et","<","u_dof_dist",")","gL","=","(","u_dof_dist","-","et",")","/","u_dof_front_end",";","else","gL","=","(","et","-","u_dof_dist",")","/","u_dof_rear_end",";","gL","=","clamp","(","gL",",","0.0",",","1.0",")",";","vec4","gM","=","GLSL_TEXTURE","(","u_blurred",",","A",")",";","GLSL_OUT_FRAG_COLOR","=","mix","(","gH",",","gM",",","gL",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=", "gH",";"]}]}}]},{TYPE:"txt",TOKENS:["}","else","GLSL_OUT_FRAG_COLOR","=","gH",";","}"]}]},exports["postprocessing/glow.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_src_color",";","uniform","sampler2D","u_glow_mask_small",";","uniform","sampler2D","u_glow_mask_large",";","uniform","float","u_glow_mask_small_coeff",";","uniform","float","u_glow_mask_large_coeff", ";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","gN","=","GLSL_TEXTURE","(","u_src_color",",","A",")",";","vec4","gO","=","GLSL_TEXTURE","(","u_glow_mask_small",",","A",")",";","vec4","gP","=","GLSL_TEXTURE","(","u_glow_mask_large",",","A",")",";","GLSL_OUT_FRAG_COLOR","=","gN",";","if","(","gP",".","a","!=","0.0",")","{","float","gQ","=","u_glow_mask_large_coeff","*","gP",".","a",";","gQ","=","clamp","(","gQ",",","0.0",",","1.0",")",";","GLSL_OUT_FRAG_COLOR", ".","rgb","=","mix","(","GLSL_OUT_FRAG_COLOR",".","rgb",",","gP",".","rgb","/","gP",".","a",",","gQ",")",";","GLSL_OUT_FRAG_COLOR",".","a","=","mix","(","GLSL_OUT_FRAG_COLOR",".","a",",","1.0",",","gQ",")",";","}","if","(","gO",".","a","!=","0.0",")","{","float","gR","=","u_glow_mask_small_coeff","*","gO",".","a",";","gR","=","clamp","(","gR",",","0.0",",","1.0",")",";","GLSL_OUT_FRAG_COLOR",".","rgb","=","mix","(","GLSL_OUT_FRAG_COLOR",".","rgb",",","gO",".","rgb","/","gO",".","a",",","gR",")",";", "GLSL_OUT_FRAG_COLOR",".","a","=","mix","(","GLSL_OUT_FRAG_COLOR",".","a",",","1.0",",","gR",")",";","}","}"]}]},exports["postprocessing/god_rays.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"DEPTH_RGBA",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"STEPS_PER_PASS",TOKENS:["10.0"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";"]},{TYPE:"include",FILE:"precision_statement.glslf"}, {TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"depth_fetch.glslf"},{TYPE:"include",FILE:"procedural.glslf"},{TYPE:"include",FILE:"pack.glslf"},{TYPE:"txt",TOKENS:["uniform","float","u_time",";","uniform","float","u_radial_blur_step",";","uniform","sampler2D","u_input",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec2","u_camera_range",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA","WATER_EFFECTS", {TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","float","gS",";","GLSL_IN","vec2","gT",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";","GLSL_IN","vec4","gU",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec2","cX","=","(","gU",".","xy","-","A",")",";","float","aM","=","length","(","cX",")",";","vec2","gV","=","u_radial_blur_step","*","cX","/","aM",";","float","gW","=","aM","/","u_radial_blur_step",";","gV","*=","min", "(","gW",",","STEPS_PER_PASS",")","/","STEPS_PER_PASS",";","gW","=","max","(","gW",",","STEPS_PER_PASS",")",";","vec2","gX","=","A",";","float","gY","=","0.0",";","const","int","gZ","=","int","(","STEPS_PER_PASS",")",";","int","g_","=","int","(","gW","+","0.5",")",";","for","(","int","cq","=","0",";","cq","<","gZ",";","cq","+=","1",")","{","if","(","cq","<=","g_",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","et","=","gC","(", "u_input",",","gX",",","u_camera_range",")",";","gY","+=","max","(","(","1.0","-","pow","(","aM",",","0.3",")",")","*","step","(","0.9",",","et",")",",","0.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","ha","=","GLSL_TEXTURE","(","u_input",",","gX",")",";","gY","+=","cV","(","ha",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","gX","+=","gV",";","}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec2","ce","=","A","+","gT",";","float","hb","=","fK","(","vec2","(","2.5","*","(","ce",".","x",")",",","2.5","*","(","ce",".","y",")","+","1.0","*","u_time",")",")",".","x","+","0.75","*","fK","(","vec2","(","5.0","*","(","ce",".","x",")","-","0.66","*","u_time",",","5.0","*","(","ce",".","y",")","+","0.66","*","u_time",")",")",".","x","+","0.5","*","fz","(","vec2","(","7.5","*","(","ce",".","x",")","+","0.33","*","u_time",",","7.5","*","(","ce",".","y",")","-","0.33", "*","u_time",")",")",";","hb","*=","clamp","(","1.2","-","sqrt","(","0.2","*","aM",")",",","0.0",",","1.0",")","*","gS",";","gY","=","max","(","hb",",","gY",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","eu","(","gY","/","STEPS_PER_PASS",")",";","}"]}]},exports["postprocessing/god_rays.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"DEPTH_RGBA",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include", FILE:"math.glslv"},{TYPE:"txt",TOKENS:["uniform","mat4","u_view_proj_matrix",";","uniform","vec3","u_sun_direction",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","vec4","u_camera_quat",";","uniform","float","u_cam_water_depth",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec2","a_bb_vertex",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA","WATER_EFFECTS",{TYPE:"logical_and_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","float","gS",";","GLSL_OUT","vec2","gT",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","A",";","GLSL_OUT","vec4","gU",";","void","main","(",")","{","A","=","a_bb_vertex",";","vec3","bH","=","normalize","(","u_sun_direction",")",";","gU","=","u_view_proj_matrix","*","vec4","(","bH",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DEPTH_RGBA","WATER_EFFECTS",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["if","(","u_cam_water_depth","<","0.0",")","{","gS","=","1.0",";","vec3","hc","=","vec3","(","0.0",",","1.0",",","0.0",")",";","vec3","hd","=","T","(","u_camera_quat",",","hc",")",";","hd","=","normalize","(","hd",")",";","float","he","=","dot","(","hd",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";","float","hf","=","atan","(","hd",".","x",",","hd",".","z",")",";","gT","=","vec2","(","-","hf",",","acos","(","he",")",")",";","}","else","{","gS","=","0.0",";","}"]}]}}]},{TYPE:"txt",TOKENS:["gU", ".","xy","=","0.5","*","(","gU",".","xy","/","gU",".","w","+","1.0",")",";","gU","+=","99999.0","*","step","(","gU",".","z",",","0.0",")",";","gl_Position","=","vec4","(","2.0","*","a_bb_vertex",".","xy","-","1.0",",","0.0",",","1.0",")",";","}"]}]},exports["postprocessing/god_rays_combine.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"SAFARI_CANVAS_ALPHA_HACK",TOKENS:["0"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include", FILE:"color_util.glslf"},{TYPE:"include",FILE:"pack.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_main",";","uniform","sampler2D","u_god_rays",";","uniform","float","u_god_rays_intensity",";","uniform","vec3","u_sun_intensity",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","hg","=","GLSL_TEXTURE","(","u_main",",","A",")",";","vec3","hh","=","clamp","(","u_sun_intensity",",","0.4",",","0.8",")",";","bG","(","hg",".","rgb",")",";","float", "hi","=","cV","(","GLSL_TEXTURE","(","u_god_rays",",","A",")",")",";","vec3","hj","=","hg",".","rgb","+","u_god_rays_intensity","*","vec3","(","hi",")","*","hh",";","aW","(","hj",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SAFARI_CANVAS_ALPHA_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","hj",",","max","(","0.01",",","hg",".","a",")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","hj", ",","hg",".","a",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["postprocessing/luminance.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_input",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","gA","=","GLSL_TEXTURE","(","u_input",",","A",")",";","float","hk","=","dot","(","gA",".","rgb",",", "vec3","(","0.2126",",","0.7152",",","0.0722",")",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","vec3","(","hk",")",",","1.0",")",";","}"]}]},exports["postprocessing/luminance_av.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_input",";","uniform","float","u_mipmap_1x1",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main", "(",")","{","float","hl","=","max","(","GLSL_TEXTURE","(","u_input",",","A",",","u_mipmap_1x1",")",".","r",",","0.01",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","vec3","(","hl",")",",","1.0",")",";","}"]}]},exports["postprocessing/luminance_truncated.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"var",NAME:"ADAPTIVE_BLOOM",TOKENS:["0"]},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_main", ";","uniform","sampler2D","u_luminance",";","uniform","sampler2D","u_average_lum",";","uniform","float","u_bloom_edge_lum",";","uniform","float","u_bloom_key",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ADAPTIVE_BLOOM",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_average_lum_val",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["ADAPTIVE_BLOOM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","hl","=","GLSL_TEXTURE","(","u_average_lum",",","vec2","(","0.5",")",")",".","r",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","hl","=","u_average_lum_val",";"]}]}}]},{TYPE:"txt",TOKENS:["float","hm","=","GLSL_TEXTURE","(","u_luminance",",","A",")",".","r",";","vec4","aQ","=","GLSL_TEXTURE","(","u_main",",","A",")",";","float","hn","=","hm","/","hl",";","float","ho","=","u_bloom_edge_lum", ";","GLSL_OUT_FRAG_COLOR","=","aQ","*","u_bloom_key","*","smoothstep","(","ho",",","ho","+","1.2",",","hn",")",";","}"]}]},exports["postprocessing/motion_blur.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_mb_tex_curr",";","uniform","sampler2D","u_mb_tex_accum",";","uniform","float","u_motion_blur_exp",";","uniform","float","u_motion_blur_decay_threshold", ";","float","hp","=","0.0042",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","hq","=","GLSL_TEXTURE","(","u_mb_tex_curr",",","A",")",";","vec4","hr","=","GLSL_TEXTURE","(","u_mb_tex_accum",",","A",")",";","if","(","length","(","hq","-","hr",")",">","u_motion_blur_decay_threshold",")","{","vec4","hs","=","(","1.0","-","u_motion_blur_exp",")","*","hq","+","u_motion_blur_exp","*","hr",";","vec4","ht","=","hs","-","hr",";","vec4","hu","=","hq", "-","hr",";","vec4","cX","=","min","(","max","(","abs","(","ht",")",",","vec4","(","hp",")",")",",","abs","(","hu",")",")","*","sign","(","ht",")",";","GLSL_OUT_FRAG_COLOR","=","hr","+","cX",";","}","else","{","GLSL_OUT_FRAG_COLOR","=","hq",";","}","}"]}]},exports["postprocessing/outline.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform", "sampler2D","u_outline_src",";","uniform","sampler2D","u_outline_mask",";","uniform","sampler2D","u_outline_mask_blurred",";","uniform","vec3","u_outline_color",";","uniform","float","u_draw_outline",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","hv","=","GLSL_TEXTURE","(","u_outline_src",",","A",")",";","GLSL_OUT_FRAG_COLOR","=","hv",";","if","(","u_draw_outline","!=","0.0",")","{","vec4","hw","=","GLSL_TEXTURE","(","u_outline_mask",",", "A",")",";","vec4","hx","=","GLSL_TEXTURE","(","u_outline_mask_blurred",",","A",")",";","float","hy","=","hx",".","a","-","hw",".","a",";","if","(","hy","!=","0.0",")","{","float","hz","=","smoothstep","(","0.0",",","1.0",",","hx",".","a",")",";","if","(","hw",".","a","==","0.0",")","{","vec3","hA","=","u_outline_color",";","aW","(","hA",")",";","vec4","hB","=","vec4","(","clamp","(","hA",",","0.0",",","1.0",")",",","1.0",")",";","GLSL_OUT_FRAG_COLOR","=","mix","(","hv",",","hB",",","hz",")",";", "}","}","}","}"]}]},exports["postprocessing/performance.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","vec4","aQ","=","vec4","(","0.0",")",";","for","(","int","cq","=","0",";","cq","<","10",";","cq","++",")","{","vec2","hC","=","vec2","(","fract", "(","A","*","vec2","(","cq",")","*","vec2","(","1.431",",","3.921",")",")",")",";","aQ","+=","0.01","*","GLSL_TEXTURE","(","u_color",",","hC",")",";","}","GLSL_OUT_FRAG_COLOR","=","aQ",";","}"]}]},exports["postprocessing/postprocessing.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"POST_EFFECT",TOKENS:["POST_EFFECT_NONE"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","vec2","u_texel_size",";", "uniform","sampler2D","u_color",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POST_EFFECT","FLIP_CUBEMAP_COORDS",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","int","u_tex_number",";","uniform","vec2","u_delta",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POST_EFFECT","POST_EFFECT_DOF_BLUR",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","float","u_dof_bokeh_intensity",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_IN", "vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POST_EFFECT","POST_EFFECT_NONE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","A",")",";"]}]}},{TYPE:"elif",EXPRESSION:["POST_EFFECT","POST_EFFECT_GRAYSCALE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","dx","=","GLSL_TEXTURE","(","u_color",",", "A",")",";","GLSL_OUT_FRAG_COLOR",".","rgb","=","vec3","(","(","dx",".","r","+","dx",".","g","+","dx",".","b",")","/","3.0",")",";","GLSL_OUT_FRAG_COLOR",".","a","=","1.0",";"]}]}},{TYPE:"elif",EXPRESSION:["POST_EFFECT","POST_EFFECT_BLUR",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","fM","=","vec2","(","0.0",",","0.0",")",";","vec2","cX","=","u_texel_size",";","vec4","aQ",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A",")",";","GLSL_OUT_FRAG_COLOR","=","aQ", "*","0.2270270270",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","0.1945945946",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","0.1945945946",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","0.1216216216",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=", "aQ","*","0.1216216216",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","0.0540540541",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","0.0540540541",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","0.0162162162",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR", "+=","aQ","*","0.0162162162",";"]}]}},{TYPE:"elif",EXPRESSION:["POST_EFFECT","POST_EFFECT_GLOW_BLUR",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","fM","=","vec2","(","0.0",",","0.0",")",";","vec2","cX","=","u_texel_size",";","vec4","aQ",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A",")",";","GLSL_OUT_FRAG_COLOR","=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.152507",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color", ",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.141763",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.141763",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.113861", ";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.113861",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.079019",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(", "0.0",",","-","aQ",".","a",")",")","*","0.079019",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.047383",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.047383",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM", ")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.024549",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.024549",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.01099",";","aQ", "=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.01099",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.00425",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",", "-","aQ",".","a",")",")","*","0.00425",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.00142",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","GLSL_OUT_FRAG_COLOR","+=","aQ","*","(","1.0","-","step","(","0.0",",","-","aQ",".","a",")",")","*","0.00142",";","GLSL_OUT_FRAG_COLOR","=","clamp","(","GLSL_OUT_FRAG_COLOR",",","0.0",",","1.0",")",";"]}]}}, {TYPE:"elif",EXPRESSION:["POST_EFFECT","POST_EFFECT_DOF_BLUR",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","fM","=","vec2","(","0.0",",","0.0",")",";","vec2","cX","=","u_texel_size",";","vec4","aQ",";","vec4","hD",";","vec4","hE",";","float","gD",";","float","hF","=","u_dof_bokeh_intensity",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A",")",";","hD","=","aQ",";","hE","=","aQ",";","gD","=","aQ",".","a",";","cX","=","gD","*","cX",";","for","(","int","cq","=", "0",";","cq","<","12",";","cq","+=","2",")","{","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","hD","+=","aQ",";","hE","=","max","(","hE",",","aQ",")",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","hD","+=","aQ",";","hE","=","max","(","hE",",","aQ",")",";","}","hD","/=","13.0",";","GLSL_OUT_FRAG_COLOR","=","mix","(","hD",",","hE",",","hF",")",";"]}]}},{TYPE:"elif",EXPRESSION:["POST_EFFECT","POST_EFFECT_ALPHA_BLUR",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","fM","=","vec2","(","0.0",",","0.0",")",";","vec2","cX","=","u_texel_size",";","vec4","aQ",";","vec4","hD",";","vec4","hE",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A",")",";","hE","=","max","(","hE",",","aQ",")",";","hD","=","aQ",";","hD",".","a","=","aQ",".","a","*","0.2270270270",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".", "a","+=","aQ",".","a","*","0.1945945946",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.1945945946",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.1216216216",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","hE",".","a", "=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.1216216216",";","fM","+=","cX",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.0540540541",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.0540540541",";","fM","+=","cX", ";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.0162162162",";","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","fM",")",";","hE",".","a","=","max","(","hE",".","a",",","aQ",".","a",")",";","hD",".","a","+=","aQ",".","a","*","0.0162162162",";","GLSL_OUT_FRAG_COLOR","=","mix","(","hD",",","hE",",","0.5",")",";"]}]}},{TYPE:"elif",EXPRESSION:["POST_EFFECT","POST_EFFECT_EXTEND", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","cX","=","u_texel_size",";","vec4","aQ","=","GLSL_TEXTURE","(","u_color",",","A",")",";","GLSL_OUT_FRAG_COLOR","=","aQ",";","if","(","aQ",".","a","==","0.0",")","{","aQ","=","GLSL_TEXTURE","(","u_color",",","A","+","cX",")",";","if","(","aQ",".","a",">","0.0",")","GLSL_OUT_FRAG_COLOR","=","vec4","(","1.0",",","1.0",",","1.0",",","aQ",".","a",")",";","else","{","aQ","=","GLSL_TEXTURE","(","u_color",",","A","-","cX",")", ";","if","(","aQ",".","a",">","0.0",")","GLSL_OUT_FRAG_COLOR","=","vec4","(","1.0",",","1.0",",","1.0",",","aQ",".","a",")",";","}","}"]}]}},{TYPE:"elif",EXPRESSION:["POST_EFFECT","FLIP_CUBEMAP_COORDS",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","hG","=","u_delta","[","0","]",";","float","hH","=","u_delta","[","1","]",";","float","hI","=","1.0","/","3.0",";","float","hJ","=","0.5",";","vec2","hK","=","vec2","(","hI",",","hJ",")",";","if","(","u_tex_number","==", "0",")","{","vec2","ce","=","mat2","(","0.0",",","-","1.0",",","1.0",",","0.0",")","*","A","*","hK","+","vec2","(","2.0","*","hI",",","hJ",")",";","ce","[","0","]","=","max","(","ce","[","0","]",",","2.0","*","hI","+","hG",")",";","ce","[","1","]","=","max","(","ce","[","1","]",",","hH",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","vec2","(","ce","[","0","]",",","hJ","-","ce","[","1","]",")",")",";","}","else","if","(","u_tex_number","==","1",")","{","vec2","ce","=","mat2","(", "0.0",",","-","1.0",",","1.0",",","0.0",")","*","A","*","hK","+","vec2","(","0.0",",","hJ",")",";","ce","[","0","]","=","max","(","ce","[","0","]",",","hG",")",";","ce","[","1","]","=","min","(","ce","[","1","]",",","hJ","-","hH",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","vec2","(","hI","-","ce","[","0","]",",","ce","[","1","]",")",")",";","}","else","if","(","u_tex_number","==","2",")","{","vec2","ce","=","A","*","hK","+","vec2","(","2.0","*","hI",",","hJ",")",";","ce","[", "0","]","=","max","(","ce","[","0","]",",","2.0","*","hI","+","hG",")",";","ce","[","1","]","=","min","(","ce","[","1","]",",","1.0","-","hH",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","vec2","(","ce","[","0","]",",","1.5","-","ce","[","1","]",")",")",";","}","else","if","(","u_tex_number","==","3",")","{","vec2","ce","=","A","*","hK","+","vec2","(","hI",",","0.0",")",";","ce","[","0","]","=","max","(","ce","[","0","]",",","hI","+","hG",")",";","ce","[","0","]","=","min","(", "ce","[","0","]",",","2.0","*","hI","-","hG",")",";","ce","[","1","]","=","min","(","ce","[","1","]",",","hJ","-","hH",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","vec2","(","1.0","-","ce","[","0","]",",","ce","[","1","]",")",")",";","}","else","if","(","u_tex_number","==","4",")","{","vec2","ce","=","A","*","hK","+","vec2","(","hI",",","hJ",")",";","ce","[","0","]","=","max","(","ce","[","0","]",",","hI","+","hG",")",";","ce","[","0","]","=","min","(","ce","[","0","]",",", "2.0","*","hI","-","hG",")",";","ce","[","1","]","=","min","(","ce","[","1","]",",","1.0","-","hH",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","vec2","(","ce","[","0","]",",","3.0","*","hJ","-","ce","[","1","]",")",")",";","}","else","{","vec2","ce","=","A","*","hK","+","vec2","(","0.0",",","hJ",")",";","ce","[","0","]","=","max","(","ce","[","0","]",",","hG",")",";","ce","[","1","]","=","min","(","ce","[","1","]",",","1.0","-","hH",")",";","ce","[","1","]","=","max","(","ce", "[","1","]",",","hJ","+","hH",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_color",",","vec2","(","hI","-","ce","[","0","]",",","ce","[","1","]",")",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["postprocessing/postprocessing.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["GLSL_IN","vec2","a_position",";","GLSL_OUT","vec2","A",";","void","main","(",")","{","A","=","2.0","*","a_position",";","gl_Position", "=","vec4","(","4.0","*","(","a_position",".","xy","-","0.25",")",",","0.0",",","1.0",")",";","}"]}]},exports["postprocessing/precompute_brdf.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";","precision","PRECISION","float",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR", ";","float","eb","(","int","cw",",","int","dY",")","{","float","dZ","=","1.0","/","float","(","dY",")",";","float","d_","=","1.0",";","float","ea","=","0.0",";","for","(","int","cq","=","0",";","cq","<","32",";","++","cq",")","{","if","(","cw",">","0",")","{","d_","=","mod","(","float","(","cw",")",",","2.0",")",";","ea","+=","d_","*","dZ",";","dZ","=","dZ","/","2.0",";","cw","=","int","(","float","(","cw",")","/","2.0",")",";","}","}","return","ea",";","}","vec2","ed","(","int","cq",",","int","ec", ")","{","return","vec2","(","float","(","cq",")","/","float","(","ec",")",",","eb","(","cq",",","2",")",")",";","}","vec3","ek","(","vec2","ee",",","vec3","ec",",","float","ef",")","{","float","a","=","ef","*","ef",";","float","bC","=","2.0","*","M_PI","*","ee",".","x",";","float","eg","=","sqrt","(","(","1.0","-","ee",".","y",")","/","(","1.0","+","(","a","*","a","-","1.0",")","*","ee",".","y",")",")",";","float","eh","=","sqrt","(","1.0","-","eg","*","eg",")",";","vec3","ei",";","ei",".","x","=", "cos","(","bC",")","*","eh",";","ei",".","y","=","sin","(","bC",")","*","eh",";","ei",".","z","=","eg",";","vec3","by","=","abs","(","ec",".","z",")","<","0.999","?","vec3","(","0.0",",","0.0",",","1.0",")",":","vec3","(","1.0",",","0.0",",","0.0",")",";","vec3","V","=","normalize","(","cross","(","by",",","ec",")",")",";","vec3","ej","=","cross","(","ec",",","V",")",";","vec3","bF","=","V","*","ei",".","x","+","ej","*","ei",".","y","+","ec","*","ei",".","z",";","return","normalize","(","bF",")", ";","}","float","hO","(","float","hL",",","float","ef",")","{","float","a","=","ef",";","float","hM","=","(","a","*","a",")","/","2.0",";","float","hN","=","hL",";","float","d_","=","hL","*","(","1.0","-","hM",")","+","hM",";","return","hN","/","d_",";","}","float","hR","(","vec3","ec",",","vec3","en",",","vec3","eq",",","float","ef",")","{","float","hL","=","max","(","dot","(","ec",",","en",")",",","0.0",")",";","float","er","=","max","(","dot","(","ec",",","eq",")",",","0.0",")",";","float","hP", "=","hO","(","hL",",","ef",")",";","float","hQ","=","hO","(","er",",","ef",")",";","return","hQ","*","hP",";","}","vec2","hY","(","float","hL",",","float","ef",")","{","vec3","en",";","en",".","x","=","sqrt","(","1.0","-","hL","*","hL",")",";","en",".","y","=","0.0",";","en",".","z","=","hL",";","float","cG","=","0.0",";","float","hS","=","0.0",";","vec3","ec","=","vec3","(","0.0",",","0.0",",","1.0",")",";","const","int","eo","=","1024",";","for","(","int","cq","=","0",";","cq","<","eo",";","++", "cq",")","{","vec2","ee","=","ed","(","cq",",","eo",")",";","vec3","ei","=","ek","(","ee",",","ec",",","ef",")",";","vec3","eq","=","normalize","(","2.0","*","dot","(","en",",","ei",")","*","ei","-","en",")",";","float","er","=","max","(","eq",".","z",",","0.0",")",";","float","hT","=","max","(","ei",".","z",",","0.0",")",";","float","hU","=","max","(","dot","(","en",",","ei",")",",","0.0",")",";","if","(","er",">","0.0",")","{","float","hV","=","hR","(","ec",",","en",",","eq",",","ef",")",";","float", "hW","=","(","hV","*","hU",")","/","(","hT","*","hL",")",";","float","hX","=","pow","(","1.0","-","hU",",","5.0",")",";","cG","+=","(","1.0","-","hX",")","*","hW",";","hS","+=","hX","*","hW",";","}","}","cG","/=","float","(","eo",")",";","hS","/=","float","(","eo",")",";","return","vec2","(","cG",",","hS",")",";","}","void","main","(",")","{","vec2","hZ","=","hY","(","A",".","x",",","A",".","y",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","hZ",",","0.0",",","1.0",")",";","}"]}]},exports["postprocessing/smaa.glslf"]= {TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"SMAA_PASS",TOKENS:["SMAA_RESOLVE"]},{TYPE:"var",NAME:"SMAA_REPROJECTION",TOKENS:["0"]},{TYPE:"var",NAME:"SMAA_PREDICATION",TOKENS:["0"]},{TYPE:"var",NAME:"SMAA_DISABLE_CORNER_DETECTION",TOKENS:["0"]},{TYPE:"var",NAME:"AA_METHOD",TOKENS:["AA_METHOD_SMAA_ULTRA"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"pack.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_RESOLVE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color_prev",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_blend",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["uniform","sampler2D","u_velocity_tex",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2},"SMAA_PREDICATION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_predication_tex",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D", "u_search_tex",";","uniform","sampler2D","u_area_tex",";","uniform","vec4","u_subsample_indices",";"]}]}}]},{TYPE:"txt",TOKENS:["uniform","vec2","u_texel_size",";","GLSL_IN","vec2","A",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","h_",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec4","ia",";","GLSL_IN","vec4","ib",";","GLSL_IN", "vec4","ic",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec2","id",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_LOW",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_THRESHOLD",TOKENS:["0.15"]},{TYPE:"define",NAME:"SMAA_DISABLE_DIAG_DETECTION", TOKENS:["1"]},{TYPE:"define",NAME:"SMAA_DISABLE_CORNER_DETECTION",TOKENS:["1"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_MEDIUM",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_THRESHOLD",TOKENS:["0.1"]},{TYPE:"define",NAME:"SMAA_DISABLE_DIAG_DETECTION",TOKENS:["1"]},{TYPE:"define",NAME:"SMAA_DISABLE_CORNER_DETECTION",TOKENS:["1"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_HIGH",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"SMAA_THRESHOLD",TOKENS:["0.1"]},{TYPE:"define",NAME:"SMAA_DISABLE_DIAG_DETECTION",TOKENS:["0"]},{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS_DIAG",TOKENS:["8"]},{TYPE:"define",NAME:"SMAA_CORNER_ROUNDING",TOKENS:["25"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_ULTRA",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_THRESHOLD",TOKENS:["0.05"]},{TYPE:"define",NAME:"SMAA_DISABLE_DIAG_DETECTION",TOKENS:["0"]},{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS_DIAG", TOKENS:["16"]},{TYPE:"define",NAME:"SMAA_CORNER_ROUNDING",TOKENS:["25"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_THRESHOLD",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_THRESHOLD",TOKENS:["0.1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_DEPTH_THRESHOLD",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_DEPTH_THRESHOLD",TOKENS:["(","0.1","*","SMAA_THRESHOLD",")"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_MAX_SEARCH_STEPS_DIAG",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"SMAA_MAX_SEARCH_STEPS_DIAG",TOKENS:["8"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_CORNER_ROUNDING",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_CORNER_ROUNDING",TOKENS:["25"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR",TOKENS:["2.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_PREDICATION",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_PREDICATION", TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_PREDICATION_THRESHOLD",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_PREDICATION_THRESHOLD",TOKENS:["0.01"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_PREDICATION_SCALE",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_PREDICATION_SCALE",TOKENS:["2.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_PREDICATION_STRENGTH",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_PREDICATION_STRENGTH",TOKENS:["0.4"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_REPROJECTION",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_REPROJECTION",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_REPROJECTION_WEIGHT_SCALE",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_REPROJECTION_WEIGHT_SCALE",TOKENS:["30.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_MAX_SEARCH_STEPS",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS",TOKENS:["16"]}]}}]},{TYPE:"define",NAME:"SMAA_AREATEX_MAX_DISTANCE", TOKENS:["16"]},{TYPE:"define",NAME:"SMAA_AREATEX_MAX_DISTANCE_DIAG",TOKENS:["20"]},{TYPE:"define",NAME:"SMAA_AREATEX_PIXEL_SIZE",TOKENS:["(","1.0","/","vec2","(","160.0",",","560.0",")",")"]},{TYPE:"define",NAME:"SMAA_AREATEX_SUBTEX_SIZE",TOKENS:["(","1.0","/","7.0",")"]},{TYPE:"define",NAME:"SMAA_SEARCHTEX_SIZE",TOKENS:["vec2","(","66.0",",","33.0",")"]},{TYPE:"define",NAME:"SMAA_SEARCHTEX_PACKED_SIZE",TOKENS:["vec2","(","64.0",",","16.0",")"]},{TYPE:"define",NAME:"SMAA_CORNER_ROUNDING_NORM",TOKENS:["(", "float","(","SMAA_CORNER_ROUNDING",")","/","100.0",")"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ii","(","vec2","ce",",","sampler2D","ie",")","{","float","p","=","GLSL_TEXTURE","(","ie",",","ce",")",".","r",";","float","ig","=","GLSL_TEXTURE","(","ie",",","ia",".","xy",")",".","r",";","float","ih","=","GLSL_TEXTURE","(","ie",",","ia",".","zw",")",".","r",";","return","vec3","(", "p",",","ig",",","ih",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","im","(","vec2","ce",",","sampler2D","ij",")","{","vec3","ik","=","ii","(","ce",",","ij",")",";","vec2","cX","=","abs","(","ik",".","xx","-","ik",".","yz",")",";","vec2","il","=","step","(","SMAA_PREDICATION_THRESHOLD",",","cX",")",";","return","SMAA_PREDICATION_SCALE","*","SMAA_THRESHOLD","*","(","1.0", "-","SMAA_PREDICATION_STRENGTH","*","il",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","ir","(","bvec2","io",",","inout","vec2","ip",",","vec2","iq",")","{","if","(","io",".","x",")","ip",".","x","=","iq",".","x",";","if","(","io",".","y",")","ip",".","y","=","iq",".","y",";","}","void","ir","(","bvec4","io",",","inout","vec4","ip",",","vec4","iq",")","{","ir","(","io",".","xy",",","ip",".","xy",",","iq",".","xy",")",";","ir","(","io",".","zw",",","ip",".","zw",",","iq",".","zw",")",";","}","vec2", "is","(","vec2","x",")","{","return","sign","(","x",")","*","floor","(","abs","(","x",")","+",".5",")",";","}","vec4","is","(","vec4","x",")","{","return","sign","(","x",")","*","floor","(","abs","(","x",")","+",".5",")",";","}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","iE","(","vec2","ce",",","sampler2D","it"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PREDICATION"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:[",","sampler2D","ij"]}]}}]},{TYPE:"txt",TOKENS:[")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PREDICATION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","iu","=","im","(","ce",",","ij",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","iu","=","vec2","(","SMAA_THRESHOLD",",","SMAA_THRESHOLD",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","iv","=","vec3","(","0.2126",",","0.7152",",","0.0722",")",";","float","eq","=","dot","(","GLSL_TEXTURE", "(","it",",","ce",")",".","rgb",",","iv",")",";","float","iw","=","dot","(","GLSL_TEXTURE","(","it",",","ia",".","xy",")",".","rgb",",","iv",")",";","float","ix","=","dot","(","GLSL_TEXTURE","(","it",",","ia",".","zw",")",".","rgb",",","iv",")",";","vec4","cX",";","cX",".","xy","=","abs","(","eq","-","vec2","(","iw",",","ix",")",")",";","vec2","il","=","step","(","iu",",","cX",".","xy",")",";","if","(","dot","(","il",",","vec2","(","1.0",",","1.0",")",")","==","0.0",")","discard",";","float","iy", "=","dot","(","GLSL_TEXTURE","(","it",",","ib",".","xy",")",".","rgb",",","iv",")",";","float","iz","=","dot","(","GLSL_TEXTURE","(","it",",","ib",".","zw",")",".","rgb",",","iv",")",";","cX",".","zw","=","abs","(","eq","-","vec2","(","iy",",","iz",")",")",";","vec2","iA","=","max","(","cX",".","xy",",","cX",".","zw",")",";","float","iB","=","dot","(","GLSL_TEXTURE","(","it",",","ic",".","xy",")",".","rgb",",","iv",")",";","float","iC","=","dot","(","GLSL_TEXTURE","(","it",",","ic",".","zw",")",".", "rgb",",","iv",")",";","cX",".","zw","=","abs","(","vec2","(","iw",",","ix",")","-","vec2","(","iB",",","iC",")",")",";","iA","=","max","(","iA",".","xy",",","cX",".","zw",")",";","float","iD","=","max","(","iA",".","x",",","iA",".","y",")",";","il",".","xy","*=","step","(","iD",",","SMAA_LOCAL_CONTRAST_ADAPTATION_FACTOR","*","cX",".","xy",")",";","return","il",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_DISABLE_DIAG_DETECTION",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec2","iG","(","vec2","iF",")","{","iF",".","r","=","iF",".","r","*","abs","(","5.0","*","iF",".","r","-","5.0","*","0.75",")",";","return","is","(","iF",")",";","}","vec4","iG","(","vec4","iF",")","{","iF",".","rb","=","iF",".","rb","*","abs","(","5.0","*","iF",".","rb","-","5.0","*","0.75",")",";","return","is","(","iF",")",";","}","vec2","iI","(","sampler2D","iH",",","vec2","ce",",","vec2","bH",",","out","vec2","iF",")","{","vec4","f_","=","vec4","(","ce",",","-","1.0", ",","1.0",")",";","vec3","t","=","vec3","(","u_texel_size",",","1.0",")",";","for","(","int","cq","=","0",";","cq","<","SMAA_MAX_SEARCH_STEPS_DIAG",";","cq","++",")","{","if","(","f_",".","z","<","float","(","SMAA_MAX_SEARCH_STEPS_DIAG","-","1",")","&&","f_",".","w",">","0.9",")","{","f_",".","xyz","+=","t","*","vec3","(","bH",",","1.0",")",";","iF","=","GLSL_TEXTURE","(","iH",",","f_",".","xy",",","0.0",")",".","rg",";","f_",".","w","=","dot","(","iF",",","vec2","(","0.5",",","0.5",")",")",";","}", "}","return","f_",".","zw",";","}","vec2","iJ","(","sampler2D","iH",",","vec2","ce",",","vec2","bH",",","out","vec2","iF",")","{","vec4","f_","=","vec4","(","ce",",","-","1.0",",","1.0",")",";","f_",".","x","+=","0.25","*","u_texel_size",".","x",";","vec3","t","=","vec3","(","u_texel_size",",","1.0",")",";","for","(","int","cq","=","0",";","cq","<","SMAA_MAX_SEARCH_STEPS_DIAG",";","cq","++",")","{","if","(","f_",".","z","<","float","(","SMAA_MAX_SEARCH_STEPS_DIAG","-","1",")","&&","f_",".","w",">", "0.9",")","{","f_",".","xyz","=","t","*","vec3","(","bH",",","1.0",")","+","f_",".","xyz",";","iF","=","GLSL_TEXTURE","(","iH",",","f_",".","xy",",","0.0",")",".","rg",";","iF","=","iG","(","iF",")",";","f_",".","w","=","dot","(","iF",",","vec2","(","0.5",",","0.5",")",")",";","}","}","return","f_",".","zw",";","}","vec2","iL","(","sampler2D","iK",",","vec2","aM",",","vec2","iF",",","float","fM",")","{","vec2","ce","=","vec2","(","SMAA_AREATEX_MAX_DISTANCE_DIAG",",","SMAA_AREATEX_MAX_DISTANCE_DIAG", ")","*","iF","+","aM",";","ce","=","SMAA_AREATEX_PIXEL_SIZE","*","ce","+","0.5","*","SMAA_AREATEX_PIXEL_SIZE",";","ce",".","x","+=","0.5",";","ce",".","y","+=","SMAA_AREATEX_SUBTEX_SIZE","*","fM",";","return","GLSL_TEXTURE","(","iK",",","ce",",","0.0",")",".","rg",";","}","vec2","iQ","(","sampler2D","iH",",","sampler2D","iK",",","vec2","ce",",","vec2","iF",",","vec4","iM",")","{","vec2","iv","=","vec2","(","0.0",",","0.0",")",";","vec4","dC",";","vec2","iN",";","if","(","iF",".","r",">","0.0",")", "{","dC",".","xz","=","iI","(","iH",",","ce",",","vec2","(","-","1.0",",","1.0",")",",","iN",")",";","dC",".","x","+=","float","(","iN",".","y",">","0.9",")",";","}","else","dC",".","xz","=","vec2","(","0.0",",","0.0",")",";","dC",".","yw","=","iI","(","iH",",","ce",",","vec2","(","1.0",",","-","1.0",")",",","iN",")",";","if","(","dC",".","x","+","dC",".","y",">","2.0",")","{","vec4","iO","=","vec4","(","-","dC",".","x","+","0.25",",","dC",".","x",",","dC",".","y",",","-","dC",".","y","-","0.25", ")","*","u_texel_size",".","xyxy","+","ce",".","xyxy",";","vec4","dx",";","dx",".","xy","=","GLSL_TEXTURE","(","iH",",","iO",".","xy","+","u_texel_size","*","vec2","(","-","1",",","0",")",",","0.0",")",".","rg",";","dx",".","zw","=","GLSL_TEXTURE","(","iH",",","iO",".","zw","+","u_texel_size","*","vec2","(","1",",","0",")",",","0.0",")",".","rg",";","dx",".","yxwz","=","iG","(","dx",".","xyzw",")",";","vec2","iP","=","vec2","(","2.0",",","2.0",")","*","dx",".","xz","+","dx",".","yw",";","ir","(", "bvec2","(","step","(","0.9",",","dC",".","zw",")",")",",","iP",",","vec2","(","0.0",",","0.0",")",")",";","iv","+=","iL","(","iK",",","dC",".","xy",",","iP",",","iM",".","z",")",";","}","dC",".","xz","=","iJ","(","iH",",","ce",",","vec2","(","-","1",",","-","1",")",",","iN",")",";","if","(","GLSL_TEXTURE","(","iH",",","ce","+","u_texel_size","*","vec2","(","1",",","0",")",",","0.0",")",".","r",">","0.0",")","{","dC",".","yw","=","iJ","(","iH",",","ce",",","vec2","(","1",",","1",")",",","iN",")", ";","dC",".","y","+=","float","(","iN",".","y",">","0.9",")",";","}","else","dC",".","yw","=","vec2","(","0.0",",","0.0",")",";","if","(","dC",".","x","+","dC",".","y",">","2.0",")","{","vec4","iO","=","vec4","(","-","dC",".","x",",","-","dC",".","x",",","dC",".","y",",","dC",".","y",")","*","u_texel_size",".","xyxy","+","ce",".","xyxy",";","vec4","dx",";","dx",".","x","=","GLSL_TEXTURE","(","iH",",","iO",".","xy","+","u_texel_size","*","vec2","(","-","1",",","0",")",",","0.0",")",".","g",";","dx", ".","y","=","GLSL_TEXTURE","(","iH",",","iO",".","xy","+","u_texel_size","*","vec2","(","0",",","-","1",")",",","0.0",")",".","r",";","dx",".","zw","=","GLSL_TEXTURE","(","iH",",","iO",".","zw","+","u_texel_size","*","vec2","(","1",",","0",")",",","0.0",")",".","gr",";","vec2","iP","=","vec2","(","2.0",",","2.0",")","*","dx",".","xz","+","dx",".","yw",";","ir","(","bvec2","(","step","(","0.9",",","dC",".","zw",")",")",",","iP",",","vec2","(","0",",","0",")",")",";","iv","+=","iL","(","iK",",","dC", ".","xy",",","iP",",","iM",".","w",")",".","gr",";","}","return","iv",";","}"]}]}}]},{TYPE:"txt",TOKENS:["float","iT","(","sampler2D","iR",",","vec2","iF",",","float","fM",")","{","vec2","hK","=","SMAA_SEARCHTEX_SIZE","*","vec2","(","0.5",",","-","1.0",")",";","vec2","iS","=","SMAA_SEARCHTEX_SIZE","*","vec2","(","fM",",","1.0",")",";","hK","+=","vec2","(","-","1.0",",","1.0",")",";","iS","+=","vec2","(","0.5",",","-","0.5",")",";","hK","*=","1.0","/","SMAA_SEARCHTEX_PACKED_SIZE",";","iS","*=","1.0", "/","SMAA_SEARCHTEX_PACKED_SIZE",";","return","GLSL_TEXTURE","(","iR",",","hK","*","iF","+","iS",",","0.0",")",".","r",";","}","float","iU","(","sampler2D","iH",",","sampler2D","iR",",","vec2","ce",",","float","iN",")","{","vec2","iF","=","vec2","(","0.0",",","1.0",")",";","for","(","int","cq","=","0",";","cq","<","SMAA_MAX_SEARCH_STEPS",";","cq","++",")","{","if","(","ce",".","x",">","iN","&&","iF",".","g",">","0.8281","&&","iF",".","r","==","0.0",")","{","iF","=","GLSL_TEXTURE","(","iH",",","ce", ",","0.0",")",".","rg",";","ce","=","-","vec2","(","2.0",",","0.0",")","*","u_texel_size","+","ce",";","}","}","float","fM","=","-","(","255.0","/","127.0",")","*","iT","(","iR",",","iF",",","0.0",")","+","3.25",";","return","u_texel_size",".","x","*","fM","+","ce",".","x",";","}","float","iV","(","sampler2D","iH",",","sampler2D","iR",",","vec2","ce",",","float","iN",")","{","vec2","iF","=","vec2","(","0.0",",","1.0",")",";","for","(","int","cq","=","0",";","cq","<","SMAA_MAX_SEARCH_STEPS",";","cq", "++",")","{","if","(","ce",".","x","<","iN","&&","iF",".","g",">","0.8281","&&","iF",".","r","==","0.0",")","{","iF","=","GLSL_TEXTURE","(","iH",",","ce",",","0.0",")",".","rg",";","ce","=","vec2","(","2.0",",","0.0",")","*","u_texel_size","+","ce",";","}","}","float","fM","=","-","(","255.0","/","127.0",")","*","iT","(","iR",",","iF",",","0.5",")","+","3.25",";","return","-","u_texel_size",".","x","*","fM","+","ce",".","x",";","}","float","iW","(","sampler2D","iH",",","sampler2D","iR",",","vec2", "ce",",","float","iN",")","{","vec2","iF","=","vec2","(","1.0",",","0.0",")",";","for","(","int","cq","=","0",";","cq","<","SMAA_MAX_SEARCH_STEPS",";","cq","++",")","{","if","(","ce",".","y",">","iN","&&","iF",".","r",">","0.8281","&&","iF",".","g","==","0.0",")","{","iF","=","GLSL_TEXTURE","(","iH",",","ce",",","0.0",")",".","rg",";","ce","=","-","vec2","(","0.0",",","2.0",")","*","u_texel_size","+","ce",";","}","}","float","fM","=","-","(","255.0","/","127.0",")","*","iT","(","iR",",","iF",".", "gr",",","0.0",")","+","3.25",";","return","u_texel_size",".","y","*","fM","+","ce",".","y",";","}","float","iX","(","sampler2D","iH",",","sampler2D","iR",",","vec2","ce",",","float","iN",")","{","vec2","iF","=","vec2","(","1.0",",","0.0",")",";","for","(","int","cq","=","0",";","cq","<","SMAA_MAX_SEARCH_STEPS",";","cq","++",")","{","if","(","ce",".","y","<","iN","&&","iF",".","r",">","0.8281","&&","iF",".","g","==","0.0",")","{","iF","=","GLSL_TEXTURE","(","iH",",","ce",",","0.0",")",".","rg",";", "ce","=","vec2","(","0.0",",","2.0",")","*","u_texel_size","+","ce",";","}","}","float","fM","=","-","(","255.0","/","127.0",")","*","iT","(","iR",",","iF",".","gr",",","0.5",")","+","3.25",";","return","-","u_texel_size",".","y","*","fM","+","ce",".","y",";","}","vec2","i_","(","sampler2D","iK",",","vec2","aM",",","float","iY",",","float","iZ",",","float","fM",")","{","vec2","ce","=","vec2","(","SMAA_AREATEX_MAX_DISTANCE",",","SMAA_AREATEX_MAX_DISTANCE",")","*","is","(","4.0","*","vec2","(","iY", ",","iZ",")",")","+","aM",";","ce","=","SMAA_AREATEX_PIXEL_SIZE","*","ce","+","0.5","*","SMAA_AREATEX_PIXEL_SIZE",";","ce",".","y","=","SMAA_AREATEX_SUBTEX_SIZE","*","fM","+","ce",".","y",";","return","GLSL_TEXTURE","(","iK",",","ce",",","0.0",")",".","rg",";","}","void","jc","(","sampler2D","iH",",","inout","vec2","iv",",","vec4","ce",",","vec2","dC",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_DISABLE_CORNER_DETECTION",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["vec2","ja","=","step","(","dC",".","xy",",","dC",".","yx",")",";","vec2","jb","=","(","1.0","-","SMAA_CORNER_ROUNDING_NORM",")","*","ja",";","jb","/=","ja",".","x","+","ja",".","y",";","vec2","aL","=","vec2","(","1.0",",","1.0",")",";","aL",".","x","-=","jb",".","x","*","GLSL_TEXTURE","(","iH",",","ce",".","xy","+","u_texel_size","*","vec2","(","0",",","1",")",",","0.0",")",".","r",";","aL",".","x","-=","jb",".","y","*","GLSL_TEXTURE","(","iH",",","ce",".","zw","+","u_texel_size","*","vec2", "(","1",",","1",")",",","0.0",")",".","r",";","aL",".","y","-=","jb",".","x","*","GLSL_TEXTURE","(","iH",",","ce",".","xy","+","u_texel_size","*","vec2","(","0",",","-","2",")",",","0.0",")",".","r",";","aL",".","y","-=","jb",".","y","*","GLSL_TEXTURE","(","iH",",","ce",".","zw","+","u_texel_size","*","vec2","(","1",",","-","2",")",",","0.0",")",".","r",";","iv","*=","clamp","(","aL",",","0.0",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","void","jd","(","sampler2D","iH",",","inout","vec2","iv", ",","vec4","ce",",","vec2","dC",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_DISABLE_CORNER_DETECTION",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","ja","=","step","(","dC",".","xy",",","dC",".","yx",")",";","vec2","jb","=","(","1.0","-","SMAA_CORNER_ROUNDING_NORM",")","*","ja",";","jb","/=","ja",".","x","+","ja",".","y",";","vec2","aL","=","vec2","(","1.0",",","1.0",")",";","aL",".","x","-=","jb",".","x","*","GLSL_TEXTURE","(","iH",",", "ce",".","xy","+","u_texel_size","*","vec2","(","1",",","0",")",",","0.0",")",".","g",";","aL",".","x","-=","jb",".","y","*","GLSL_TEXTURE","(","iH",",","ce",".","zw","+","u_texel_size","*","vec2","(","1",",","1",")",",","0.0",")",".","g",";","aL",".","y","-=","jb",".","x","*","GLSL_TEXTURE","(","iH",",","ce",".","xy","+","u_texel_size","*","vec2","(","-","2",",","0",")",",","0.0",")",".","g",";","aL",".","y","-=","jb",".","y","*","GLSL_TEXTURE","(","iH",",","ce",".","zw","+","u_texel_size","*","vec2", "(","-","2",",","1",")",",","0.0",")",".","g",";","iv","*=","clamp","(","aL",",","0.0",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","jg","(","vec2","ce",",","vec2","je",",","sampler2D","iH",",","sampler2D","iK",",","sampler2D","iR",",","vec4","iM",")","{","vec4","iv","=","vec4","(","0.0",",","0.0",",","0.0",",","0.0",")", ";","vec2","iF","=","GLSL_TEXTURE","(","iH",",","ce",")",".","rg",";","if","(","iF",".","g",">","0.0",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_DISABLE_DIAG_DETECTION",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["iv",".","rg","=","iQ","(","iH",",","iK",",","ce",",","iF",",","iM",")",";","if","(","iv",".","r","==","-","iv",".","g",")","{"]}]}}]},{TYPE:"txt",TOKENS:["vec2","dC",";","vec3","iO",";","iO",".","x","=","iU","(","iH",",","iR",",","ia", ".","xy",",","ic",".","x",")",";","iO",".","y","=","ib",".","y",";","dC",".","x","=","iO",".","x",";","float","iY","=","GLSL_TEXTURE","(","iH",",","iO",".","xy",",","0.0",")",".","r",";","iO",".","z","=","iV","(","iH",",","iR",",","ia",".","zw",",","ic",".","y",")",";","dC",".","y","=","iO",".","z",";","dC","=","abs","(","is","(","dC","/","u_texel_size",".","xx","-","je",".","xx",")",")",";","vec2","jf","=","sqrt","(","dC",")",";","float","iZ","=","GLSL_TEXTURE","(","iH",",","iO",".","zy","+","u_texel_size", "*","vec2","(","1",",","0",")",",","0.0",")",".","r",";","iv",".","rg","=","i_","(","iK",",","jf",",","iY",",","iZ",",","iM",".","y",")",";","iO",".","y","=","ce",".","y",";","jc","(","iH",",","iv",".","rg",",","iO",".","xyzy",",","dC",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_DISABLE_DIAG_DETECTION",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["}","else","iF",".","r","=","0.0",";"]}]}}]},{TYPE:"txt",TOKENS:["}","if","(","iF",".","r",">","0.0", ")","{","vec2","dC",";","vec3","iO",";","iO",".","y","=","iW","(","iH",",","iR",",","ib",".","xy",",","ic",".","z",")",";","iO",".","x","=","ia",".","x",";","dC",".","x","=","iO",".","y",";","float","iY","=","GLSL_TEXTURE","(","iH",",","iO",".","xy",",","0.0",")",".","g",";","iO",".","z","=","iX","(","iH",",","iR",",","ib",".","zw",",","ic",".","w",")",";","dC",".","y","=","iO",".","z",";","dC","=","abs","(","is","(","dC","/","u_texel_size",".","yy","-","je",".","yy",")",")",";","vec2","jf","=","sqrt", "(","dC",")",";","float","iZ","=","GLSL_TEXTURE","(","iH",",","iO",".","xz","+","u_texel_size","*","vec2","(","0",",","1",")",",","0.0",")",".","g",";","iv",".","ba","=","i_","(","iK",",","jf",",","iY",",","iZ",",","iM",".","x",")",";","iO",".","x","=","ce",".","x",";","jd","(","iH",",","iv",".","ba",",","iO",".","xyxz",",","dC",")",";","}","return","iv",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec4","jp","(","vec2","ce",",","sampler2D","it",",","sampler2D","jh"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:[",","sampler2D","ji"]}]}}]},{TYPE:"txt",TOKENS:[")","{","vec4","a",";","a",".","x","=","GLSL_TEXTURE","(","jh",",","h_",".","xy",")",".","a",";","a",".","y","=","GLSL_TEXTURE","(","jh",",","h_",".","zw",")",".","g",";","a",".","wz","=","GLSL_TEXTURE","(","jh",",","ce",")",".","xz",";","if","(", "dot","(","a",",","vec4","(","1.0",",","1.0",",","1.0",",","1.0",")",")","<","1e-5",")","{","vec4","aQ","=","GLSL_TEXTURE","(","it",",","ce",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","jj","=","GLSL_TEXTURE","(","ji",",","A",")",";","vec2","dp","=","2.0","*","jk","(","jj",")","-","1.0",";","aQ",".","a","=","sqrt","(","2.0","*","length","(","dp",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","aQ",";","}", "else","{","bool","co","=","max","(","a",".","x",",","a",".","z",")",">","max","(","a",".","y",",","a",".","w",")",";","vec4","jl","=","vec4","(","0.0",",","a",".","y",",","0.0",",","a",".","w",")",";","vec2","jm","=","a",".","yw",";","ir","(","bvec4","(","co",",","co",",","co",",","co",")",",","jl",",","vec4","(","a",".","x",",","0.0",",","a",".","z",",","0.0",")",")",";","ir","(","bvec2","(","co",",","co",")",",","jm",",","a",".","xz",")",";","jm","/=","dot","(","jm",",","vec2","(","1.0",",","1.0", ")",")",";","vec4","jn","=","jl","*","vec4","(","u_texel_size",",","-","u_texel_size",")","+","ce",".","xyxy",";","vec4","aQ","=","jm",".","x","*","GLSL_TEXTURE","(","it",",","jn",".","xy",",","0.0",")",";","aQ","+=","jm",".","y","*","GLSL_TEXTURE","(","it",",","jn",".","zw",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","jj","=","GLSL_TEXTURE","(","ji",",","jn",".","xy",")",";","vec2","jo","=","2.0","*","jk", "(","jj",")","-","1.0",";","vec2","dp","=","jm",".","x","*","jo",";","jj","=","GLSL_TEXTURE","(","ji",",","jn",".","zw",")",";","jo","=","2.0","*","jk","(","jj",")","-","1.0",";","dp","+=","jm",".","y","*","jo",";","aQ",".","a","=","sqrt","(","2.0","*","length","(","dp",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","aQ",";","}","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_RESOLVE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","ju","(", "vec2","ce",",","sampler2D","jq",",","sampler2D","jr"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:[",","sampler2D","ji"]}]}}]},{TYPE:"txt",TOKENS:[")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","jj","=","GLSL_TEXTURE","(","ji",",","A",")",";","vec2","dp",";","dp","=","2.0","*","jk","(","jj",")","-","1.0",";","vec4","js","=","GLSL_TEXTURE","(","jq",",","ce", ")",";","vec4","jt","=","GLSL_TEXTURE","(","jr",",","ce","-","dp",")",";","float","cX","=","abs","(","js",".","a","*","js",".","a","-","jt",".","a","*","jt",".","a",")","/","2.0",";","float","cu","=","0.5","*","clamp","(","1.0","-","sqrt","(","cX",")","*","SMAA_REPROJECTION_WEIGHT_SCALE",",","0.0",",","1.0",")",";","vec4","aQ","=","mix","(","js",",","jt",",","cu",")",";","aQ",".","a","=","1.0",";","return","aQ",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","js","=","GLSL_TEXTURE", "(","jq",",","ce",")",";","vec4","jt","=","GLSL_TEXTURE","(","jr",",","ce",")",";","return","mix","(","js",",","jt",",","0.5",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","aQ","=","vec4","(","iE","(","A",",","u_color"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PREDICATION"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:[",","u_predication_tex"]}]}}]},{TYPE:"txt",TOKENS:[")",",","0.0",",","0.0",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","aQ","=","jg","(","A",",","id",",","u_color",",","u_area_tex",",","u_search_tex",",","u_subsample_indices",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec4","aQ","=","jp","(","A",",","u_color",",","u_blend"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:[",","u_velocity_tex"]}]}}]},{TYPE:"txt",TOKENS:[")",";"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_RESOLVE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","aQ","=","vec4","(","ju","(","A",",","u_color",",","u_color_prev"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_REPROJECTION"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:[",","u_velocity_tex"]}]}}]},{TYPE:"txt",TOKENS:[")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","aQ","=","GLSL_TEXTURE","(","u_color",",","A",")",";"]}]}}]},{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","aQ",";","}"]}]},exports["postprocessing/smaa.glslv"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"SMAA_PASS",TOKENS:["SMAA_RESOLVE"]},{TYPE:"var", NAME:"AA_METHOD",TOKENS:["AA_METHOD_SMAA_LOW"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["uniform","PRECISION","vec2","u_texel_size",";","GLSL_IN","vec2","a_position",";","GLSL_OUT","vec2","A",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","h_",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec4","ia",";","GLSL_OUT","vec4", "ib",";","GLSL_OUT","vec4","ic",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT","vec2","id",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_LOW",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS",TOKENS:["4"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_MEDIUM",{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS",TOKENS:["8"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_HIGH",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS",TOKENS:["16"]}]}},{TYPE:"elif",EXPRESSION:["AA_METHOD","AA_METHOD_SMAA_ULTRA",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS",TOKENS:["32"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SMAA_MAX_SEARCH_STEPS", GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SMAA_MAX_SEARCH_STEPS",TOKENS:["16"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","jv","(","vec2","ce",")","{","ia","=","u_texel_size",".","xyxy","*","vec4","(","-","1.0",",","0.0",",","0.0",",","-","1.0",")","+","ce",".","xyxy",";","ib","=","u_texel_size",".","xyxy","*","vec4","(","1.0",",","0.0",",","0.0",",","1.0",")","+","ce",".", "xyxy",";","ic","=","u_texel_size",".","xyxy","*","vec4","(","-","2.0",",","0.0",",","0.0",",","-","2.0",")","+","ce",".","xyxy",";","}"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","jw","(","vec2","ce",",","out","vec2","je",")","{","je","=","ce","/","u_texel_size",";","ia","=","u_texel_size",".","xyxy","*","vec4","(","-","0.25",",","-","0.125",",","1.25",",","-","0.125",")","+","ce", ".","xyxy",";","ib","=","u_texel_size",".","xyxy","*","vec4","(","-","0.125",",","-","0.25",",","-","0.125",",","1.25",")","+","ce",".","xyxy",";","ic","=","u_texel_size",".","xxyy","*","vec4","(","-","2.0",",","2.0",",","-","2.0",",","2.0",")","*","float","(","SMAA_MAX_SEARCH_STEPS",")","+","vec4","(","ia",".","xz",",","ib",".","yw",")",";","}"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void", "jx","(","vec2","ce",")","{","h_","=","u_texel_size",".","xyxy","*","vec4","(","1.0",",","0.0",",","0.0",",","1.0",")","+","ce",".","xyxy",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","A","=","2.0","*","a_position",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SMAA_PASS","SMAA_EDGE_DETECTION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jv","(","A",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_BLENDING_WEIGHT_CALCULATION",{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jw","(","A",",","id",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SMAA_PASS","SMAA_NEIGHBORHOOD_BLENDING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jx","(","A",")",";"]}]}}]},{TYPE:"txt",TOKENS:["gl_Position","=","vec4","(","4.0","*","(","a_position",".","xy","-","0.25",")",",","0.0",",","1.0",")",";","}"]}]},exports["postprocessing/ssao.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var", NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"SSAO_WHITE",TOKENS:["0"]},{TYPE:"var",NAME:"SSAO_QUALITY",TOKENS:["SSAO_QUALITY_8"]},{TYPE:"var",NAME:"SSAO_HEMISPHERE",TOKENS:["0"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"depth_fetch.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_color",";","uniform","sampler2D","u_depth",";","uniform","sampler2D","u_ssao_special_tex", ";","uniform","vec2","u_camera_range",";","uniform","vec2","u_texel_size",";","uniform","float","u_ssao_radius_increase",";","uniform","float","u_ssao_influence",";","uniform","float","u_ssao_dist_factor",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","float","jy","(","in","vec2","f_",")","{","return","gC","(","u_depth",",","f_",",","u_camera_range",")",";","}","void","main","(",")","{","vec3","gG","=","GLSL_TEXTURE","(","u_color",",","A",")",".","rgb",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["SSAO_WHITE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","gG",",","1.0",")",";","return",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","jz","=","normalize","(","2.0","*","GLSL_TEXTURE","(","u_ssao_special_tex",",","A","*","0.25","/","u_texel_size",")",".","rgb","-","1.0",")",";","float","et","=","jy","(","A",")",";","float","jA","=","et","*","(","u_camera_range",".","y","-","u_camera_range",".","x",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SSAO_QUALITY","SSAO_QUALITY_8",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","float","jB","=","8.0",";","const","int","jC","=","1",";"]}]}},{TYPE:"elif",EXPRESSION:["SSAO_QUALITY","SSAO_QUALITY_16",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","float","jB","=","16.0",";","const","int","jC","=","2",";"]}]}},{TYPE:"elif",EXPRESSION:["SSAO_QUALITY","SSAO_QUALITY_24",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["const","float","jB","=","24.0",";","const","int","jC","=","3",";"]}]}},{TYPE:"elif",EXPRESSION:["SSAO_QUALITY","SSAO_QUALITY_32",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","float","jB","=","32.0",";","const","int","jC","=","4",";"]}]}}]},{TYPE:"txt",TOKENS:["float","jD","=","u_ssao_radius_increase","*","0.001",";","const","float","jE","=","1.0","+","2.4","/","jB",";","float","jF","=","0.0",";","for","(","int","cq","=","0",";","cq", "<","jC",";","cq","++",")","for","(","int","x","=","-","1",";","x","<=","1",";","x","+=","2",")","for","(","int","y","=","-","1",";","y","<=","1",";","y","+=","2",")","for","(","int","z","=","-","1",";","z","<=","1",";","z","+=","2",")","{","vec3","jG","=","reflect","(","normalize","(","vec3","(","x",",","y",",","z",")",")",",","jz",")","*","(","jD","*=","jE",")",";","vec3","jH","=","vec3","(","A",",","jA",")",";","jH","+=","vec3","(","jG",".","xy",",","jG",".","z","*","jA","*","2.0",")",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["SSAO_HEMISPHERE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jH",".","z","-=","1.4","*","(","jH",".","z","-","jA",")","*","step","(","jA",",","jH",".","z",")",";"]}]}}]},{TYPE:"txt",TOKENS:["float","jI","=","jy","(","jH",".","xy",")","*","(","u_camera_range",".","y","-","u_camera_range",".","x",")",";","float","jJ","=","clamp","(","(","jA","-","jI",")","/","jI",",","0.0",",","1.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_HEMISPHERE"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["jF","+=","mix","(","1.0",",","jJ",",","step","(","jI",",","jH",".","z",")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jF","+=","mix","(","step","(","jH",".","z",",","jI",")",",","0.5",",","jJ",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","jF","=","jF","/","jB",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_HEMISPHERE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jF","=","clamp","(","jF","*","jF","+","0.6","*","jF",",","0.0",",","1.0",")", ";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jF","=","clamp","(","jF","*","jF","+","jF",",","0.0",",","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["float","jK","=","u_ssao_influence","*","(","1.0","-","u_ssao_dist_factor","*","et",")",";","jF","=","mix","(","1.0",",","jF",",","jK",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","gG",",","jF",")",";","}"]}]},exports["postprocessing/ssao_blur.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"var",NAME:"PRECISION", TOKENS:["highp"]},{TYPE:"var",NAME:"SSAO_BLUR_DEPTH",TOKENS:["0"]},{TYPE:"txt",TOKENS:["precision","PRECISION","sampler2D",";"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_BLUR_DEPTH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"depth_fetch.glslf"}]}}]},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_ssao_mask",";","uniform","vec2","u_texel_size",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_BLUR_DEPTH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","sampler2D","u_depth",";","uniform","vec2","u_camera_range",";","uniform","float","u_ssao_blur_discard_value",";","float","jy","(","in","vec2","f_",")","{","return","gC","(","u_depth",",","f_",",","u_camera_range",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{","float","jL","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_BLUR_DEPTH"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["float","jM","=","jy","(","A",")",";","float","cu","=","0.0",";","float","jN","=","u_ssao_blur_discard_value","*","100.0",";"]}]}}]},{TYPE:"txt",TOKENS:["vec2","jO","=","vec2","(","-","2.0",")",";","for","(","int","cq","=","0",";","cq","<","4",";","++","cq",")","{","for","(","int","jP","=","0",";","jP","<","4",";","++","jP",")","{","vec2","fM","=","(","jO","+","vec2","(","float","(","cq",")",",","float","(","jP",")",")",")","*","u_texel_size",";","float","jQ","=","GLSL_TEXTURE", "(","u_ssao_mask",",","A","+","fM",")",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SSAO_BLUR_DEPTH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","jR","=","jy","(","A","+","fM",")",";","float","jS","=","1.0","-","clamp","(","abs","(","jR","-","jM",")","*","jN",",","0.0",",","1.0",")",";","jL","+=","jQ","*","jS",";","cu","+=","jS",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jL","+=","jQ",";"]}]}}]},{TYPE:"txt",TOKENS:["}","}"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SSAO_BLUR_DEPTH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","GLSL_TEXTURE","(","u_ssao_mask",",","A",")",".","rgb",",","jL","/","cu",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_OUT_FRAG_COLOR","=","vec4","(","GLSL_TEXTURE","(","u_ssao_mask",",","A",")",".","rgb",",","jL","/","16.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["postprocessing/stereo.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]}, {TYPE:"var",NAME:"ANAGLYPH",TOKENS:["0"]},{TYPE:"var",NAME:"SIDEBYSIDE",TOKENS:["0"]},{TYPE:"var",NAME:"EPSILON",TOKENS:["0.000001"]},{TYPE:"var",NAME:"DISTOR_SCALE",TOKENS:["0.8"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D","u_sampler_left",";","uniform","sampler2D","u_sampler_right",";","uniform","vec2","u_texel_size",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ANAGLYPH",{TYPE:"logic_negative_expr",PLACES:1},"SIDEBYSIDE",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["uniform","int","u_enable_hmd_stereo",";","uniform","vec4","u_distortion_params",";","uniform","vec4","u_chromatic_aberration_coefs",";","void","ka","(","vec2","ce",",","vec2","ao",",","float","di",",","sampler2D","jT",")","{","vec2","bD","=","(","ce","-","ao",")","*","4.0", "*","u_texel_size","[","0","]","/","u_texel_size","[","1","]","/","di",";","float","jU","=","bD",".","x","*","bD",".","x","+","bD",".","y","*","bD",".","y",";","vec2","jV","=","bD","*","(","1.0","+","u_distortion_params","[","0","]","*","jU","+","u_distortion_params","[","1","]","*","jU","*","jU",")",";","vec2","jW","=","jV","*","0.5","/","(","1.0","+","u_distortion_params","[","0","]","+","u_distortion_params","[","1","]",")",";","if","(","length","(","u_chromatic_aberration_coefs",")",">","0.0", ")","{","vec2","jX","=","jW","*","(","1.0","+","u_chromatic_aberration_coefs","[","0","]","+","jU","*","u_chromatic_aberration_coefs","[","1","]",")","+","0.5",";","vec2","jY","=","jW","+","0.5",";","vec2","jZ","=","jW","*","(","1.0","+","u_chromatic_aberration_coefs","[","2","]","+","jU","*","u_chromatic_aberration_coefs","[","3","]",")","+","0.5",";","if","(","clamp","(","jZ",",","0.0",",","1.0",")","!=","jZ",")","{","GLSL_OUT_FRAG_COLOR","=","vec4","(","0.0",")",";","}","else","{","vec4","j_", "=","GLSL_TEXTURE","(","jT",",","jY",")",";","GLSL_OUT_FRAG_COLOR","[","0","]","=","GLSL_TEXTURE","(","jT",",","jX",")",".","x",";","GLSL_OUT_FRAG_COLOR","[","1","]","=","j_",".","y",";","GLSL_OUT_FRAG_COLOR","[","2","]","=","GLSL_TEXTURE","(","jT",",","jZ",")",".","z",";","GLSL_OUT_FRAG_COLOR","[","3","]","=","j_",".","w",";","}","}","else","{","jW","+=","0.5",";","if","(","clamp","(","jW",",","0.0",",","1.0",")","!=","jW",")","{","GLSL_OUT_FRAG_COLOR","=","vec4","(","0.0",")",";","}","else","{", "GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","jT",",","jW",")",";","}","}","}"]}]}}]},{TYPE:"txt",TOKENS:["void","main","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["ANAGLYPH"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","kb","=","GLSL_TEXTURE","(","u_sampler_left",",","A",")",";","vec4","kc","=","GLSL_TEXTURE","(","u_sampler_right",",","A",")",";","vec3","kd","=","vec3","(","kb","[","0","]",",","kb","[","1","]",",","kb","[","2","]",")",";","bG","(","kd",")",";","vec3","ke","=", "vec3","(","kc","[","0","]",",","kc","[","1","]",",","kc","[","2","]",")",";","bG","(","ke",")",";","mat3","kf","=","mat3","(","0.437",",","-","0.062",",","-","0.048",",","0.449",",","-","0.062",",","-","0.050",",","0.164",",","-","0.024",",","-","0.017",")",";","mat3","bz","=","mat3","(","-","0.011",",","0.377",",","-","0.026",",","-","0.032",",","0.761",",","-","0.093",",","-","0.007",",","0.009",",","1.234",")",";","vec3","aQ","=","clamp","(","kf","*","kd",",","0.0",",","1.0",")","+","clamp","(", "bz","*","ke",",","0.0",",","1.0",")",";","aW","(","aQ",")",";","GLSL_OUT_FRAG_COLOR","=","vec4","(","aQ",",","kb","[","3","]","+","kc","[","3","]",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SIDEBYSIDE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","A","[","0","]","<","0.5",")","{","vec2","ce","=","vec2","(","2.0","*","A","[","0","]",",","A","[","1","]",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_sampler_left",",","ce",")",";","}","else","{","vec2","ce","=","vec2","(","2.0","*","(", "A","[","0","]","-","0.5",")",",","A","[","1","]",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_sampler_right",",","ce",")",";","}"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","u_enable_hmd_stereo","!=","0",")","{","if","(","abs","(","u_distortion_params","[","0","]",")",">","EPSILON","||","abs","(","u_distortion_params","[","1","]",")",">","EPSILON",")","if","(","A","[","0","]","<","0.5",")","{","vec2","ce","=","vec2","(","2.0","*","A","[","0","]",",","A","[", "1","]",")",";","vec2","ao","=","vec2","(","0.5","-","(","u_distortion_params","[","3","]","-","0.5",")","/","2.0",",","u_distortion_params","[","2","]",")",";","float","di","=","2.0","*","u_distortion_params","[","3","]","*","DISTOR_SCALE",";","ka","(","ce",",","ao",",","di",",","u_sampler_left",")",";","}","else","{","vec2","ce","=","vec2","(","2.0","*","(","A","[","0","]","-","0.5",")",",","A","[","1","]",")",";","vec2","ao","=","vec2","(","0.5","+","(","u_distortion_params","[","3","]","-","0.5", ")","/","2.0",",","u_distortion_params","[","2","]",")",";","float","di","=","2.0","*","u_distortion_params","[","3","]","*","DISTOR_SCALE",";","ka","(","ce",",","ao",",","di",",","u_sampler_right",")",";","}","else","if","(","A","[","0","]","<","0.5",")","{","vec2","ce","=","vec2","(","2.0","*","A","[","0","]",",","A","[","1","]",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_sampler_left",",","ce",")",";","}","else","{","vec2","ce","=","vec2","(","2.0","*","(","A","[","0","]","-","0.5", ")",",","A","[","1","]",")",";","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_sampler_right",",","ce",")",";","}","}","else","{","GLSL_OUT_FRAG_COLOR","=","GLSL_TEXTURE","(","u_sampler_left",",","A",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]},exports["postprocessing/velocity.glslf"]={TYPE:"grp",PARTS:[{TYPE:"version",TOKENS:["GLSL_VERSION"]},{TYPE:"include",FILE:"precision_statement.glslf"},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"pack.glslf"},{TYPE:"txt",TOKENS:["uniform","sampler2D", "u_depth",";","uniform","mat4","u_view_proj_inverse",";","uniform","mat4","u_view_proj_prev",";","GLSL_IN","vec2","A",";","GLSL_OUT","vec4","GLSL_OUT_FRAG_COLOR",";","void","main","(",")","{","float","et","=","GLSL_TEXTURE","(","u_depth",",","A",")",".","x",";","vec4","kg","=","vec4","(","A","*","2.0","-","1.0",",","2.0","*","et","-","1.0",",","1.0",")",";","vec4","cD","=","u_view_proj_inverse","*","kg",";","vec4","kh","=","cD","/","cD",".","w",";","vec4","ki","=","u_view_proj_prev","*","kh",";", "ki","/=","ki",".","w",";","vec2","dp","=","(","kg",".","xy","-","ki",".","xy",")","/","4.0","+","0.5",";","dp","=","clamp","(","dp",",","0.0",",","1.0",")",";","GLSL_OUT_FRAG_COLOR","=","eu","(","dp",")",";","}"]}]},exports["include/blending.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"BLENDING_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"BLENDING_GLSLF",TOKENS:[""]},{TYPE:"txt",TOKENS:["vec3","kj","(","vec3","rgb",")","{","vec4","hM","=","vec4","(","_0_0",",","-", "_1_0","/","3.0",",","2.0","/","3.0",",","-","_1_0",")",";","vec4","p","=","mix","(","vec4","(","rgb",".","bg",",","hM",".","wz",")",",","vec4","(","rgb",".","gb",",","hM",".","xy",")",",","step","(","rgb",".","b",",","rgb",".","g",")",")",";","vec4","q","=","mix","(","vec4","(","p",".","xyw",",","rgb",".","r",")",",","vec4","(","rgb",".","r",",","p",".","yzx",")",",","step","(","p",".","x",",","rgb",".","r",")",")",";","float","dC","=","q",".","x","-","min","(","q",".","w",",","q",".","y",")",";", "float","iF","=","1.0e-10",";","return","vec3","(","abs","(","q",".","z","+","(","q",".","w","-","q",".","y",")","/","(","6.0","*","dC","+","iF",")",")",",","dC","/","(","q",".","x","+","iF",")",",","q",".","x",")",";","}","vec3","kl","(","vec3","kk",")","{","vec4","hM","=","vec4","(","_1_0",",","2.0","/","3.0",",","_1_0","/","3.0",",","3.0",")",";","vec3","p","=","abs","(","fract","(","vec3","(","kk",".","r",",","kk",".","r",",","kk",".","r",")","+","hM",".","xyz",")","*","6.0","-","hM",".","www", ")",";","return","kk",".","b","*","mix","(","hM",".","xxx",",","clamp","(","p","-","hM",".","xxx",",","_0_0",",","_1_0",")",",","kk",".","g",")",";","}","vec3","kp","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","mix","(","km",",","kn",",","ko",")",";","}","vec3","kq","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","ko","*","km","+","kn",";","}","vec3","kr","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","kn","-","ko","*","km",";","}","vec3", "kt","(","vec3","km",",","vec3","kn",",","float","ko",")","{","float","ks","=","_1_0","-","ko",";","return","(","vec3","(","ks",")","+","ko","*","km",")","*","kn",";","}","vec3","ku","(","vec3","km",",","vec3","kn",",","float","ko",")","{","vec3","ks","=","vec3","(","_1_0","-","ko",")",";","return","vec3","(","_1_0",")","-","(","ks","+","ko","*","(","vec3","(","_1_0",")","-","km",")",")","*","(","vec3","(","_1_0",")","-","kn",")",";","}","vec3","kv","(","vec3","km",",","vec3","kn",",","float","ko", ")","{","vec3","ks","=","vec3","(","_1_0","-","ko",")",";","return","mix","(","kn","*","(","ks","+","2.0","*","ko","*","km",")",",","vec3","(","_1_0",")","-","(","ks","+","2.0","*","ko","*","(","vec3","(","_1_0",")","-","km",")",")","*","(","vec3","(","_1_0",")","-","kn",")",",","step","(","0.5",",","kn",")",")",";","}","vec3","kw","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","mix","(","kn",",","abs","(","km","-","kn",")",",","ko",")",";","}","vec3","kx","(","vec3","km",",","vec3", "kn",",","float","ko",")","{","return","mix","(","kn",",","kn","/","(","km","+","step","(","km",",","vec3","(","_0_0",")",")",")",",","ko",")",";","}","vec3","ky","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","mix","(","kn",",","min","(","km",",","kn",")",",","ko",")",";","}","vec3","kz","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","max","(","ko","*","km",",","kn",")",";","}","vec3","kD","(","vec3","km",",","vec3","kn",",","float","ko",")","{","vec3","kA", "=","kj","(","kn",")",";","if","(","kA",".","y","!=","_0_0",")","{","vec3","kB","=","kj","(","km",")",";","vec3","kC","=","kl","(","vec3","(","kA",".","x",",","kB",".","yz",")",")",";","return","mix","(","km",",","kC",",","ko",")",";","}","return","km",";","}","vec3","kE","(","vec3","km",",","vec3","kn",",","float","ko",")","{","vec3","kA","=","kj","(","km",")",";","if","(","kA",".","y","!=","_0_0",")","{","vec3","kB","=","kj","(","kn",")",";","return","kl","(","vec3","(","kA",".","x",",","mix","(", "kA",".","y",",","kB",".","y",",","ko",")",",","kA",".","z",")",")",";","}","return","km",";","}","vec3","kF","(","vec3","km",",","vec3","kn",",","float","ko",")","{","vec3","kA","=","kj","(","km",")",";","vec3","kB","=","kj","(","kn",")",";","return","kl","(","vec3","(","kA",".","xy",",","mix","(","kA",".","z",",","kB",".","z",",","ko",")",")",")",";","}","vec3","kG","(","vec3","km",",","vec3","kn",",","float","ko",")","{","vec3","kA","=","kj","(","kn",")",";","if","(","kA",".","y","!=","_0_0",")", "{","vec3","kB","=","kj","(","km",")",";","vec3","kC","=","kl","(","vec3","(","kA",".","xy",",","kB",".","z",")",")",";","return","mix","(","km",",","kC",",","ko",")",";","}","return","km",";","}","vec3","kI","(","vec3","km",",","vec3","kn",",","float","ko",")","{","vec3","kH","=","vec3","(","_1_0",")","-","(","vec3","(","_1_0",")","-","kn",")","*","(","vec3","(","_1_0",")","-","km",")",";","return","mix","(","km",",","(","(","vec3","(","_1_0",")","-","km",")","*","kn","*","km",")","+","km","*","kH", ",","ko",")",";","}","vec3","kJ","(","vec3","km",",","vec3","kn",",","float","ko",")","{","return","km","+","ko","*","(","2.0","*","kn","-","_1_0",")",";","}","float","kN","(","float","kK",",","float","kL",",","float","ko",",","float","kM",")","{","float","ks","=","_1_0","-","kM",";","return","(","ks","+","ko","*","kK",")","*","kL",";","}","float","kO","(","float","kK",",","float","kL",",","float","ko",",","float","kM",")","{","float","ks","=","_1_0","-","kM",";","return","_1_0","-","(","ks","+", "ko","*","(","_1_0","-","kK",")",")","*","(","_1_0","-","kL",")",";","}","float","kP","(","float","kK",",","float","kL",",","float","ko",",","float","kM",")","{","float","ks","=","_1_0","-","kM",";","return","mix","(","kL","*","(","ks","+","2.0","*","ko","*","kK",")",",","_1_0","-","(","ks","+","2.0","*","ko","*","(","_1_0","-","kK",")",")","*","(","_1_0","-","kL",")",",","step","(","0.5",",","kL",")",")",";","}"]}]}}]}]},exports["include/caustics.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef", NAME:"CAUSTICS_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"CAUSTICS_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"SUN_NUM",TOKENS:["0"]},{TYPE:"var",NAME:"CAUST_SCALE",TOKENS:["0.25"]},{TYPE:"var",NAME:"CAUST_SPEED",TOKENS:["vec2","(","0.0",")"]},{TYPE:"var",NAME:"CAUST_BRIGHT",TOKENS:["0.5"]},{TYPE:"include",FILE:"procedural.glslf"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"define",NAME:"CAUSTICS_VIEW_DISTANCE",TOKENS:["100.0"]},{TYPE:"txt",TOKENS:["void","bV","(","inout","vec3","aQ",",","float", "kQ",",","float","fy",",","vec4","bU",",","vec3","U",",","vec3","kR",",","vec3","kS",",","vec4","kT",",","vec3","bt",",","float","bS",")","{","if","(","bS",">","CAUSTICS_VIEW_DISTANCE",")","return",";","vec3","kU","=","bt","+","U",";","kU",".","xz","=","10.0","*","sin","(","0.1","*","kU",".","xz",")",";","vec3","kW","=","T","(","kV","(","kT",")",",","kU",")",";","vec2","ce","=","kW",".","xz",";","vec3","kX","=","kR",";","float","kY","=","max","(","dot","(","U",",","kX",")",",","0.0",")",";","float", "kZ","=","0.025",";","vec2","k_","=","CAUST_SPEED","*","fy",";","ce",".","s","+=","0.25","*","sin","(","dot","(","bt","+","fy",",","vec3","(","1.0",")",")",")",";","ce",".","t","+=","0.35","*","(","-","sin","(","dot","(","bt","-","fy",",","vec3","(","-","0.7",")",")",")",")",";","ce",".","st","+=","0.15","*","cos","(","4.0","*","kQ","-","k_",".","x",")","+","1.5","*","sin","(","kQ","-","0.3","*","k_",".","y",")",";","float","hK","=","CAUST_SCALE","*","(","1.0","+","max","(","0.1","*","kQ",",","0.0", ")",")",";","vec3","lb","=","la","(","(","ce","/","hK",")",",","kZ",")",";","lb","*=","CAUST_BRIGHT",";","lb","*=","lb",";","float","lc","=","min","(","0.25","*","kQ",",","-","kQ",")","+","1.0",";","lc","=","max","(","lc",",","0.0",")",";","float","ld","=","bU","[","SUN_NUM","]","*","kY",";","float","le","=","max","(","sign","(","kQ",")",",","0.0",")",";","ld","=","ld","+","max","(","0.5","*","sign","(","-","U",".","y",")","*","le",",","0.0",")",";","ld","=","min","(","ld",",","1.0",")",";","aQ", "+=","kS","*","lb","*","lc","*","ld",";","}"]}]}}]}]},exports["include/color_util.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"COLOR_UTIL_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"COLOR_UTIL_GLSLF",TOKENS:[""]},{TYPE:"define",NAME:"PREMULTIPLY_ALPHA",TOKENS:["1"]},{TYPE:"var",NAME:"SRGB",TOKENS:["SRGB_NONE"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["void","bG","(","inout","float","aQ",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SRGB","SRGB_SIMPLE", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","pow","(","aQ",",","2.2",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SRGB","SRGB_PROPER",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","aQ","<","0.04045",")","aQ","=","aQ","/","12.92",";","else","aQ","=","pow","(","aQ","*","(","1.0","/","1.055",")","+","0.0521327",",","2.4",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","void","aW","(","inout","float","aQ",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SRGB","SRGB_SIMPLE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","pow","(","aQ",",","1.0","/","2.2",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SRGB","SRGB_PROPER",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","aQ","<","0.0031308",")","aQ","=","aQ","*","12.92",";","else","aQ","=","1.055","*","pow","(","aQ",",","1.0","/","2.4",")","-","0.055",";"]}]}}]},{TYPE:"txt",TOKENS:["}","void","bG","(","inout","vec3","aQ",")", "{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SRGB","SRGB_SIMPLE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","pow","(","aQ",",","vec3","(","2.2",")",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SRGB","SRGB_PROPER",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["bG","(","aQ",".","r",")",";","bG","(","aQ",".","g",")",";","bG","(","aQ",".","b",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","void","aW","(","inout","vec3","aQ",")","{"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["SRGB","SRGB_SIMPLE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","pow","(","aQ",",","vec3","(","1.0","/","2.2",")",")",";"]}]}},{TYPE:"elif",EXPRESSION:["SRGB","SRGB_PROPER",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aW","(","aQ",".","r",")",";","aW","(","aQ",".","g",")",";","aW","(","aQ",".","b",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","void","aX","(","inout","vec3","aQ",",","in","float","L",")", "{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PREMULTIPLY_ALPHA"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aQ","=","aQ","*","L",";"]}]}}]},{TYPE:"txt",TOKENS:["}","float","gj","(","vec4","aQ",")","{","vec3","lf","=","vec3","(","0.299",",","0.587",",","0.114",")",";","float","lg","=","dot","(","aQ",".","rgb",",","lf",")",";","return","lg",";","}"]}]}}]}]},exports["include/coverage.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"COVERAGE_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"COVERAGE_GLSLF",TOKENS:[""]},{TYPE:"include",FILE:"procedural.glslf"},{TYPE:"txt",TOKENS:["const","float","lh","=","1000.0",";","bool","C","(","float","L",",","float","li",")","{","if","(","li","<","0.0",")","L","=","1.0","-","L",";","float","lj","=","floor","(","L","*","lh",")",";","float","ll","=","floor","(","lk","(","gl_FragCoord",".","xy",")","*","lh",")",";","if","(","li",">","0.0",")","return","ll","<","lj",";","else","return","ll",">=","lj",";","}"]}]}}]}]},exports["include/depth_fetch.glslf"]= {TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"DEPTH_FETCH_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"DEPTH_FETCH_GLSLF",TOKENS:[""]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_CASTING",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","es","(","in","float","lm",",","in","vec2", "ln",")","{","float","dG","=","ln",".","x",";","float","lo","=","ln",".","y",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CAMERA_TYPE","CAM_TYPE_PERSP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","lo","*","(","1.0","-","dG","/","lm",")","/","(","lo","-","dG",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","(","lm","-","dG",")","/","(","lo","-","dG",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["float","gC","(","in","sampler2D","lp",",","in","vec2","f_",",","in","vec2","ln",")","{","float","et","=","GLSL_TEXTURE","(","lp",",","f_",")",".","r",";","float","dG","=","ln",".","x",";","float","lo","=","ln",".","y",";","float","lm","=","2.0","*","dG","/","(","dG","+","lo","-","(","2.0","*","et","-","1.0",")","*","(","lo","-","dG",")",")",";","return","lm",";","}"]}]}}]}]}}]}]},exports["include/dynamic_grass.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef", NAME:"DYNAMIC_GRASS_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"DYNAMIC_GRASS_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"DYNAMIC_GRASS",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"var",NAME:"GRASS_TEXTURE_SIZE",TOKENS:["1024.0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DYNAMIC_GRASS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"math.glslv"},{TYPE:"include",FILE:"to_world.glslv"},{TYPE:"txt",TOKENS:["vec2","lt","(","vec3", "O",",","float","lq",",","vec2","lr",")","{","vec2","ls","=","vec2","(","(","O",".","x","-","lr",".","x",")","/","lq",",","(","O",".","y","-","lr",".","y",")","/","lq",")",";","return","fract","(","ls",")",";","}","vec2","lu","(","vec2","gX",",","float","lq",",","vec2","lr",")","{","return","vec2","(","gX",".","x","*","lq",",","gX",".","y","*","lq",")","+","lr",";","}","au","lv","(",")","{","return","au","(","vec3","(","-","10000.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3", "(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",",","vec3","(","0.0",")",")",";","}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL3"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","lF","(","sampler2D","lw",",","vec2","lx",")","{","float","ly","=","1.0","/","GRASS_TEXTURE_SIZE",";","vec4","lz","=","GLSL_TEXTURE","(","lw",",","lx",")",";","vec4","lA","=","GLSL_TEXTURE","(","lw",",","lx","+","vec2","(","ly",",","0.0",")",")",";","vec4","lB","=","GLSL_TEXTURE","(","lw",",", "lx","+","vec2","(","0.0",",","ly",")",")",";","vec4","lC","=","GLSL_TEXTURE","(","lw",",","lx","+","vec2","(","ly",",","ly",")",")",";","float","a","=","fract","(","lx",".","x","*","GRASS_TEXTURE_SIZE",")",";","vec4","lD","=","mix","(","lz",",","lA",",","a",")",";","vec4","lE","=","mix","(","lB",",","lC",",","a",")",";","float","b","=","fract","(","lx",".","y","*","GRASS_TEXTURE_SIZE",")",";","return","mix","(","lD",",","lE",",","b",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["au","be","(","vec3","O", ",","vec3","V",",","vec3","lG",",","vec3","W",",","vec3","U",",","vec3","ao",",","PRECISION","sampler2D","lH",",","sampler2D","lI",",","vec3","lJ",",","float","lK",",","vec3","lL",",","vec4","lM",",","mat3","N",",","mat3","Z",")","{","vec3","lN","=","T","(","lM",",","vec3","(","0.0",",","0.0",",","-","1.0",")",")",";","float","lO","=","-","lN",".","x",";","float","lP","=","lN",".","y",";","vec2","lr","=","vec2","(","lL",".","x","-","lK","*","(","1.0","+","lO",")","/","2.0",",","lL",".","y","-","lK", "*","(","1.0","-","lP",")","/","2.0",")",";","vec2","lQ","=","lt","(","ao",",","lK",",","lr",")",";","float","lR","=","lK","/","2.0",";","vec2","lS","=","abs","(","lu","(","lQ","-","vec2","(","0.5",")",",","lK",",","vec2","(","0.0",")",")",")",";","float","lT","=","lR","*","(","1.0","+","sqrt","(","2.0",")",")","/","2.0",";","if","(","length","(","lS",")",">","lT",")","return","lv","(",")",";","float","lU","=","lK","/","lJ",".","z",";","vec2","lV","=","(","lQ","-","vec2","(","0.5",")",")","*","lU", "+","vec2","(","0.5",")",";","vec3","lW","=","lN","*","(","lK","/","lJ",".","z","-","1.0",")","/","2.0",";","lV",".","x","+=","lW",".","x",";","lV",".","y","+=","lW",".","y",";","vec4","lX","=","GLSL_TEXTURE","(","lI",",","lV",")",";","float","hK","=","lX",".","r",";","if","(","hK","<","u_scale_threshold",")","return","lv","(",")",";","float","lY","=","lJ",".","y","-","lJ",".","x",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL3"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","cn","=", "lJ",".","y","-","(","lF","(","lH",",","lV",")",")",".","r","*","lY",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","cn","=","lJ",".","y","-","(","GLSL_TEXTURE","(","lH",",","lV",")",")",".","r","*","lY",";"]}]}}]},{TYPE:"txt",TOKENS:["vec2","lZ","=","O",".","xy","-","ao",".","xy",";","ao",".","xy","=","lu","(","lQ",",","lK",",","lr",")",";","ao",".","z","=","cn",";","O",".","xy","=","ao",".","xy","+","lZ",";","O",".","z","*=","hK",";","O",".","z","+=","cn",";","vec3", "aQ","=","lX",".","gba",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","-=","ao",";","mat3","l_","=","as","(","lL",",","ao",",","N",",","Z",")",";","au","aw","=","av","(","O",",","ao",",","V",",","lG",",","W",",","U",",","l_",")",";","aw",".","ao","=","ao",";","aw",".","aQ","=","aQ",";","return","ma","(","aw",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","ma","(","au","(","O",",","ao",",","V",",","lG", ",","W",",","U",",","aQ",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]}}]}]},exports["include/environment.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"ENVIRONMENT_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"ENVIRONMENT_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"USE_ENVIRONMENT_LIGHT",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_COLOR",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_TEXTURE",TOKENS:["0"]},{TYPE:"txt",TOKENS:["vec3","cE","(","vec3","U",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["USE_ENVIRONMENT_LIGHT"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_TEXTURE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","GLSL_TEXTURE_CUBE","(","u_sky_texture",",","U",")",".","rgb",";"]}]}},{TYPE:"elif",EXPRESSION:["SKY_COLOR"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","mb","=","0.5","*","U",".","z","+","0.5",";","return","mix","(","u_horizon_color",",","u_zenith_color",",","mb",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["return","vec3","(","1.0",")",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","vec3","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/fog.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FOG_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FOG_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"USE_FOG",TOKENS:["0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]},{TYPE:"var",NAME:"FOG_TYPE",TOKENS:["QUADRATIC"]},{TYPE:"var", NAME:"PROCEDURAL_FOG",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","mg","(","inout","vec3","aQ",",","in","float","mc",",","in","float","cn",",","in","vec4","md",")","{","float","me","=","clamp","(","(","mc","-","u_fog_params",".","z",")","/","u_fog_params",".","y",",","0.0",",","1.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FOG_TYPE","QUADRATIC", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["me","*=","me",";"]}]}},{TYPE:"elif",EXPRESSION:["FOG_TYPE","LINEAR",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[]}},{TYPE:"elif",EXPRESSION:["FOG_TYPE","INVERSE_QUADRATIC",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["me","=","sqrt","(","me",")",";"]}]}}]},{TYPE:"txt",TOKENS:["if","(","u_fog_params",".","w",">","0.0",")","{","if","(","cn",">","u_fog_params",".","w",")","me","=","0.0", ";","else","{","float","mf","=","(","u_fog_params",".","w","-","max","(","cn",",","0.0",")",")","/","u_fog_params",".","w",";","me","*=","mf","*","mf",";","}","}","md",".","a","=","1.0","-","(","1.0","-","me",")","*","(","1.0","-","u_fog_params",".","x",")",";","aQ","=","mix","(","aQ",",","md",".","rgb",",","md",".","a",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ml","(","in","mat4","mh",",","in","vec3","D",")", "{","vec3","mi","=","mix","(","mh","[","0","]",".","rgb",",","mh","[","1","]",".","rgb",",","(","D",".","x","+","1.0",")","/","2.0",")",";","vec3","mj","=","mix","(","mh","[","2","]",".","rgb",",","mh","[","3","]",".","rgb",",","(","D",".","y","+","1.0",")","/","2.0",")",";","vec3","mk","=","vec3","(","mh","[","0","]",".","a",",","mh","[","1","]",".","a",",","mh","[","2","]",".","a",")",";","vec3","aQ","=","mix","(","mi",",","mj",",","abs","(","D",".","y",")",")",";","aQ","=","mix","(","aQ",",","mk", ",","abs","(","D",".","z",")",")",";","bG","(","aQ",")",";","return","aQ",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","mn","(","inout","float","mm",")","{","mm","-=","0.5",";","mm","=","4.0","*","(","mm","*","mm","*","mm",")","+","0.5",";","}","void","mt","(","inout","vec3","aQ",",","in","float","mc",",","in","vec3","D",",","in","float","eG",",","in","vec4","mo",",","in","float","fp",")","{","float","mp","=","max", "(","D",".","z",",","0.0",")",";","float","mq","=","max","(","mc","-","max","(","eG","/","mp",",","0.0",")",",","0.0",")",";","float","mr","=","mo",".","w","*","mq",";","vec3","eH","=","vec3","(","0.0",",","0.02",",","0.05",")",";","vec3","ms","=","mo",".","rgb",";","mr","=","min","(","mr",",","1.0",")",";","mn","(","mr",")",";","mr","*=","clamp","(","2.0","-","fp",",","0.0",",","1.0",")",";","vec3","eI","=","mix","(","ms",",","eH",",","min","(","mp",",","1.0",")",")",";","eG","=","clamp","(","-", "eG","*","0.03",",","0.0",",","0.8",")",";","eI","*=","1.0","-","eG",";","aQ","=","mix","(","aQ",",","eI",",","mr",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","bW","(","inout","vec3","aQ",",","float","mc",",","vec3","D",",","float","bT",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["PROCEDURAL_FOG"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","mh","=","ml","(","u_cube_fog",",","D",")",";","vec4","eI","=", "vec4","(","mh",",","u_fog_color_density",".","a",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","eI","=","u_fog_color_density",";"]}]}}]},{TYPE:"txt",TOKENS:["mg","(","aQ",",","mc",",","h",".","z",",","eI",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mt","(","aQ",",","mc",",","D",",","u_cam_water_depth",",","u_underwater_fog_color_density",",","bT",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]}, exports["include/fxaa.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"FXAA_BLEND4WEB",TOKENS:["1"]},{TYPE:"var",NAME:"FXAA_QUALITY_P12",TOKENS:["0.0"]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_PS3",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_PS3",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_360",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_360", TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_360_OPT",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_360_OPT",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_PC",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_PC",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_PC_CONSOLE",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_PC_CONSOLE",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_GLSL_120",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"FXAA_GLSL_120",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_GLSL_130",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GLSL_130",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_HLSL_3",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_HLSL_3",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_HLSL_4",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_HLSL_4",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_HLSL_5",GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"FXAA_HLSL_5",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_GREEN_AS_LUMA",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GREEN_AS_LUMA",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_EARLY_EXIT",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_EARLY_EXIT",TOKENS:["1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_DISCARD",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_DISCARD",TOKENS:["0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef", NAME:"FXAA_FAST_PIXEL_OFFSET",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifdef",NAME:"GL_EXT_gpu_shader4",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_FAST_PIXEL_OFFSET",TOKENS:["1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifdef",NAME:"GL_NV_gpu_shader5",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_FAST_PIXEL_OFFSET",TOKENS:["1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifdef",NAME:"GL_ARB_gpu_shader5",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_FAST_PIXEL_OFFSET",TOKENS:["1"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_FAST_PIXEL_OFFSET",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_FAST_PIXEL_OFFSET",TOKENS:["0"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_GATHER4_ALPHA",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_HLSL_5",1,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GATHER4_ALPHA",TOKENS:["1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifdef",NAME:"GL_ARB_gpu_shader5",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"FXAA_GATHER4_ALPHA",TOKENS:["1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifdef",NAME:"GL_NV_gpu_shader5",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GATHER4_ALPHA",TOKENS:["1"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_GATHER4_ALPHA",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_GATHER4_ALPHA",TOKENS:["0"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:[1],GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:[0],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",TOKENS:["4.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:[0],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_CONSOLE_PS3_EDGE_SHARPNESS",TOKENS:["2.0"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_CONSOLE_PS3_EDGE_THRESHOLD",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:[1],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_CONSOLE_PS3_EDGE_THRESHOLD",TOKENS:["0.125"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_CONSOLE_PS3_EDGE_THRESHOLD",TOKENS:["0.25"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"FXAA_QUALITY_PRESET",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PRESET",TOKENS:["12"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",10,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define", NAME:"FXAA_QUALITY_PS",TOKENS:["3"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["3.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["12.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",11,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["4"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define", NAME:"FXAA_QUALITY_P2",TOKENS:["3.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["12.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",12,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["4.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P4",TOKENS:["12.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",13,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["6"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["4.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P5",TOKENS:["12.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",14,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["7"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P5",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["12.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",15,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["8"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P7",TOKENS:["12.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",20,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["3"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["2.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P2",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",21,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["4"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET", 22,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",23,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["6"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",24,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["7"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["3.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET", 25,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["8"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["4.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P7",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",26,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["9"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define", NAME:"FXAA_QUALITY_P5",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P7",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P8",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",27,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["10"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define", NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P7",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P8",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P9",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",28,{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["11"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P7", TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P8",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P9",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P10",TOKENS:["8.0"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",29,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["12"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.5"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2", TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P6",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P7",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P8",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P9",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P10",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P11",TOKENS:["8.0"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PRESET",39,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"FXAA_QUALITY_PS",TOKENS:["12"]},{TYPE:"define",NAME:"FXAA_QUALITY_P0",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P1",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P2",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P3",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P4",TOKENS:["1.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P5",TOKENS:["1.5"]},{TYPE:"define", NAME:"FXAA_QUALITY_P6",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P7",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P8",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P9",TOKENS:["2.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P10",TOKENS:["4.0"]},{TYPE:"define",NAME:"FXAA_QUALITY_P11",TOKENS:["8.0"]}]}}]},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"txt",TOKENS:["float","mu","(","float","x",")","{","return","clamp","(","x",",","0.0",",","1.0",")",";","}"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["FXAA_BLEND4WEB",1,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","mv","(","sampler2D","t",",","vec2","p",")","{","return","GLSL_TEXTURE","(","t",",","p",")",";","}","vec4","mx","(","sampler2D","t",",","vec2","p",",","vec2","mw",",","vec2","r",")","{","return","GLSL_TEXTURE","(","t",",","p","+","(","mw","*","r",")",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["vec4","gz","(","vec2","fr",",","sampler2D","ie",",","vec2","my",",","float","mz",",","float","mA", ",","float","mB",")","{","vec2","mC",";","mC",".","x","=","fr",".","x",";","mC",".","y","=","fr",".","y",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_GATHER4_ALPHA",1,{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","mD","=","mv","(","ie",",","mC",")",";","float","gk","=","gj","(","mD",")",";","float","mE","=","gj","(","mx","(","ie",",","mC",",","vec2","(","0",",","1",")",",","my",".","xy",")",")",";","float","mF", "=","gj","(","mx","(","ie",",","mC",",","vec2","(","1",",","0",")",",","my",".","xy",")",")",";","float","mG","=","gj","(","mx","(","ie",",","mC",",","vec2","(","0",",","-","1",")",",","my",".","xy",")",")",";","float","mH","=","gj","(","mx","(","ie",",","mC",",","vec2","(","-","1",",","0",")",",","my",".","xy",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["float","mI","=","max","(","mE",",","gk",")",";","float","mJ","=","min","(","mE",",","gk",")",";","float","mK","=","max","(","mF",",","mI",")",";","float", "mL","=","min","(","mF",",","mJ",")",";","float","mM","=","max","(","mG",",","mH",")",";","float","mN","=","min","(","mG",",","mH",")",";","float","mO","=","max","(","mM",",","mK",")",";","float","mP","=","min","(","mN",",","mL",")",";","float","mQ","=","mO","*","mA",";","float","mR","=","mO","-","mP",";","float","mS","=","max","(","mB",",","mQ",")",";","bool","mT","=","mR","<","mS",";","if","(","mT",")","return","mD",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_GATHER4_ALPHA",0,{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","gl","=","gj","(","mx","(","ie",",","mC",",","vec2","(","-","1",",","-","1",")",",","my",".","xy",")",")",";","float","go","=","gj","(","mx","(","ie",",","mC",",","vec2","(","1",",","1",")",",","my",".","xy",")",")",";","float","gm","=","gj","(","mx","(","ie",",","mC",",","vec2","(","1",",","-","1",")",",","my",".","xy",")",")",";","float","gn","=","gj","(","mx","(","ie",",","mC",",","vec2","(","-","1",",","1",")",",","my",".","xy",")", ")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[]}}]},{TYPE:"txt",TOKENS:["float","mU","=","mG","+","mE",";","float","mV","=","mH","+","mF",";","float","mW","=","1.0","/","mR",";","float","mX","=","mU","+","mV",";","float","mY","=","(","-","2.0","*","gk",")","+","mU",";","float","mZ","=","(","-","2.0","*","gk",")","+","mV",";","float","m_","=","gm","+","go",";","float","na","=","gl","+","gm",";","float","nb","=","(","-","2.0","*","mF",")","+","m_",";","float","nc","=","(","-","2.0","*","mG",")", "+","na",";","float","nd","=","gl","+","gn",";","float","ne","=","gn","+","go",";","float","nf","=","(","abs","(","mY",")","*","2.0",")","+","abs","(","nb",")",";","float","ng","=","(","abs","(","mZ",")","*","2.0",")","+","abs","(","nc",")",";","float","nh","=","(","-","2.0","*","mH",")","+","nd",";","float","ni","=","(","-","2.0","*","mE",")","+","ne",";","float","nj","=","abs","(","nh",")","+","nf",";","float","nk","=","abs","(","ni",")","+","ng",";","float","nl","=","nd","+","m_",";","float","nm", "=","my",".","x",";","bool","nn","=","nj",">=","nk",";","float","no","=","mX","*","2.0","+","nl",";","if","(","!","nn",")","mG","=","mH",";","if","(","!","nn",")","mE","=","mF",";","if","(","nn",")","nm","=","my",".","y",";","float","np","=","(","no","*","(","1.0","/","12.0",")",")","-","gk",";","float","nq","=","mG","-","gk",";","float","nr","=","mE","-","gk",";","float","ns","=","mG","+","gk",";","float","nt","=","mE","+","gk",";","bool","nu","=","abs","(","nq",")",">=","abs","(","nr",")",";","float", "nv","=","max","(","abs","(","nq",")",",","abs","(","nr",")",")",";","if","(","nu",")","nm","=","-","nm",";","float","nw","=","mu","(","abs","(","np",")","*","mW",")",";","vec2","nx",";","nx",".","x","=","mC",".","x",";","nx",".","y","=","mC",".","y",";","vec2","ny",";","ny",".","x","=","(","!","nn",")","?","0.0",":","my",".","x",";","ny",".","y","=","(","nn",")","?","0.0",":","my",".","y",";","if","(","!","nn",")","nx",".","x","+=","nm","*","0.5",";","if","(","nn",")","nx",".","y","+=","nm","*", "0.5",";","vec2","nz",";","nz",".","x","=","nx",".","x","-","ny",".","x","*","FXAA_QUALITY_P0",";","nz",".","y","=","nx",".","y","-","ny",".","y","*","FXAA_QUALITY_P0",";","vec2","nA",";","nA",".","x","=","nx",".","x","+","ny",".","x","*","FXAA_QUALITY_P0",";","nA",".","y","=","nx",".","y","+","ny",".","y","*","FXAA_QUALITY_P0",";","float","nB","=","(","(","-","2.0",")","*","nw",")","+","3.0",";","float","nC","=","gj","(","mv","(","ie",",","nz",")",")",";","float","nD","=","nw","*","nw",";","float", "nE","=","gj","(","mv","(","ie",",","nA",")",")",";","if","(","!","nu",")","ns","=","nt",";","float","nF","=","nv","*","1.0","/","4.0",";","float","nG","=","gk","-","ns","*","0.5",";","float","nH","=","nB","*","nD",";","bool","nI","=","nG","<","0.0",";","nC","-=","ns","*","0.5",";","nE","-=","ns","*","0.5",";","bool","nJ","=","abs","(","nC",")",">=","nF",";","bool","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P1",";","if","(","!", "nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P1",";","bool","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P1",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P1",";","if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=", "nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P2",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P2",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P2",";","if","(","!","nK",")","nA",".","y","+=","ny", ".","y","*","FXAA_QUALITY_P2",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",3,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC", ")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P3",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P3",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P3",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P3",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",4,{TYPE:"g_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x", "*","FXAA_QUALITY_P4",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P4",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P4",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P4",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",5,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=", "gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P5",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P5",";","nL", "=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P5",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P5",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",6,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie", ",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P6",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P6",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P6", ";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P6",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",7,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE", "-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P7",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P7",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P7",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P7",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["FXAA_QUALITY_PS",8,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(", "!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P8",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P8",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P8",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P8",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",9,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(", "nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P9",";","if","(","!","nJ",")","nz",".","y","-=", "ny",".","y","*","FXAA_QUALITY_P9",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P9",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P9",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",10,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(", "!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P10",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P10",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!", "nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P10",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P10",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",11,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC", "=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs","(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P11",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P11",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P11",";","if","(","!","nK",")","nA",".","y", "+=","ny",".","y","*","FXAA_QUALITY_P11",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_QUALITY_PS",12,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","nL",")","{","if","(","!","nJ",")","nC","=","gj","(","mv","(","ie",",","nz",".","xy",")",")",";","if","(","!","nK",")","nE","=","gj","(","mv","(","ie",",","nA",".","xy",")",")",";","if","(","!","nJ",")","nC","=","nC","-","ns","*","0.5",";","if","(","!","nK",")","nE","=","nE","-","ns","*","0.5",";","nJ","=","abs", "(","nC",")",">=","nF",";","nK","=","abs","(","nE",")",">=","nF",";","if","(","!","nJ",")","nz",".","x","-=","ny",".","x","*","FXAA_QUALITY_P12",";","if","(","!","nJ",")","nz",".","y","-=","ny",".","y","*","FXAA_QUALITY_P12",";","nL","=","(","!","nJ",")","||","(","!","nK",")",";","if","(","!","nK",")","nA",".","x","+=","ny",".","x","*","FXAA_QUALITY_P12",";","if","(","!","nK",")","nA",".","y","+=","ny",".","y","*","FXAA_QUALITY_P12",";","}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}, {TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}","float","nM","=","mC",".","x","-","nz",".","x",";","float","nN","=","nA",".","x","-","mC",".","x",";","if","(","!","nn",")","nM","=","mC",".","y","-","nz",".","y",";","if","(","!","nn",")","nN","=","nA",".","y","-","mC",".","y",";","bool","nO","=","(","nC","<", "0.0",")","!=","nI",";","float","nP","=","(","nN","+","nM",")",";","bool","nQ","=","(","nE","<","0.0",")","!=","nI",";","float","nR","=","1.0","/","nP",";","bool","nS","=","nM","<","nN",";","float","nT","=","min","(","nM",",","nN",")",";","bool","nU","=","nS","?","nO",":","nQ",";","float","nV","=","nH","*","nH",";","float","nW","=","(","nT","*","(","-","nR",")",")","+","0.5",";","float","nX","=","nV","*","mz",";","float","nY","=","nU","?","nW",":","0.0",";","float","nZ","=","max","(","nY",",","nX", ")",";","if","(","!","nn",")","mC",".","x","+=","nZ","*","nm",";","if","(","nn",")","mC",".","y","+=","nZ","*","nm",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FXAA_DISCARD",1,{TYPE:"equal_expr",PLACES:2},"FXAA_BLEND4WEB",1,{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","mv","(","ie",",","mC",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","vec4","(","mv","(","ie",",","mC",")",".","xyz",",", "gk",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/halo_color.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"HALO_COLOR_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"HALO_COLOR_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"NUM_RINGS",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LINES",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_STARS",TOKENS:["0"]},{TYPE:"var",NAME:"SKY_STARS",TOKENS:["0"]},{TYPE:"var",NAME:"WAVES_HEIGHT",TOKENS:["1.0"]},{TYPE:"var",NAME:"WATER_EFFECTS",TOKENS:["0"]}, {TYPE:"var",NAME:"DISABLE_FOG",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_RINGS","NUM_LINES",{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","int","n_","=","NUM_RINGS",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","int","n_","=","NUM_LINES",";"]}]}}]},{TYPE:"txt",TOKENS:["float","oa","(","float","x",")","{","return","x","-","floor","(","x","*","(","1.0","/","0.01",")",")","*","0.01",";","}"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["NUM_RINGS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","oh","(","inout","float","ob",",","in","float","oc","[","n_","]",",","in","float","od",")","{","for","(","int","a","=","0",";","a","<","NUM_RINGS",";","a","++",")","{","float","oe","=","40.0","*","oc","[","a","]",";","float","of","=","300.0","*","(","oa","(","oe",")","-","0.005",")",";","float","og","=","oe",";","float","me","=","abs","(","og","*","(","u_halo_size","*","of","-","od",")",")",";","ob","+=","1.0","-","min", "(","me",",","1.0",")",";","}","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LINES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","om","(","inout","float","oi",",","in","float","oc","[","n_","]",",","in","float","aM",")","{","for","(","int","a","=","0",";","a","<","NUM_LINES",";","a","++",")","{","float","oj","=","oc","[","a","]",";","float","ok","=","oj",";","float","ol","=","1000.0","*","(","oa","(","oj",")","-","0.005",")",";","float","me","=","20.0","*","abs","(","ok","*", "A",".","x","+","ol","*","A",".","y",")",";","oi","+=","1.0","-","min","(","me",",","1.0",")",";","}","oi","*=","aM",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","oq","(","inout","float","aM",",","in","vec2","ce",")","{","float","on",",","bP",";","bP","=","atan","(","ce",".","y",",","ce",".","x",")",";","bP","*=","(","1.0","+","0.25","*","float","(","NUM_STARS",")",")",";","float","oo","=","cos","(","bP",")",";","float","op","=","sin","(","bP",")",";","bP","=","(","oo","*","ce",".","x","+","op","*", "ce",".","y",")","*","(","oo","*","ce",".","y","-","op","*","ce",".","x",")",";","on","=","abs","(","bP",")",";","if","(","on","<","1.0",")","{","on","=","(","0.01","*","u_halo_size",")","/","(","on",")",";","aM","*=","sqrt","(","min","(","on",",","1.0",")",")",";","}","}","vec4","bl","(",")","{","float","aM","=","(","A",".","x","*","A",".","x","+","A",".","y","*","A",".","y",")",";","float","od","=","sqrt","(","aM",")",";","aM","=","max","(","1.0","-","aM",",","0.0",")",";","aM","=","pow","(","aM", ",","u_halo_hardness",")",";","float","L","=","u_diffuse_color",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_RINGS","NUM_LINES",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","oc","[","n_","]",";","for","(","int","cq","=","0",";","cq","<","n_",";","cq","++",")","{","oc","[","cq","]","=","fract","(","bk","/","float","(","cq","+","1",")",")","-","1.0",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_RINGS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["float","ob","=","0.0",";","oh","(","ob",",","oc",",","od",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LINES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","oi","=","0.0",";","om","(","oi",",","oc",",","aM",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_STARS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["oq","(","aM",",","A",")",";"]}]}}]},{TYPE:"txt",TOKENS:["aM","*=","L",";","vec3","aQ","=","u_diffuse_color",".","rgb",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["NUM_RINGS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["ob","*=","aM",";","aQ","+=","u_halo_rings_color","*","ob",";","aM","+=","ob",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_LINES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["oi","*=","L",";","aQ","+=","u_halo_lines_color","*","oi",";","aM","+=","oi",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKY_STARS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["aM","*=","max","(","1.0","-","2.0","*","u_sun_intensity", ".","x",",","0.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WATER_EFFECTS","DISABLE_FOG",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","lc","=","u_halo_stars_blend","*","(","bj",".","y","-","u_halo_stars_height",")",";","aM","*=","clamp","(","lc",",","0.0",",","1.0",")",";","aM","*=","min","(","u_cam_water_depth","+","2.0","*","WAVES_HEIGHT",",","1.0",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["vec4","or","=", "vec4","(","aQ",",","aM",")",";","return","or",";","}"]}]}}]}]},exports["include/lighting_nodes.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"LIGHTING_NODES_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"LIGHTING_NODES_GLSLF",TOKENS:[""]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"node",NAME:"LIGHTING_BEGIN",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"oF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"oH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oI",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"oJ",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"oK",QUALIFIER:["vec2"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"oL",QUALIFIER:["vec2"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"oM",QUALIFIER:["vec4"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"oN",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"oO",QUALIFIER:["vec4"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt", TOKENS:["oF","=","os",";","oG","=","ot",";","oH","=","ou",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oI"],STATEMENTS:[{TYPE:"txt",TOKENS:["oI","=","ov",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oJ"],STATEMENTS:[{TYPE:"txt",TOKENS:["oJ","=","ox",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oL"],STATEMENTS:[{TYPE:"txt",TOKENS:["oL","=","oz",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oK"],STATEMENTS:[{TYPE:"txt", TOKENS:["oK","=","oA",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oM"],STATEMENTS:[{TYPE:"txt",TOKENS:["oM","=","oB",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oN"],STATEMENTS:[{TYPE:"txt",TOKENS:["oN","=","oC",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_oO"],STATEMENTS:[{TYPE:"txt",TOKENS:["oO","=","oD",";"]}]}]}]},{TYPE:"node",NAME:"LIGHTING_AMBIENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"oP",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"oQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"oR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oS",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oT",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["oS","=","vec4","(","oP","+","oR","*","oQ",",","_0_0",")",";","oT","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"LIGHTING_LAMP",NODE_VARS:[{TYPE:"node_var",NAME:"LAMP_TYPE",TOKENS:["HEMI"]}, {TYPE:"node_var",NAME:"LAMP_IND",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_SPOT_SIZE",TOKENS:["0.8"]},{TYPE:"node_var",NAME:"LAMP_SPOT_BLEND",TOKENS:["0.03"]},{TYPE:"node_var",NAME:"LAMP_LIGHT_DIST",TOKENS:["30.0"]},{TYPE:"node_var",NAME:"LAMP_SHADOW_MAP_IND",TOKENS:["-","1"]},{TYPE:"node_var",NAME:"LAMP_USE_SPHERE",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"oU",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oW", QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oY",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["oW","=","vec2","(","u_light_positions","[","LAMP_IND","]",".","w",",","u_light_color_intensities","[","LAMP_IND","]",".","w",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","HEMI",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["oY","=","_0_5",";"]}]},{TYPE:"node_else", STATEMENTS:[{TYPE:"txt",TOKENS:["oY","=","_0_0",";"]}]}]},{TYPE:"txt",TOKENS:["oX","=","u_light_color_intensities","[","LAMP_IND","]",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_SHADOW_MAP_IND",1,{TYPE:"negative_expr",PLACES:1},{TYPE:"non_equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["oX","*=","oU","[","LAMP_SHADOW_MAP_IND","]",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2},"LAMP_TYPE","POINT", {TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","oZ","=","u_light_positions","[","LAMP_IND","]",".","xyz",";","oV","=","oZ","-","ow",";","float","aM","=","length","(","oV",")",";","float","o_","=","LAMP_LIGHT_DIST","/","(","LAMP_LIGHT_DIST","+","aM","*","aM",")",";","oV","=","normalize","(","oV",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3", "pa","=","u_light_directions","[","LAMP_IND","]",";","float","pb","=","dot","(","oV",",","pa",")",";","pb","*=","smoothstep","(","_0_0",",","_1_0",",","(","pb","-","LAMP_SPOT_SIZE",")","/","LAMP_SPOT_BLEND",")",";","o_","*=","pb",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_USE_SPHERE"],STATEMENTS:[{TYPE:"txt",TOKENS:["o_","*=","max","(","LAMP_LIGHT_DIST","-","aM",",","_0_0",")","/","LAMP_LIGHT_DIST",";"]}]}]},{TYPE:"txt",TOKENS:["oX","*=","o_",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt", TOKENS:["oV","=","u_light_directions","[","LAMP_IND","]",";"]}]}]}]},{TYPE:"node",NAME:"DIFFUSE_FRESNEL",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pd",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pe",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pg",QUALIFIER:["vec2"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"ph",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pc",",","B",".","xyz",")",";","pe","=","cross","(","pi",",","B",".","xyz",")",";","pe","=","-","normalize","(","pe",")",";"]}]}]},{TYPE:"txt",TOKENS:["ph","=","_0_0",";","if","(","pd",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pf",")","*","dot","(","pe",",","pc",")", "+","pf",";","if","(","pg","[","0","]","==","_0_0",")","{","ph","=","_1_0",";","}","else","{","float","t","=","_1_0","+","abs","(","pj",")",";","t","=","pg","[","1","]","+","(","_1_0","-","pg","[","1","]",")","*","pow","(","t",",","pg","[","0","]",")",";","ph","=","clamp","(","t",",","_0_0",",","_1_0",")",";","}","ph","=","max","(","ph",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_LAMBERT",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"pk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pl",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pm",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"po",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pk",",","B",".","xyz",")",";","pm","=","cross", "(","pi",",","B",".","xyz",")",";","pm","=","-","normalize","(","pm",")",";"]}]}]},{TYPE:"txt",TOKENS:["po","=","_0_0",";","if","(","pl",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pn",")","*","dot","(","pm",",","pk",")","+","pn",";","po","=","max","(","pj",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_OREN_NAYAR",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"pu",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"px",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"py",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pr",",","B",".","xyz",")",";","pv","=","cross", "(","pi",",","B",".","xyz",")",";","pv","=","-","normalize","(","pv",")",";"]}]}]},{TYPE:"txt",TOKENS:["py","=","_0_0",";","if","(","pu",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pw",")","*","dot","(","pv",",","pr",")","+","pw",";","if","(","px","[","0","]",">","_0_0",")","{","float","pz","=","max","(","dot","(","pv",",","oy",")",",","_0_0",")",";","float","pA","=","px","[","0","]","*","px","[","0","]",";","float","cG","=","_1_0","-","_0_5","*","(","pA","/","(","pA","+","0.33", ")",")",";","vec3","pB","=","pr","-","pj","*","pv",";","vec3","pC","=","oy","-","pz","*","pv",";","if","(","length","(","pB",")","==","_0_0","||","length","(","pC",")","==","_0_0","||","abs","(","pj",")",">","_1_0","||","abs","(","pz",")",">","_1_0",")","py","=","pj","*","cG",";","else","{","float","pD","=","acos","(","pj",")",";","float","pE","=","acos","(","pz",")",";","vec3","pF","=","normalize","(","pB",")",";","vec3","pG","=","normalize","(","pC",")",";","float","a",",","b",";","a","=","max", "(","pD",",","pE",")",";","b","=","min","(","pD",",","pE",")",";","b","*=","0.95",";","float","t","=","max","(","dot","(","pF",",","pG",")",",","_0_0",")",";","float","hS","=","0.45","*","(","pA","/","(","pA","+","0.09",")",")",";","py","=","pj","*","(","cG","+","(","hS","*","t","*","sin","(","a",")","*","tan","(","b",")",")",")",";","}","}","else","py","=","pj",";","py","=","max","(","py",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_MINNAERT",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pI",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pL",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pM",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"], STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pH",",","B",".","xyz",")",";","pJ","=","cross","(","pi",",","B",".","xyz",")",";","pJ","=","-","normalize","(","pJ",")",";"]}]}]},{TYPE:"txt",TOKENS:["pM","=","_0_0",";","if","(","pI",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pK",")","*","dot","(","pJ",",","pH",")","+","pK",";","float","pz","=","max","(","dot","(","pJ",",","oy",")",",","_0_0",")",";","if","(","pL","[","0","]","<=","_1_0",")","pM","=","pj","*","pow","(", "max","(","pz","*","pj",",","0.1",")",",","pL","[","0","]","-","_1_0",")",";","else","pM","=","pj","*","pow","(","1.0001","-","pz",",","pL","[","0","]","-","_1_0",")",";","pM","=","max","(","pM",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_TOON",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pO",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pP",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pR",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pN",",","B",".","xyz",")",";","pP","=","cross","(","pi",",","B",".","xyz",")",";","pP","=","-","normalize","(","pP",")",";"]}]}]},{TYPE:"txt", TOKENS:["pS","=","_0_0",";","if","(","pO",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pQ",")","*","dot","(","pP",",","pN",")","+","pQ",";","float","pT","=","acos","(","pj",")",";","if","(","pT","<","pR","[","0","]",")","pS","=","_1_0",";","else","if","(","pT",">","(","pR","[","0","]","+","pR","[","1","]",")","||","pR","[","1","]","==","_0_0",")","pS","=","_0_0",";","else","pS","=","_1_0","-","(","(","pT","-","pR","[","0","]",")","/","pR","[","1","]",")",";","pS","=","max","(","pS", ",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_PHONG",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pV",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pY",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pZ",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["pZ","=","_0_0",";","if","(","pV",".","g","!=","_0_0",")","{","vec3","p_","=","normalize","(","pU","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","pX","==","_0_0",")","{","pZ","=","dot","(","B",".","xyz",",","p_",")",";","pZ","=","sqrt","(","_1_0","-","pZ","*","pZ",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["pZ","=","(","_1_0","-","pX", ")","*","max","(","dot","(","pW",",","p_",")",",","_0_0",")","+","pX",";"]}]}]},{TYPE:"txt",TOKENS:["pZ","=","pow","(","pZ",",","pY","[","0","]",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_COOKTORR",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qa",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qb",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qd", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qe",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qf",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qf","=","_0_0",";","if","(","qb",".","g","!=","_0_0",")","{","vec3","p_","=","normalize","(","qa","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","qd","==","_0_0",")","{","qf","=","dot","(","B",".","xyz",",","p_", ")",";","qf","=","sqrt","(","_1_0","-","qf","*","qf",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["qf","=","max","(","dot","(","qc",",","p_",")",",","_0_0",")",";","qf","=","(","_1_0","-","qd",")","*","qf","+","qd",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","pz","=","max","(","dot","(","B",".","xyz",",","oy",")",",","_0_0",")",";","pz","=","sqrt","(","_1_0","-","pz","*","pz",")",";"]}]},{TYPE:"node_else", STATEMENTS:[{TYPE:"txt",TOKENS:["float","pz","=","max","(","dot","(","qc",",","oy",")",",","_0_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["qf","=","pow","(","qf",",","qe","[","0","]",")",";","qf","=","qf","/","(","0.1","+","pz",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_WARDISO",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qh",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"qi",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qk",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ql",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ql","=","_0_0",";","if","(","qh",".","g","!=","_0_0",")","{","vec3","p_","=","normalize","(","qg","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float", "qm","=","_0_0",";","float","pz","=","_0_0",";","float","qn","=","_0_0",";","if","(","qj","==","_0_0",")","{","qm","=","dot","(","B",".","xyz",",","p_",")",";","pz","=","dot","(","B",".","xyz",",","oy",")",";","qn","=","dot","(","B",".","xyz",",","qg",")",";","qm","=","sqrt","(","_1_0","-","qm","*","qm",")",";","pz","=","sqrt","(","_1_0","-","pz","*","pz",")",";","qn","=","sqrt","(","_1_0","-","qn","*","qn",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","max","(", "dot","(","qi",",","p_",")",",","0.01",")",";","float","pz","=","max","(","dot","(","qi",",","oy",")",",","0.01",")",";","float","qn","=","max","(","dot","(","qi",",","qg",")",",","0.01",")",";"]}]}]},{TYPE:"txt",TOKENS:["float","bP","=","tan","(","acos","(","qm",")",")",";","float","L","=","max","(","qk","[","0","]",",","0.01",")",";","ql","=","qn","*","(","_1_0","/","(","4.0","*","M_PI","*","L","*","L",")",")","*","(","exp","(","-","(","bP","*","bP",")","/","(","L","*","L",")",")","/","(","sqrt", "(","pz","*","qn",")",")",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_TOON",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qr",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qu",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qw",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qx", QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qx","=","_0_0",";","if","(","qr",".","g","!=","_0_0",")","{","vec3","co","=","normalize","(","qo","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qy","=","dot","(","co",",","B",".","xyz",")",";","float","bP","=","qw","[","0","]","+","qw","[","1","]",";","if","(","qv","==","_0_0",")","bP","=","acos","(","sqrt","(","_1_0","-","qy","*","qy", ")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","bP","=","acos","(","dot","(","co",",","qu",")",")",";"]}]}]},{TYPE:"txt",TOKENS:["if","(","bP","<","qw","[","0","]",")","qx","=","_1_0",";","else","if","(","bP",">=","qw","[","0","]","+","qw","[","1","]","||","qw","[","1","]","==","_0_0",")","qx","=","_0_0",";","else","qx","=","_1_0","-","(","bP","-","qw","[","0","]",")","/","qw","[","1","]",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_BLINN",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qA",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qD",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qE",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qF","=","qD","[","0","]",";","float","qG","=", "qD","[","1","]",";","qE","=","_0_0",";","if","(","qA",".","g","!=","_0_0",")","{","if","(","qF","<","1.0","||","qG","==","_0_0",")","qE","=","_0_0",";","else","{","if","(","qG","<","100.0",")","qG","=","sqrt","(","1.0","/","qG",")",";","else","qG","=","10.0","/","qG",";","vec3","p_","=","normalize","(","oy","+","qz",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","0.0",";","if","(","qC","==","_0_0",")","{","float", "qH","=","dot","(","B",".","xyz",",","p_",")",";","qm","=","sqrt","(","_1_0","-","qH","*","qH",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","(","_1_0","-","qC",")","*","max","(","dot","(","qB",",","p_",")",",","_0_0",")","+","qC",";"]}]}]},{TYPE:"txt",TOKENS:["if","(","qm","<","_0_0",")","qE","=","_0_0",";","else","{","float","pz","=","max","(","dot","(","qB",",","oy",")",",","0.01",")",";","float","qn","=","dot","(","qB",",","qz",")",";","if","(","qn","<=","0.01", ")","qE","=","_0_0",";","else","{","float","qI","=","max","(","dot","(","oy",",","p_",")",",","0.01",")",";","float","a","=","_1_0",";","float","b","=","(","2.0","*","qm","*","pz",")","/","qI",";","float","dx","=","(","2.0","*","qm","*","qn",")","/","qI",";","float","g","=","min","(","min","(","a",",","b",")",",","dx",")",";","float","p","=","sqrt","(","pow","(","qF",",","2.0",")","+","pow","(","qI",",","2.0",")","-","_1_0",")",";","float","mm","=","pow","(","p","-","qI",",","2.0",")","/","pow","(", "p","+","qI",",","2.0",")","*","(","_1_0","+","pow","(","qI","*","(","p","+","qI",")","-","_1_0",",","2.0",")","/","pow","(","qI","*","(","p","-","qI",")","+","_1_0",",","2.0",")",")",";","float","pT","=","acos","(","qm",")",";","qE","=","max","(","mm","*","g","*","exp","(","-","pow","(","pT",",","2.0",")","/","(","2.0","*","pow","(","qG",",","2.0",")",")",")",",","_0_0",")",";","}","}","}","}"]}]},{TYPE:"node",NAME:"LIGHTING_APPLY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"qJ",QUALIFIER:["vec4"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qP",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qR",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qS",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qU",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qV",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qV","=","qK","+","qS","*","qR","*","qM",";","qU","=","qJ","+","vec4","(","qS","*","qQ","*","qL",",","qM",")",";"]}]},{TYPE:"node",NAME:"LIGHTING_END",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"qW",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qX",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","qW",".","rgb",";","oE","=","qX",";"]}]},{TYPE:"nodes_global"},{TYPE:"txt",TOKENS:["void","cP","(","vec3","os",",","vec3","ot",",","vec3","ou",",","vec3","ov",",","vec3","ow",",","vec3","ox",",","vec3","oy",",","vec2","oz",",","vec2","oA",",","vec4","oB",",","float","oC",",","vec4","oD",",","out","vec3","E",",","out","vec3","oE",")","{"]},{TYPE:"nodes_main"}, {TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/math.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"MATH_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"MATH_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"EPSILON",TOKENS:["0.000001"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"USE_POSITION_CLIP",TOKENS:["0"]},{TYPE:"var",NAME:"SOFT_PARTICLES",TOKENS:["0"]}, {TYPE:"include",FILE:"std.glsl"},{TYPE:"txt",TOKENS:["struct","au","{","vec3","O",";","vec3","ao",";","vec3","V",";","vec3","aB",";","vec3","W",";","vec3","U",";","vec3","aQ",";","}",";","bool","qY","(","vec3","a",",","vec3","b",")","{","return","any","(","lessThan","(","abs","(","a","-","b",")",",","vec3","(","EPSILON",")",")",")",";","}","vec3","T","(","in","vec4","q",",","in","vec3","kU",")","{","return","kU","+","2.0","*","cross","(","q",".","xyz",",","cross","(","q",".","xyz",",","kU",")","+", "q",".","w","*","kU",")",";","}","vec4","kV","(","in","vec4","qZ",")","{","return","vec4","(","-","qZ",".","xyz",",","qZ",".","w",")",";","}","vec4","rc","(","in","vec4","a",",","in","vec4","b",")","{","vec4","q_",";","q_",".","x","=","a",".","x","*","b",".","w","+","a",".","w","*","b",".","x","+","a",".","y","*","b",".","z","-","a",".","z","*","b",".","y",";","q_",".","y","=","a",".","y","*","b",".","w","+","a",".","w","*","b",".","y","+","a",".","z","*","b",".","x","-","a",".","x","*","b",".","z", ";","q_",".","z","=","a",".","z","*","b",".","w","+","a",".","w","*","b",".","z","+","a",".","x","*","b",".","y","-","a",".","y","*","b",".","x",";","q_",".","w","=","a",".","w","*","b",".","w","-","a",".","x","*","b",".","x","-","a",".","y","*","b",".","y","-","a",".","z","*","b",".","z",";","return","q_",";","}","vec4","X","(","in","vec3","rd",",","in","float","re",")","{","vec4","q_",";","re","=","re","*","0.5",";","float","s","=","sin","(","re",")",";","q_",".","x","=","s","*","rd","[","0","]", ";","q_",".","y","=","s","*","rd","[","1","]",";","q_",".","z","=","s","*","rd","[","2","]",";","q_",".","w","=","cos","(","re",")",";","return","q_",";","}","vec4","ri","(","in","vec3","bH",",","in","vec3","rf",")","{","vec4","q_",";","float","dC","=","dot","(","rf",",","bH",")",";","vec3","rh","=","cross","(","rf",",","bH",")",";","q_",".","xyz","=","rh",".","xyz",";","q_",".","w","=","1.0","+","dC",";","return","normalize","(","q_",")",";","}","vec3","rl","(","vec3","rj",",","vec3","hK",",","vec4", "qZ",",","vec3","rk",")","{","vec3","q_","=","rk","*","hK",";","q_","=","T","(","qZ",",","q_",")",";","q_","+=","rj",";","return","q_",";","}","vec3","rm","(","vec3","rj",",","vec3","hK",",","vec4","qZ",",","vec3","bH",")","{","vec3","q_","=","bH","*","hK",";","q_","=","T","(","qZ",",","q_",")",";","return","q_",";","}","vec3","rn","(","vec3","rj",",","vec3","hK",",","vec4","qZ",",","vec3","rk",")","{","vec3","q_","=","rk","-","rj",";","q_","=","T","(","kV","(","qZ",")",",","q_",")",";","q_","/=", "hK",";","return","q_",";","}","vec3","ro","(","vec3","rj",",","vec3","hK",",","vec4","qZ",",","vec3","bH",")","{","return","T","(","kV","(","qZ",")",",","bH",")","/","hK",";","}","mat4","rp","(",")","{","return","mat4","(","_1_0",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",")",";","}","mat4","rq","(","float","bP",")","{","return","mat4","(","_1_0",",","_0_0",",","_0_0",",","_0_0", ",","_0_0",",","cos","(","bP",")",",","sin","(","bP",")",",","_0_0",",","_0_0",",","-","sin","(","bP",")",",","cos","(","bP",")",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",")",";","}","mat4","rs","(","float","bP",")","{","return","mat4","(","cos","(","bP",")",",","_0_0",",","-","sin","(","bP",")",",","_0_0",",","_0_0",",","_1_0",",","_0_0",",","_0_0",",","sin","(","bP",")",",","_0_0",",","cos","(","bP",")",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",")",";","}","mat4","rt", "(","float","bP",")","{","return","mat4","(","cos","(","bP",")",",","sin","(","bP",")",",","_0_0",",","_0_0",",","-","sin","(","bP",")",",","cos","(","bP",")",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",",","_0_0",",","_0_0",",","_0_0",",","_0_0",",","_1_0",")",";","}","au","ma","(","in","au","kU",")","{","return","au","(","kU",".","O",",","kU",".","ao",",","normalize","(","kU",".","V",")",",","normalize","(","kU",".","aB",")",",","normalize","(","kU",".","W",")",",","normalize","(","kU", ".","U",")",",","kU",".","aQ",")",";","}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SOFT_PARTICLES","REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2},"REFRACTIVE","USE_POSITION_CLIP",{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","aC","(","vec4","f",")","{","float","fX","=","f",".","x",";","float","fY","=","f",".","y",";","float","fZ","=","f",".","w",";","vec3","ru",";","ru",".", "x","=","(","fX","+","fZ",")","/","2.0",";","ru",".","y","=","(","fY","+","fZ",")","/","2.0",";","ru",".","z","=","fZ",";","return","ru",";","}"]}]}}]},{TYPE:"txt",TOKENS:["mat3","aY","(",")","{","return","mat3","(","_0_0",",","_0_0",",","_0_0",",","_1_0",",","_1_0",",","_1_0",",","_0_0",",","_0_0",",","_0_0",")",";","}","mat4","bh","(","mat3","t",")","{","mat4","rv",";","float","rw","=","sqrt","(","abs","(","1.","-","t","[","2","]","[","0","]","*","t","[","2","]","[","0","]","-","t","[","2","]", "[","1","]","*","t","[","2","]","[","1","]","-","t","[","2","]","[","2","]","*","t","[","2","]","[","2","]",")",")",";","rv","[","0","]","[","0","]","=","(","_1_0","-","(","t","[","2","]","[","1","]","*","(","t","[","2","]","[","1","]","+","t","[","2","]","[","1","]",")","+","t","[","2","]","[","2","]","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")",")",")","*","t","[","1","]","[","0","]",";","rv","[","0","]","[","1","]","=","(","t","[","2","]","[","0","]","*","(","t","[", "2","]","[","1","]","+","t","[","2","]","[","1","]",")","+","rw","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")",")","*","t","[","1","]","[","0","]",";","rv","[","0","]","[","2","]","=","(","t","[","2","]","[","0","]","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")","-","rw","*","(","t","[","2","]","[","1","]","+","t","[","2","]","[","1","]",")",")","*","t","[","1","]","[","0","]",";","rv","[","0","]","[","3","]","=","_0_0",";","rv","[","1","]","[","0", "]","=","(","t","[","2","]","[","0","]","*","(","t","[","2","]","[","1","]","+","t","[","2","]","[","1","]",")","-","rw","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")",")","*","t","[","1","]","[","0","]",";","rv","[","1","]","[","1","]","=","(","_1_0","-","(","t","[","2","]","[","0","]","*","(","t","[","2","]","[","0","]","+","t","[","2","]","[","0","]",")","+","t","[","2","]","[","2","]","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")",")",")","*", "t","[","1","]","[","0","]",";","rv","[","1","]","[","2","]","=","(","t","[","2","]","[","1","]","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")","+","rw","*","(","t","[","2","]","[","0","]","+","t","[","2","]","[","0","]",")",")","*","t","[","1","]","[","0","]",";","rv","[","1","]","[","3","]","=","_0_0",";","rv","[","2","]","[","0","]","=","(","t","[","2","]","[","0","]","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")","+","rw","*","(","t","[","2","]", "[","1","]","+","t","[","2","]","[","1","]",")",")","*","t","[","1","]","[","0","]",";","rv","[","2","]","[","1","]","=","(","t","[","2","]","[","1","]","*","(","t","[","2","]","[","2","]","+","t","[","2","]","[","2","]",")","-","rw","*","(","t","[","2","]","[","0","]","+","t","[","2","]","[","0","]",")",")","*","t","[","1","]","[","0","]",";","rv","[","2","]","[","2","]","=","(","_1_0","-","(","t","[","2","]","[","0","]","*","(","t","[","2","]","[","0","]","+","t","[","2","]","[","0","]",")","+", "t","[","2","]","[","1","]","*","(","t","[","2","]","[","1","]","+","t","[","2","]","[","1","]",")",")",")","*","t","[","1","]","[","0","]",";","rv","[","2","]","[","3","]","=","_0_0",";","rv","[","3","]","[","0","]","=","t","[","0","]","[","0","]",";","rv","[","3","]","[","1","]","=","t","[","0","]","[","1","]",";","rv","[","3","]","[","2","]","=","t","[","0","]","[","2","]",";","rv","[","3","]","[","3","]","=","1.0",";","return","rv",";","}","mat3","bc","(","in","vec4","qZ",",","in","mat3","rx", ")","{","if","(","qZ",".","w","<","0.",")","qZ",".","xyz","*=","-","1.",";","rx","[","2","]","=","qZ",".","xyz",";","return","rx",";","}","vec4","ry","(","in","mat3","rx",")","{","return","vec4","(","rx","[","2","]",",","sqrt","(","abs","(","1.","-","rx","[","2","]","[","0","]","*","rx","[","2","]","[","0","]","-","rx","[","2","]","[","1","]","*","rx","[","2","]","[","1","]","-","rx","[","2","]","[","2","]","*","rx","[","2","]","[","2","]",")",")",")",";","}","vec3","ap","(","mat3","rx",",","vec3", "rk",")","{","vec3","q_","=","rk","*","rx","[","1","]",";","vec4","qZ","=","ry","(","rx",")",";","q_","=","T","(","qZ",",","q_",")",";","q_","+=","rx","[","0","]",";","return","q_",";","}","vec3","_","(","mat3","rx",",","vec3","bH",")","{","vec3","q_","=","bH","*","rx","[","1","]",";","vec4","qZ","=","ry","(","rx",")",";","q_","=","T","(","qZ",",","q_",")",";","return","q_",";","}","vec3","bI","(","mat3","rx",",","vec3","rz",")","{","vec3","q_","=","rz","/","rx","[","1","]",";","vec4","qZ","=","ry", "(","rx",")",";","q_","=","T","(","qZ",",","q_",")",";","return","q_",";","}","mat3","aZ","(","in","vec3","rj",",","in","mat3","rx",")","{","rx","[","0","]","=","rj",";","return","rx",";","}","vec3","ex","(","in","mat3","rx",")","{","return","rx","[","0","]",";","}","mat3","a_","(","in","vec3","hK",",","in","mat3","rx",")","{","rx","[","1","]","=","hK",";","return","rx",";","}","vec3","rA","(","in","mat3","rx",")","{","return","rx","[","1","]",";","}","mat3","bd","(","in","mat3","rx",",","in","mat3", "rB",")","{","mat3","rC",";","vec3","rj","=","ex","(","rx",")",";","vec3","rD","=","ex","(","rB",")",";","vec3","hK","=","rA","(","rx",")",";","vec3","rE","=","rA","(","rB",")",";","vec4","qZ","=","ry","(","rx",")",";","vec4","rF","=","ry","(","rB",")",";","vec3","rG","=","rl","(","rj",",","hK",",","qZ",",","rD",")",";","rC","=","aZ","(","rG",",","rC",")",";","vec3","rH","=","hK","*","rE",";","rC","=","a_","(","rH",",","rC",")",";","vec4","rI","=","rc","(","qZ",",","rF",")",";","rC","=","bc","(", "rI",",","rC",")",";","return","rC",";","}","mat3","bd","(","in","mat3","rx",",","in","mat3","rB",",","out","mat3","q_",")","{","q_","=","bd","(","rx",",","rB",")",";","return","q_",";","}","vec4","R","(","in","vec4","rJ",")","{","return","normalize","(","rJ",")",";","}","vec4","R","(","in","vec4","rJ",",","out","float","P",",","out","float","Q",")","{","vec4","qZ","=","R","(","rJ",")",";","P","=","length","(","rJ",")","*","M_PI",";","Q","=","sign","(","rJ","[","3","]",")",";","return","R","(","rJ", ")",";","}"]}]}}]}]},exports["include/mirror.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"MIRROR_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"MIRROR_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"USE_BSDF_SKY_DIM",TOKENS:[""]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}, "REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2},"REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"define",NAME:"REFL_BUMP",TOKENS:["0.1"]},{TYPE:"txt",TOKENS:["float","rK","(","in","vec3","D",",","vec3","eN",",","float","ec",",","float","fk",")","{","vec3","fi","=","normalize","(","eN","+","D",")",";","float","fj","=","1.0","-","dot", "(","D",",","fi",")",";","float","r","=","fk","+","(","1.0","-","fk",")","*","pow","(","fj",",","ec",")",";","return","r",";","}","void","cQ","(","inout","vec3","rL",",","vec3","D",",","vec3","U",",","float","rM",",","mat3","N",")","{","vec3","eN","=","reflect","(","-","D",",","U",")",";","float","ec","=","u_fresnel_params","[","0","]",";","float","fk","=","u_fresnel_params","[","1","]",";","float","r","=","1.0",";","if","(","ec","!=","0.0",")","r","=","rK","(","D",",","eN",",","ec",",","fk",")", ";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_TYPE","REFL_CUBE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","eS","=","GLSL_TEXTURE_CUBE","(","u_cube_reflection",",","eN",")",".","xyz",";"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_NONE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["vec3","rN","=","u_refl_plane",".","xyz","*","dot","(","U",",","u_refl_plane",".","xyz",")",";","vec3","rO","=","U","-","rN",";","vec2","rP","=","bI","(","N",",","rO",")",".","xy",";","vec2","rQ","=","l",".","xy","/","l",".","z",";","rQ","+=","rP","*","REFL_BUMP",";","vec3","eS","=","GLSL_TEXTURE","(","u_plane_reflection",",","rQ",")",".","rgb",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","eS","=","vec3","(","1.0",")",";","rM","=","0.0",";"]}]}}]}]}},{TYPE:"elif", EXPRESSION:["REFLECTION_TYPE","REFL_MIRRORMAP",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","eS","=","GLSL_TEXTURE_CUBE","(","u_mirrormap",",","eN",")",".","xyz",";"]}]}}]},{TYPE:"txt",TOKENS:["bG","(","eS",".","rgb",")",";","rL","=","mix","(","rL",",","eS",",","rM","*","r",")",";","}"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_PBR_STANDARD",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","rU","(","float","eg",",","vec3", "rR",",","float","ef",")","{","float","rS","=","1.0","-","eg",";","float","rT","=","rS","*","rS",";","rT","=","rT","*","rS","*","rT",";","return","rR","+","(","max","(","vec3","(","1.0","-","ef",")",",","rR",")","-","rR",")","*","rT",";","}","vec3","sf","(","vec3","rL",",","vec3","rV",",","vec3","D",",","vec3","U",",","float","rW",",","float","rX",",","mat3","N",")","{","float","rY","=","max","(","dot","(","normalize","(","U",")",",","D",")",",","_0_0",")",";","vec3","eN","=","reflect","(","-","D", ",","U",")",";","float","ef","=","sqrt","(","rX",")",";","vec3","rR","=","vec3","(","0.04",")",";","rR","=","mix","(","rR",",","rV",",","rW",")",";","vec3","rZ","=","rU","(","rY",",","rR",",","ef",")",";","vec3","r_","=","rZ",";","vec3","sa","=","vec3","(","_1_0",")","-","r_",";","sa","*=","vec3","(","1.0","-","rW",")",";","vec3","bx","=","GLSL_TEXTURE_CUBE","(","u_cube_irradiance",",","U",")",".","xyz",";","vec3","sb","=","bx","*","rL",";","const","float","sc","=","5.0",";","vec3","el","=","GLSL_TEXTURE_CUBE_LOD", "(","u_cube_r_convolution",",","eN",",","ef","*","sc",")",".","rgb",";","vec2","sd","=","GLSL_TEXTURE","(","u_brdf",",","vec2","(","rY",",","ef",")",")",".","rg",";","vec3","cO","=","el","*","(","rZ","*","sd",".","x","+","sd",".","y",")",";","vec3","se","=","(","sa","*","sb","+","cO",")",";","return","se",";","}"]}]}},{TYPE:"elif",EXPRESSION:["REFLECTION_TYPE","REFL_PBR_SIMPLE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","rU","(","float","eg",",","vec3","rR", ",","float","ef",")","{","float","rS","=","1.0","-","eg",";","float","rT","=","rS","*","rS",";","rT","=","rT","*","rS","*","rT",";","return","rR","+","(","max","(","vec3","(","1.0","-","ef",")",",","rR",")","-","rR",")","*","rT",";","}","vec3","sf","(","vec3","rL",",","vec3","rV",",","vec3","D",",","vec3","U",",","float","rW",",","float","rX",",","mat3","N",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_BSDF_SKY_DIM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ec","=","normalize", "(","U",")",";","float","rY","=","max","(","dot","(","ec",",","D",")",",","_0_0",")",";","vec3","eN","=","reflect","(","-","D",",","U",")",";","float","sg","=","max","(","2.0","/","(","rX","*","rX",")","-","2.0",",","_0_0",")",";","vec3","rR","=","vec3","(","0.04",")",";","rR","=","mix","(","rR",",","rV",",","rW",")",";","vec3","rZ","=","rU","(","rY",",","rR",",","sqrt","(","rX",")",")",";","vec3","r_","=","rZ",";","vec3","sa","=","vec3","(","_1_0",")","-","r_",";","sa","*=","1.0","-","rW",";","vec3", "sb","=","GLSL_TEXTURE_CUBE_LOD","(","u_sky_reflection",",","ec",",","100.0",")",".","xyz",";","bG","(","sb",")",";","sb","*=","rL",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["GLSL1"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","sh","=","u_bsdf_cube_sky_dim",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","sh","=","float","(","textureSize","(","u_sky_reflection",",","0",")",".","x",")",";"]}]}}]},{TYPE:"txt",TOKENS:["float","si","=","log2","(","(","sh","*", "sqrt","(","3.0",")",")","/","sqrt","(","sg","+","_1_0",")",")",";","vec3","cO","=","GLSL_TEXTURE_CUBE_LOD","(","u_sky_reflection",",","eN",",","si",")",".","xyz",";","bG","(","cO",")",";","vec3","se","=","sa","*","sb","+","r_","*","cO",";","return","se",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","rL",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]}}]}]},exports["include/nodes.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"NODES_GLSLF",GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"NODES_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"CAUSTICS",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"DOUBLE_SIDED_LIGHTING",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"USE_REFRACTION",TOKENS:["0"]},{TYPE:"var",NAME:"HAS_REFRACT_TEXTURE",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_TYPE",TOKENS:["REFL_NONE"]},{TYPE:"var",NAME:"USE_DERIVATIVES_EXT", TOKENS:["0"]},{TYPE:"var",NAME:"CAMERA_TYPE",TOKENS:["CAM_TYPE_PERSP"]},{TYPE:"var",NAME:"IS_WORLD",TOKENS:["0"]},{TYPE:"var",NAME:"USE_BSDF_PRINCIPLED_REFRACT",TOKENS:["0"]},{TYPE:"var",NAME:"USE_BSDF_TRANSPARENT_REFRACT",TOKENS:["0"]},{TYPE:"var",NAME:"USE_BSDF_TRANSPARENT_ALPHA",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_BSDF_BEGIN",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"mirror.glslf"},{TYPE:"include", FILE:"shadow.glslf"},{TYPE:"include",FILE:"environment.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION","USE_REFRACTION",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"refraction.glslf"}]}}]},{TYPE:"include",FILE:"color_util.glslf"},{TYPE:"include",FILE:"math.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN", "vec3","sj",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_B4W_REFRACTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sm","(","in","vec3","sk",",","in","float","sl",")","{","vec3","fa","=","vec3","(","_0_0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_REFRACTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["fa","=","cS","(","l",",","sk",".","xy","*","sl",")",";"]}]}},{TYPE:"elif",EXPRESSION:["HAS_REFRACT_TEXTURE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["fa", "=","GLSL_TEXTURE","(","u_refractmap",",","l",".","xy","/","l",".","z",")",".","rgb",";","bG","(","fa",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","fa",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_SEPHSV",{TYPE:"logical_or_expr",PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","kj","(","vec3","rgb",")","{","vec4","hM","=","vec4","(","_0_0", ",","-","_1_0","/","3.0",",","2.0","/","3.0",",","-","_1_0",")",";","vec4","p","=","mix","(","vec4","(","rgb",".","bg",",","hM",".","wz",")",",","vec4","(","rgb",".","gb",",","hM",".","xy",")",",","step","(","rgb",".","b",",","rgb",".","g",")",")",";","vec4","q","=","mix","(","vec4","(","p",".","xyw",",","rgb",".","r",")",",","vec4","(","rgb",".","r",",","p",".","yzx",")",",","step","(","p",".","x",",","rgb",".","r",")",")",";","float","dC","=","q",".","x","-","min","(","q",".","w",",","q",".","y", ")",";","float","iF","=","1.0e-10",";","return","vec3","(","abs","(","q",".","z","+","(","q",".","w","-","q",".","y",")","/","(","6.0","*","dC","+","iF",")",")",",","dC","/","(","q",".","x","+","iF",")",",","q",".","x",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_COMBHSV",{TYPE:"logical_or_expr",PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3", "kl","(","vec3","kk",")","{","vec4","hM","=","vec4","(","_1_0",",","2.0","/","3.0",",","_1_0","/","3.0",",","3.0",")",";","vec3","p","=","abs","(","fract","(","vec3","(","kk",".","r",",","kk",".","r",",","kk",".","r",")","+","hM",".","xyz",")","*","6.0","-","hM",".","www",")",";","return","kk",".","b","*","mix","(","hM",".","xxx",",","clamp","(","p","-","hM",".","xxx",",","_0_0",",","_1_0",")",",","kk",".","g",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_UV","USE_NODE_B4W_PARALLAX", "USE_NODE_UV_MERGED","USE_NODE_TEX_COORD_UV","USE_NODE_UVMAP",{TYPE:"logical_or_expr",PLACES:5}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sn","(","vec2","gX",")","{","return","vec3","(","gX","*","2.0","-","vec2","(","_1_0",",","_1_0",")",",","_0_0",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEXTURE_COLOR","USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","so","(","vec3", "rk",")","{","return","vec2","(","rk",".","xy","*","_0_5","+","vec2","(","_0_5",",","_0_5",")",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_FRESNEL","USE_NODE_LAYER_WEIGHT",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","sv","(","vec3","sr",",","vec3","rz",",","float","su",")","{","float","dx","=","abs","(","dot","(","sr",",","rz",")",")",";","float","g","=","su","*","su","-","_1_0","+","dx","*","dx",";","float","ea",";","if","(", "g",">","_0_0",")","{","g","=","sqrt","(","g",")",";","float","cG","=","(","g","-","dx",")","/","(","g","+","dx",")",";","float","hS","=","(","dx","*","(","g","+","dx",")","-","_1_0",")","/","(","dx","*","(","g","-","dx",")","+","_1_0",")",";","ea","=","_0_5","*","cG","*","cG","*","(","_1_0","+","hS","*","hS",")",";","}","else","{","ea","=","_1_0",";","}","return","ea",";","}"]}]}}]},{TYPE:"node",NAME:"CAMERA",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"sU",QUALIFIER:["vec3"],IS_OPTIONAL:true}, {TYPE:"node_out",NAME:"sV",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"sW",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_sU"],STATEMENTS:[{TYPE:"txt",TOKENS:["sU","=","normalize","(","sR",".","xyz",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_sV"],STATEMENTS:[{TYPE:"txt",TOKENS:["sV","=","abs","(","sR",".","z",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_sW"], STATEMENTS:[{TYPE:"txt",TOKENS:["sW","=","length","(","sR",".","xyz",")",";"]}]}]}]},{TYPE:"node",NAME:"COMBRGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"sX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"sY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"sZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"s_",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["s_","=","vec3","(","sX",",","sY",",","sZ",")",";"]}]},{TYPE:"node", NAME:"COMBHSV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"ta",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"td",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["td","=","kl","(","vec3","(","ta",",","tb",",","tc",")",")",";"]}]},{TYPE:"node",NAME:"EMPTY_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"te",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["te","=","vec3","(","-","_1_0",",","-","_1_0",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"EMPTY_VC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tf",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tf","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sw",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["tg","=","sn","(","sw",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_OR",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"th",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["th","=","2.0","*","sj","-","vec3","(","_1_0",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"ti",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sx",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["ti","=","max","(","vec3","(","_0_0",")",",","sx",")",";","bG","(","ti",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC1",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sy",QUALIFIER:["GLSL_IN","float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tj","=","max","(","_0_0",",","sy",")",";","bG","(","tj",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC2",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tk",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sz",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tk","=","max","(","_0_0",",","sz","[","0","]",")",";","tl","=","max","(","_0_0",",","sz","[","1","]",")",";","bG","(","tk",")",";","bG","(","tl",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC3",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tm",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tn", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"to",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sA",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tm","=","max","(","_0_0",",","sA","[","0","]",")",";","tn","=","max","(","_0_0",",","sA","[","1","]",")",";","to","=","max","(","_0_0",",","sA","[","2","]",")",";","bG","(","tm",")",";","bG","(","tn",")",";","bG","(","to",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_NO",NODE_VARS:[{TYPE:"node_var", NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"tr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tu",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["tu","=","tr",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["tu","=","sK",".","xyz",";"]}]}]}]},{TYPE:"node",NAME:"GEOMETRY_FB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tv",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["tv","=","(","gl_FrontFacing",")","?","_0_0",":","_1_0",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["tv","=","(","gl_FrontFacing",")","?","_1_0",":","_0_0",";"]}]}]}]},{TYPE:"node",NAME:"GEOMETRY_BF",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tw",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["tw","=","(","gl_FrontFacing",")","?","_1_0",":","_0_0",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["tw","=","(","gl_FrontFacing",")","?","_0_0",":","_1_0",";"]}]}]}]},{TYPE:"node",NAME:"GEOMETRY_VW",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tx",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tx","=","-","_","(","u_view_tsr_frag", ",","oy",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_LO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"ty",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ty","=","sR",".","xyz",";"]}]},{TYPE:"node",NAME:"GEOMETRY_GL",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tz",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tz","=","ow",";"]}]},{TYPE:"node",NAME:"GEOMETRY_IN",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tA",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["tA","=","oy",";"]}]},{TYPE:"node",NAME:"NEW_GEOMETRY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tG",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"tH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tB","=","vec3","(","_0_0",")",";","tC","=","vec3","(","_0_0",")",";","tD","=","vec3","(","_0_0",")",";","tE","=","vec3","(","_0_0",")",";","tF","=","vec3","(","_0_0",")",";","tG","=","vec3","(","_0_0",")",";","tH","=","_0_0",";","tI","=","_0_0",";"]}]},{TYPE:"node",NAME:"HUE_SAT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"tJ",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","kk","=","kj","(","tN",")",";","kk","[","0","]","+=","(","tJ","-","_0_5",")",";","if","(","kk","[","0","]",">","_1_0", ")","kk","[","0","]","-=","_1_0",";","else","if","(","kk","[","0","]","<","_0_0",")","kk","[","0","]","+=","_1_0",";","kk","*=","vec3","(","_1_0",",","tK",",","tL",")",";","kk","=","mix","(","vec3","(","_1_0",")",",","mix","(","vec3","(","_0_0",")",",","kk",",","step","(","vec3","(","_0_0",")",",","kk",")",")",",","step","(","kk",",","vec3","(","_1_0",")",")",")",";","tO","=","mix","(","tN",",","kl","(","kk",")",",","tM",")",";"]}]},{TYPE:"node",NAME:"INVERT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"tP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tR",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tR","=","mix","(","tQ",",","vec3","(","_1_0",")","-","tQ",",","tP",")",";"]}]},{TYPE:"node",NAME:"LAMP",NODE_VARS:[{TYPE:"node_var",NAME:"LAMP_TYPE",TOKENS:["HEMI"]},{TYPE:"node_var",NAME:"LAMP_INDEX",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_USE_SPHERE",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_SPOT_SIZE", TOKENS:["0.8"]},{TYPE:"node_var",NAME:"LAMP_SPOT_BLEND",TOKENS:["0.03"]},{TYPE:"node_var",NAME:"LAMP_LIGHT_DIST",TOKENS:["30.0"]}],DECLARATIONS:[{TYPE:"node_out",NAME:"tS",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"tT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tV",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_INDEX",1,{TYPE:"negative_expr", PLACES:1},{TYPE:"non_equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tS"],STATEMENTS:[{TYPE:"txt",TOKENS:["tS","=","u_lamp_light_color_intensities","[","LAMP_INDEX","]",";"]}]}]},{TYPE:"txt",TOKENS:["vec3","tW","=","u_lamp_light_directions","[","LAMP_INDEX","]",";","vec3","tX","=","u_lamp_light_positions","[","LAMP_INDEX","]",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2},"LAMP_TYPE","POINT", {TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["tT","=","h","-","tX",";","tU","=","length","(","tT",")",";","tT","=","normalize","(","tT",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tV"],STATEMENTS:[{TYPE:"txt",TOKENS:["tV","=","LAMP_LIGHT_DIST","/","(","LAMP_LIGHT_DIST","+","tU","*","tU",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt", TOKENS:["float","pb","=","dot","(","-","tT",",","tW",")",";","pb","*=","smoothstep","(","_0_0",",","_1_0",",","(","pb","-","LAMP_SPOT_SIZE",")","/","LAMP_SPOT_BLEND",")",";","tV","*=","pb",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_USE_SPHERE"],STATEMENTS:[{TYPE:"txt",TOKENS:["tV","*=","max","(","LAMP_LIGHT_DIST","-","tU",",","_0_0",")","/","LAMP_LIGHT_DIST",";"]}]}]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tT"],STATEMENTS:[{TYPE:"txt", TOKENS:["tT","=","tW",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tU"],STATEMENTS:[{TYPE:"txt",TOKENS:["tU","=","length","(","tX","-","h",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tV"],STATEMENTS:[{TYPE:"txt",TOKENS:["tV","=","_1_0",";"]}]}]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tS"],STATEMENTS:[{TYPE:"txt",TOKENS:["tS","=","vec3","(","_0_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["tT", "=","vec3","(","_0_0",")",";","tU","=","0.0",";"]}]}]}]},{TYPE:"node",NAME:"NORMAL",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"tY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tZ",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"t_",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"sB",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["tZ","=","sB",";"]}]}]}, {TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_t_"],STATEMENTS:[{TYPE:"txt",TOKENS:["t_","=","-","dot","(","tY",",","sB",")",";"]}]}]}]},{TYPE:"node",NAME:"B4W_VECTOR_VIEW",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"ua",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ub",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ub","=","-","_","(","u_view_tsr_frag",",","ua",")",";"]}]},{TYPE:"node",NAME:"BSDF_BEGIN",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"uc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ud",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ue",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uf",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ug",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ui",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"uk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ul",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"um",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"un",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uo",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"up",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ur",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"us",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ut",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uu",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uv",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uw",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ux",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uy",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uz",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uC",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ur","=","ud",";","us","=","uf",";","ut","=","ui",";","ux","=","ud",";","uy","=","uf",";","uz","=","ul",";","uA","=","um",";","uB","=","un",";","uC","=","uo",";","up","=","sS","*","ur",";","uq","=","sT","*","u_environment_energy","*","cE","(","ut",")", ";","uw","=","cH","(","ur",")",";","H","=","uw",";","uu","[","0","]","=","ue",";","uu","[","1","]","=","ug",";","uu","[","2","]","=","uh",";","uv","[","0","]","=","uj",";","uv","[","1","]","=","uk",";"]}]},{TYPE:"node",NAME:"BSDF_END",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"uD",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uG",QUALIFIER:["vec4"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"uH",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uM",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uN",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uO",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"uP",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","uQ","=","clamp","(","uG","[","1","]",",","_0_0",",","_1_0",")",";","float","rW","=","uG","[","2","]",";","uO","=","uD",".","rgb",";","uP","=","_1_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["REFLECTION_TYPE","REFL_PBR_STANDARD",{TYPE:"equal_expr",PLACES:2},"REFLECTION_TYPE","REFL_PBR_SIMPLE",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt", TOKENS:["uO","+=","sf","(","uI",",","uJ",",","oy",",","uF",",","rW",",","uQ",",","mat3","(","_0_0",")",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["uO","+=","sf","(","uI",",","uJ",",","oy",",","uF",",","rW",",","u_view_tsr_frag",")",";"]}]}]},{TYPE:"txt",TOKENS:["uO","+=","uE",";","uO","=","mix","(","uO",",","uK",",","uL",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NODE_BSDF_TRANSPARENT"], STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_BSDF_TRANSPARENT_REFRACT"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","uR","=","GLSL_TEXTURE","(","u_refractmap",",","l",".","xy","/","l",".","z",")",".","rgb",";","bG","(","uR",")",";","uM","=","uM","*","uR",";","uO","+=","uM",";","uP","=","_1_0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_BSDF_TRANSPARENT_ALPHA"],STATEMENTS:[{TYPE:"txt",TOKENS:["uO","=","mix","(","uM",",","uO",",","uN",")",";","uP","=","uN", ";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_BSDF_PRINCIPLED_REFRACT"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","uS","=","uH","[","0","]",";","float","uT","=","uH","[","1","]",";","float","uU","=","clamp","(","uG","[","0","]",",","_0_0",",","_1_0",")",";","vec3","en","=","oy",";","vec3","ei","=","normalize","(","uF",")",";","vec3","uV","=","refract","(","-","en",",","ei",",","_1_0","/","uS",")",";","uV","*=","length","(","u_camera_eye_frag","-","h",")",";","vec3","uW","=", "aC","(","u_proj_matrix_frag","*","vec4","(","ap","(","u_view_tsr_frag",",","ow","+","uV",")",",","_1_0",")",")",";","vec2","uX","=","uW",".","xy","/","uW",".","z",";","const","float","sc","=","10.0",";","vec3","fa","=","GLSL_TEXTURE_LOD","(","u_refractmap",",","uX",".","xy",",","uU","*","sc",")",".","rgb",";","bG","(","fa",")",";","float","e_","=","(","_1_0","-","rW",")","*","uT",";","uO","=","mix","(","uO",",","fa",",","e_",")",";"]}]}]},{TYPE:"txt",TOKENS:["uF",";"]}]},{TYPE:"node",NAME:"BSDF_COMPUTE", NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"uY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uZ",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"u_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"va",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vb",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vd",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","u_",";","float","uU","=","clamp","(","vb","[","0","]",",","_0_0",",","_1_0",")",";","float","uQ","=","clamp","(","vb","[","1","]",",","_0_0",",","_1_0",")",";","float","rW","=","vb","[","2","]",";","vec3","p_","=","normalize","(","oy","+","uY",")",";","vec3","ve","=","(","_1_0","-","va",")","*","vec3","(","dot","(","rz",",","uY",")",",","max","(","dot","(","uY",",","p_",")",",","_0_0",")",",","max","(","dot","(","u_",",","p_",")", ",","_0_0",")",")","+","va",";","float","pj","=","ve",".","x",";","float","vf","=","ve",".","y",";","float","vg","=","ve",".","z",";","vc","=","_0_0",";","if","(","uZ",".","r","!=","_0_0",")","{","vc","=","pj",";","if","(","uU",">","_0_0",")","{","float","pz","=","max","(","dot","(","rz",",","oy",")",",","_0_0",")",";","float","pA","=","uU","*","uU",";","float","cG","=","_1_0","-","_0_5","*","(","pA","/","(","pA","+","0.33",")",")",";","vec3","pB","=","uY","-","pj","*","rz",";","vec3","pC","=","oy", "-","pz","*","rz",";","if","(","length","(","pB",")","==","_0_0","||","length","(","pC",")","==","_0_0","||","abs","(","pj",")",">","_1_0","||","abs","(","pz",")",">","_1_0",")","vc","=","pj","*","cG",";","else","{","float","pD","=","acos","(","pj",")",";","float","pE","=","acos","(","pz",")",";","vec3","pF","=","normalize","(","pB",")",";","vec3","pG","=","normalize","(","pC",")",";","float","a",",","b",";","a","=","max","(","pD",",","pE",")",";","b","=","min","(","pD",",","pE",")",";","b","*=", "0.95",";","float","t","=","max","(","dot","(","pF",",","pG",")",",","_0_0",")",";","float","hS","=","0.45","*","(","pA","/","(","pA","+","0.09",")",")",";","vc","=","pj","*","(","cG","+","(","hS","*","t","*","sin","(","a",")","*","tan","(","b",")",")",")",";","}","}","vc","=","max","(","vc",",","_0_0",")","/","M_PI",";","}","float","L","=","uQ",";","float","vh","=","L","*","L",";","float","d_","=","(","vg","*","vh","-","vg",")","*","vg","+","_1_0",";","float","cD","=","vh","/","(","M_PI","*","d_", "*","d_",")",";","float","vi",";","float","vj",";","float","vk","=","_1_0","-","vf",";","float","vl","=","vk","*","vk",";","vl","=","vl","*","vk","*","vl",";","vi","=","_1_0",";","vj","=","vl",";","float","hM","=","L","/","2.0",";","float","vm","=","hM","*","hM",";","float","vn","=","_1_0","-","vm",";","float","vo","=","_1_0","/","(","vf","*","vf","*","vn","+","vm",")",";","vi","*=","vo",";","vj","*=","vo",";","float","rR","=","mix","(","0.04",",","_1_0",",","rW",")",";","float","vp","=","mix","(", "vj",",","vi",",","rR",")",";","vd","=","max","(","pj","*","cD","*","vp",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"BSDF_PRINCIPLED",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"vq",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vs",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vt",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vu",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vw",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vx",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vy",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vB",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vC", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vD",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vz","=","vq",".","rgb",";","vA","=", "vs","*","vs",";","vx","=","vq",".","rgb",";","vy","=","vs",";","vB","=","vr",";","vD","=","vt",";","vE","=","vu",";","vG","=","_0_0",";","vI","=","_1_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["vC","=","vv",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vC","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["vw",";","vF","=","vec3","(","_0_0",")",";","vH","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"BSDF_ANISOTROPIC",NODE_VARS:[], DECLARATIONS:[{TYPE:"node_in",NAME:"vJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vP", "=","vJ",";","vK",";","vL",";","vM",";","vN",";","vO",";"]}]},{TYPE:"node",NAME:"BSDF_DIFFUSE",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"vQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vS",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"vV",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"v_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wa",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wb",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"wc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"we",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vU","=","vQ",";","vV","=","vR",";","vX","=","_1_0",";","vY","=","_0_0",";","v_","=","1.45",";","wa","=","_0_0",";","wc","=","_0_0",";","we","=","_1_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["vZ","=","vS", ";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vZ","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["vT",";","vW","=","vec3","(","_0_0",")",";","wb","=","vec3","(","_0_0",")",";","wd","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"BSDF_GLASS",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wf",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wg",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wi",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wj",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wj","=","wf",";","wg",";","wh",";","wi",";"]}]},{TYPE:"node",NAME:"BSDF_GLOSSY",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"wk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wm",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wn",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wp",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ws",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wv", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wB",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wD",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wq","=","wk",";","wr","=","wl",";","ws","=","_1_0",";","wu","=","1.45",";","wv","=","_0_0",";","wB","=","_0_0",";","wD","=","_1_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["wt","=","wm",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["wt","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["wn",";","wo","=","vec3","(","_0_0",")",";","wp","=","_0_0",";","wA","=","vec3","(","_0_0",")",";","wC","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"BSDF_HAIR",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wF",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"wG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wI",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wI","=","wE",";","wF",";","wG",";","wH",";"]}]},{TYPE:"node",NAME:"BSDF_TRANSPARENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wL",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wO",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wS",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wT", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wW",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wV","=","wJ",";","wP","=","_0_0",";","wU","=","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_BSDF_TRANSPARENT_ALPHA"],STATEMENTS:[{TYPE:"txt",TOKENS:["wW","=","_0_0",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt", TOKENS:["wW","=","_1_0",";"]}]}]},{TYPE:"txt",TOKENS:["wQ","=","ox",";","wK",";","wL","=","vec3","(","_0_0",")",";","wM","=","_0_0",";","wN","=","vec3","(","_0_0",")",";","wO","=","_0_0",";","wT","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"BSDF_TRANSLUCENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wZ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["wZ","=","wX",";","wY",";"]}]},{TYPE:"node",NAME:"BSDF_REFRACTION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"w_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xa",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xd",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xd","[","0","]","=","xd","[","1","]","=","xd", "[","2","]","=","_0_0",";","w_",";","xa",";","xb",";","xc",";"]}]},{TYPE:"node",NAME:"BSDF_TOON",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xe",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xg",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xi",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xi","=","xe",";","xf", ";","xg",";","xh",";"]}]},{TYPE:"node",NAME:"BSDF_VELVET",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xj",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xl",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xm",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xm","=","xj",";","xk",";","xl",";"]}]},{TYPE:"node",NAME:"SUBSURFACE_SCATTERING",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"xn",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xo",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xp",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xs",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xt",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xt","[","0","]","=","xt","[","1", "]","=","xt","[","2","]","=","_0_0",";","xn",";","xp",";","xq",";","xr",";","xs",";","xo",";"]}]},{TYPE:"node",NAME:"EMISSION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xu",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xD", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xI",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"xL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xM",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xJ","=","xv","*","xu",";","xF","=","_0_0",";","xK","=","_1_0",";","xM","=","_1_0",";","xG","=","ox",";","xH","=","1.45",";","xI","=","_0_0",";","xA",";","xB","=","vec3","(","_0_0",")",";","xC","=","_0_0",";","xD","=","vec3","(","_0_0",")",";","xE","=","_0_0",";"]}]},{TYPE:"node",NAME:"AMBIENT_OCCLUSION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xN", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xO","[","0","]","=","xO","[","1","]","=","xO","[","2","]","=","_0_0",";","xN",";"]}]},{TYPE:"node",NAME:"HOLDOUT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"xP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xP","[","0","]","=","xP","[","1","]","=","xP","[","2","]","=","_0_0",";"]}]},{TYPE:"node",NAME:"VOLUME_ABSORPTION",NODE_VARS:[], DECLARATIONS:[{TYPE:"node_in",NAME:"xQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xS",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xS","[","0","]","=","xS","[","1","]","=","xS","[","2","]","=","_0_0",";","xQ",";","xR",";"]}]},{TYPE:"node",NAME:"VOLUME_SCATTER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xU",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xV",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xW",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xW","[","0","]","=","xW","[","1","]","=","xW","[","2","]","=","_0_0",";","xT",";","xU",";","xV",";"]}]},{TYPE:"node",NAME:"BUMP",NODE_VARS:[{TYPE:"node_var",NAME:"INVERT",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"xX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"xY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"x_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ya",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","aM","=","xY",";","float","gL","=","xX",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["INVERT"],STATEMENTS:[{TYPE:"txt",TOKENS:["aM","=","-","_1_0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"], STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","U","=","x_",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","U","=","ox",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_DERIVATIVES_EXT"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","yb","=","dFdx","(","ow",")",";","vec3","yc","=","dFdy","(","ow",")",";","vec3","yd","=","cross","(","yc",",","U",")",";","vec3","ye","=","cross","(","U",",","yb",")",";","float","dy","=","dot","(","yb",",","yd",")",";","float","yf","=","abs","(", "dy",")",";","vec3","yg","=","dFdx","(","xZ",")","*","yd","+","dFdy","(","xZ",")","*","ye",";","gL","=","max","(","gL",",","_0_0",")",";","ya","=","normalize","(","yf","*","U","-","aM","*","sign","(","dy",")","*","yg",")",";","ya","=","normalize","(","gL","*","ya","+","(","_1_0","-","gL",")","*","U",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["ya","=","U",";"]}]}]}]},{TYPE:"node",NAME:"DISPLACEMENT_BUMP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yh",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"yi",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","aM","=","0.1",";","vec3","U","=","ox",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_DERIVATIVES_EXT"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","yb","=","dFdx","(","ow",")",";","vec3","yc","=","dFdy","(","ow",")",";","vec3","yd","=","cross","(","yc",",","U",")",";","vec3","ye","=","cross","(","U",",","yb",")",";","float","dy","=","dot","(","yb",",","yd",")",";","float","yf","=", "abs","(","dy",")",";","vec3","yg","=","dFdx","(","yh",")","*","yd","+","dFdy","(","yh",")","*","ye",";","yi","=","normalize","(","yf","*","U","-","aM","*","sign","(","dy",")","*","yg",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["yi","=","U",";"]}]}]}]},{TYPE:"node",NAME:"NORMAL_MAP",NODE_VARS:[{TYPE:"node_var",NAME:"SPACE",TOKENS:["NM_TANGENT"]},{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"yj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"yk",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yl",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ym",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","yn","=","yl",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","yn","=","sM",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["SPACE","NM_TANGENT",{TYPE:"equal_expr",PLACES:2}], STATEMENTS:[{TYPE:"txt",TOKENS:["ym","=","2.0","*","yk",".","xyz","-","_1_0",";","ym","=","sQ","*","ym",";"]}]},{TYPE:"node_elif",EXPRESSION:["SPACE","NM_OBJECT",{TYPE:"equal_expr",PLACES:2},"SPACE","NM_BLENDER_OBJECT",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["ym","=","2.0","*","yk",".","xyz","-","_1_0",";","ym",".","yz","*=","-","_1_0",";","ym","=","bI","(","u_model_tsr",",","ym",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["SPACE","NM_WORLD",{TYPE:"equal_expr", PLACES:2},"SPACE","NM_BLENDER_WORLD",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["ym","=","2.0","*","yk",".","xyz","-","_1_0",";","ym",".","yz","*=","-","_1_0",";"]}]}]},{TYPE:"txt",TOKENS:["float","me","=","max","(","yj",",","_0_0",")",";","ym","=","normalize","(","mix","(","yn",",","ym",",","me",")",")",";"]}]},{TYPE:"node",NAME:"VECT_TRANSFORM",NODE_VARS:[{TYPE:"node_var",NAME:"CONVERT_TYPE",TOKENS:["VT_WORLD_TO_OBJECT"]},{TYPE:"node_var",NAME:"VECTOR_TYPE", TOKENS:["VT_VECTOR"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"yo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yp",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_WORLD",{TYPE:"equal_expr",PLACES:2},"CONVERT_TYPE","VT_OBJECT_TO_OBJECT",{TYPE:"equal_expr",PLACES:2},"CONVERT_TYPE","VT_CAMERA_TO_CAMERA",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=", "yo",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["VECTOR_TYPE","VT_POINT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_CAMERA",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_view_tsr_frag",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp", "=","ap","(","u_model_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_model_tsr",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_model_tsr",",","yo",")",";","yp","=","ap","(","u_view_tsr_frag",",","yp",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE", "VT_CAMERA_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_view_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_view_tsr_inverse",",","yo",")",";","yp","=","ap","(","u_model_tsr_inverse",",","yp",")",";"]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_CAMERA", {TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_view_tsr_frag",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_model_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_model_tsr",",","yo",")",";"]}]},{TYPE:"node_elif", EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_model_tsr",",","yo",")",";","yp","=","_","(","u_view_tsr_frag",",","yp",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_CAMERA_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_view_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt", TOKENS:["yp","=","_","(","u_view_tsr_inverse",",","yo",")",";","yp","=","_","(","u_model_tsr_inverse",",","yp",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["VECTOR_TYPE","VT_NORMAL",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","normalize","(","yp",")",";"]}]}]}]}]}]},{TYPE:"node",NAME:"BLACKBODY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yr",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["yr","[","0","]","=","yr","[","1","]","=","yr","[","2","]","=","_0_0",";","yq",";"]}]},{TYPE:"node",NAME:"WAVELENGTH",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"ys",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yt",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yt","[","0","]","=","yt","[","1","]","=","yt","[","2","]","=","_0_0",";","ys",";"]}]},{TYPE:"node",NAME:"SEPXYZ",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yu", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yv","=","yu","[","0","]",";","yA","=","yu","[","1","]",";","yB","=","yu","[","2","]",";"]}]},{TYPE:"node",NAME:"COMBXYZ",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yD", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yF",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yF","[","0","]","=","yC",";","yF","[","1","]","=","yD",";","yF","[","2","]","=","yE",";"]}]},{TYPE:"node",NAME:"BRIGHTCONTRAST",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"yI",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yJ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","b","=","yH","-","yI","*","_0_5",";","yJ","=","max","(","(","_1_0","+","yI",")","*","yG","+","b",",","vec3","(","_0_0",")",")",";"]}]},{TYPE:"node",NAME:"LIGHT_FALLOFF",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yM", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yN",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yO",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yM","=","yN","=","yO","=","_0_0",";","yK",";","yL",";"]}]},{TYPE:"node",NAME:"TEX_SKY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yP",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yQ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yQ","[","0","]","=", "yQ","[","1","]","=","yQ","[","2","]","=","_0_0",";","yP",";"]}]},{TYPE:"node",NAME:"TEX_NOISE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yS",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yW",QUALIFIER:["float"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["yV","[","0","]","=","yV","[","1","]","=","yV","[","2","]","=","_0_0",";","yW","=","_1_0",";","yR",";","yS",";","yT",";","yU",";"]}]},{TYPE:"node",NAME:"TEX_WAVE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"y_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"za", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zb",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zc",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zb","[","0","]","=","zb","[","1","]","=","zb","[","2","]","=","_0_0",";","zc","=","_1_0",";","yX",";","yY",";","yZ",";","y_",";","za",";"]}]},{TYPE:"node",NAME:"TEX_VORONOI",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ze",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zf",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zg",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zf","[","0","]","=","zf","[","1","]","=","zf","[","2","]","=","_0_0",";","zg","=","_1_0",";","zd",";","ze",";"]}]},{TYPE:"node",NAME:"TEX_MUSGRAVE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zi",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"zj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zm",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zp",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zo","[","0","]","=","zo","[", "1","]","=","zo","[","2","]","=","_0_0",";","zp","=","_1_0",";","zh",";","zi",";","zj",";","zk",";","zl",";","zm",";","zn",";"]}]},{TYPE:"node",NAME:"TEX_GRADIENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zs",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zr","[","0","]","=","zr","[","1","]","=","zr","[","2","]","=","_0_0",";","zs","=", "_1_0",";","zq",";"]}]},{TYPE:"node",NAME:"TEX_MAGIC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zA","[","0","]","=","zA","[","1","]","=","zA","[","2","]","=", "_0_0",";","zB","=","_1_0",";","zt",";","zu",";","zv",";"]}]},{TYPE:"node",NAME:"TEX_CHECKER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zH",QUALIFIER:["float"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["zG","[","0","]","=","zG","[","1","]","=","zG","[","2","]","=","_0_0",";","zH","=","_1_0",";","zC",";","zD",";","zE",";","zF",";"]}]},{TYPE:"node",NAME:"TEX_BRICK",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zM", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zN",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zO",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zR","[","0","]","=","zR","[","1","]", "=","zR","[","2","]","=","_0_0",";","zS","=","_1_0",";","zI",";","zJ",";","zK",";","zL",";","zM",";","zN",";","zO",";","zP",";","zQ",";"]}]},{TYPE:"node",NAME:"ADD_SHADER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zV",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zV","=","clamp","(","zT","+","zU",",","vec3","(","_0_0",")",",","vec3","(", "_1_0",")",")",";"]}]},{TYPE:"node",NAME:"MIX_SHADER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zW",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"z_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Aa",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ab",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ac",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ad",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ae",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Af",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ag",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ah",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ai",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Aj",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ak",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Al",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Am",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"An",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ao",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ap",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Aq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ar",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"As",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"At",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Au",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Av",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Aw",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ax",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ay",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Az",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AB",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AD",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AH", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","sqrt","(","clamp","(","zW",",","_0_0",",","_1_0",")",")",";","Ax","=","mix","(","zZ",",","Ak",",","AJ",")",";","Ay","=","mix","(","z_",",","Al",",","AJ",")",";","if","(","Ac",">","_0_0",")","{","if","(","Ao",">","_0_0",")","{","Az","=","mix","(","Aa",",","Am",",","AJ",")",";","AA","=","mix","(","Ab",",","An",",","AJ",")",";","}","else","{","Az", "=","Aa",";","AA","=","Ab",";","}","}","else","{","Az","=","Am",";","AA","=","An",";","}","if","(","Ah",">","_0_0",")","{","if","(","At",">","_0_0",")","{","AF","=","mix","(","Ag",",","As",",","AJ",")",";","}","else","{","AF","=","Ag",";","}","}","else","{","AF","=","As",";","}","AB","=","mix","(","Ac",",","Ao",",","AJ",")",";","AC","=","mix","(","Ad",",","Ap",",","AJ",")",";","AG","=","mix","(","Ah",",","At",",","AJ",")",";","AH","=","mix","(","Ai",",","Au",",","AJ",")",";","AI","=","mix","(","Aj", ",","Av",",","AJ",")",";"]}]},{TYPE:"node",NAME:"UV_MERGED",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sC",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AK"],STATEMENTS:[{TYPE:"txt",TOKENS:["AK","=","sn","(","sC",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AL"], STATEMENTS:[{TYPE:"txt",TOKENS:["AL","=","vec3","(","sC",",","_0_0",")",";"]}]}]}]},{TYPE:"node",NAME:"TEX_COORD_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AM",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sD",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AM","=","vec3","(","sD",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"TEX_COORD_NO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AN",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["AN","=","ox",";"]}]},{TYPE:"node",NAME:"TEX_COORD_GE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["IS_WORLD",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["AO","=","sj",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["AO","=","sJ",";"]}]}]}]},{TYPE:"node",NAME:"TEX_COORD_OB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AP",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["IS_WORLD",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["AP","=","ap","(","u_model_tsr_inverse",",","ow",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["AP","=","sJ",";"]}]}]}]},{TYPE:"node",NAME:"TEX_COORD_CA",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AQ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AQ",".","xy","=","sR",".","xy",";","AQ", ".","z","=","_1_0",";"]}]},{TYPE:"node",NAME:"TEX_COORD_WI",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AR",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AR",".","xy","=","l",".","xy","/","l",".","z",";","AR",".","z","=","_0_0",";"]}]},{TYPE:"node",NAME:"TEX_COORD_RE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AS",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AS","=","reflect","(","-","oy",",","ox",")",";"]}]},{TYPE:"node",NAME:"UVMAP", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sE",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AT","=","vec3","(","sE",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"PARTICLE_INFO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AV",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AW",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"AX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"A_",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AU","=","_0_0",";","AV","=","_0_0",";","AW","=","_0_0",";","AX","=","vec3","(","_0_0",")",";","AY","=","_0_0",";","AZ","=","AX",";","A_","=","AX",";"]}]},{TYPE:"node",NAME:"HAIR_INFO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out", NAME:"Ba",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bd",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Ba","=","_0_0",";","Bb","=","_0_0",";","Bc","=","_0_0",";","Bd","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"OBJECT_INFO",NODE_VARS:[{TYPE:"node_var",NAME:"USE_LOCATION_OUT",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_OBJ_IND_OUT", TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MAT_IND_OUT",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_RANDOM_OUT",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_out",NAME:"Be",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bg",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bh",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_LOCATION_OUT"],STATEMENTS:[{TYPE:"txt", TOKENS:["Be","=","ex","(","u_model_tsr",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OBJ_IND_OUT"],STATEMENTS:[{TYPE:"txt",TOKENS:["Bf","=","u_obj_info",".","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MAT_IND_OUT"],STATEMENTS:[{TYPE:"txt",TOKENS:["Bg","=","u_obj_info",".","g",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_RANDOM_OUT"],STATEMENTS:[{TYPE:"txt",TOKENS:["Bh","=","u_obj_info",".","b",";"]}]}]}]},{TYPE:"node",NAME:"WIREFRAME", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Bi",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bj",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bj","=","Bi",";"]}]},{TYPE:"node",NAME:"TANGENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"Bk",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bk","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"LAYER_WEIGHT",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}], DECLARATIONS:[{TYPE:"node_in",NAME:"Bl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Bm",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bo",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","cw","=","normalize","(","Bm",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","cw", "=","ox",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CAMERA_TYPE","CAM_TYPE_PERSP",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Bp","=","normalize","(","oy",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Bp","=","u_camera_direction",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Bn"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","su","=","max","(","_1_0","-","Bl",",","0.00001",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"non_equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["su","=","gl_FrontFacing","==","false","?","su",":","_1_0","/","su",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["su","=","gl_FrontFacing","?","su",":","_1_0","/","su",";"]}]}]},{TYPE:"txt",TOKENS:["Bn","=","sv","(","Bp",",","cw",",","su",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["Bn","=","_0_0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Bo"], STATEMENTS:[{TYPE:"txt",TOKENS:["Bo","=","abs","(","dot","(","Bp",",","cw",")",")",";","float","eA","=","Bl",";","if","(","eA","!=","_0_5",")","{","eA","=","clamp","(","eA",",","_0_0",",","0.99999",")",";","eA","=","(","eA","<","_0_5",")","?","2.0","*","eA",":","_0_5","/","(","_1_0","-","eA",")",";","Bo","=","pow","(","Bo",",","eA",")",";","}","Bo","=","_1_0","-","Bo",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["Bo","=","_0_0",";"]}]}]}]},{TYPE:"node",NAME:"LIGHT_PATH",NODE_VARS:[], DECLARATIONS:[{TYPE:"node_out",NAME:"Bq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Br",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bs",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bt",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bx", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"By",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bz",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BA",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bq","=","Br","=","Bs","=","_0_0",";","Bt","=","Bu","=","Bv","=","_0_0",";","Bw","=","BA","=","By","=","Bz","=","_0_0",";","Bx","=","_0_0",";"]}]},{TYPE:"node",NAME:"ATTRIBUTE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"BB", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BD",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BB","=","BC","=","vec3","(","_0_0",")",";","BD","=","_0_0",";"]}]},{TYPE:"node",NAME:"SCRIPT",NODE_VARS:[],DECLARATIONS:[],STATEMENTS:[]},{TYPE:"node",NAME:"CURVE_VEC",NODE_VARS:[{TYPE:"node_var",NAME:"READ_R",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_G",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_B", TOKENS:["0"]},{TYPE:"node_var",NAME:"NODE_TEX_ROW",TOKENS:["_0_0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BG",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BG","=","BF",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_R"],STATEMENTS:[{TYPE:"txt",TOKENS:["BG",".","r","=","(","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","_0_5", "*","BF",".","r","+","_0_5",",","NODE_TEX_ROW",")",")",".","r","-","_0_5",")","*","2.0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_G"],STATEMENTS:[{TYPE:"txt",TOKENS:["BG",".","g","=","(","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","_0_5","*","BF",".","g","+","_0_5",",","NODE_TEX_ROW",")",")",".","g","-","_0_5",")","*","2.0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_B"],STATEMENTS:[{TYPE:"txt",TOKENS:["BG",".","b","=","(","GLSL_TEXTURE", "(","u_nodes_texture",",","vec2","(","_0_5","*","BF",".","b","+","_0_5",",","NODE_TEX_ROW",")",")",".","b","-","_0_5",")","*","2.0",";"]}]}]},{TYPE:"txt",TOKENS:["BG","=","mix","(","BF",",","BG",",","BE",")",";"]}]},{TYPE:"node",NAME:"CURVE_RGB",NODE_VARS:[{TYPE:"node_var",NAME:"READ_A",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_R",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_G",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_B",TOKENS:["0"]},{TYPE:"node_var",NAME:"NODE_TEX_ROW",TOKENS:["_0_0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"BH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BJ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_A"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","r","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BI",".","r",",","NODE_TEX_ROW",")",")",".","a",";","float","g","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BI",".","g",",","NODE_TEX_ROW", ")",")",".","a",";","float","b","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BI",".","b",",","NODE_TEX_ROW",")",")",".","a",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","r","=","BI",".","r",";","float","g","=","BI",".","g",";","float","b","=","BI",".","b",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_R"],STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","r","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","r",",","NODE_TEX_ROW",")",")",".","r", ";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","r","=","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_G"],STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","g","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","g",",","NODE_TEX_ROW",")",")",".","g",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","g","=","g",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_B"],STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","b","=","GLSL_TEXTURE", "(","u_nodes_texture",",","vec2","(","b",",","NODE_TEX_ROW",")",")",".","b",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","b","=","b",";"]}]}]},{TYPE:"txt",TOKENS:["BJ","=","mix","(","BI",",","BJ",",","BH",")",";"]}]},{TYPE:"node",NAME:"VALTORGB",NODE_VARS:[{TYPE:"node_var",NAME:"NODE_TEX_ROW",TOKENS:["_0_0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BM", QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BK",",","NODE_TEX_ROW",")",")",";","BL","=","BN",".","rgb",";","BM","=","BN",".","a",";"]}]},{TYPE:"node",NAME:"MAPPING",NODE_VARS:[{TYPE:"node_var",NAME:"MAPPING_SCALE_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_SCALE",TOKENS:["vec3","(","_1_0",")"]},{TYPE:"node_var",NAME:"MAPPING_TRANS_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_TRANS",TOKENS:["vec3", "(","_0_0",")"]},{TYPE:"node_var",NAME:"MAPPING_TRS_MATRIX_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_TRS_MATRIX",TOKENS:["mat4","(","_1_0",")"]},{TYPE:"node_var",NAME:"MAPPING_MIN_CLIP_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_MIN_CLIP",TOKENS:["vec3","(","_0_0",")"]},{TYPE:"node_var",NAME:"MAPPING_MAX_CLIP_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_MAX_CLIP",TOKENS:["vec3","(","_1_0",")"]},{TYPE:"node_var",NAME:"MAPPING_IS_NORMAL",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"BO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","BO",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_SCALE_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","BP","*","MAPPING_SCALE",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_TRANS_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","BP","+","MAPPING_TRANS",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MAPPING_TRS_MATRIX_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","(","MAPPING_TRS_MATRIX","*","vec4","(","BP",",","_1_0",")",")",".","xyz",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_MIN_CLIP_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","max","(","BP",",","MAPPING_MIN_CLIP",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_MAX_CLIP_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","min","(","BP",",","MAPPING_MAX_CLIP",")",";"]}]}]}, {TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_IS_NORMAL"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","normalize","(","BP",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_ADD",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BS","=","BQ", "+","BR",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["BS","=","clamp","(","BS",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_SUBTRACT",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BV",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["BV","=","BT","-","BU",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["BV","=","clamp","(","BV",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MULTIPLY",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BW",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BY",QUALIFIER:["float"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["BY","=","BW","*","BX",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["BY","=","clamp","(","BY",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_DIVIDE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"B_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ca",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Ca","=","(","B_","!=","_0_0",")","?","BZ","/","B_",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ca","=","clamp","(","Ca",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_SINE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cc",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cd",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cd","=","sin","(","Cb",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cd","=","clamp","(","Cd",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cc",";"]}]},{TYPE:"node",NAME:"MATH_COSINE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ce",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cg",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cg","=","cos","(","Ce",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cg","=","clamp","(","Cg",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cf",";"]}]},{TYPE:"node",NAME:"MATH_TANGENT",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}], DECLARATIONS:[{TYPE:"node_in",NAME:"Ch",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ci",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cj",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cj","=","tan","(","Ch",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cj","=","clamp","(","Cj",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Ci",";"]}]},{TYPE:"node",NAME:"MATH_ARCSINE", NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ck",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cm",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cm","=","(","Ck","<=","_1_0","&&","Ck",">=","-","_1_0",")","?","asin","(","Ck",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt", TOKENS:["Cm","=","clamp","(","Cm",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cl",";"]}]},{TYPE:"node",NAME:"MATH_ARCCOSINE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Co",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cp",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cp","=","(","Cn","<=","_1_0","&&","Cn",">=","-","_1_0", ")","?","acos","(","Cn",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cp","=","clamp","(","Cp",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Co",";"]}]},{TYPE:"node",NAME:"MATH_ARCTANGENT",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"Cs",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cs","=","atan","(","Cq",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cs","=","clamp","(","Cs",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cr",";"]}]},{TYPE:"node",NAME:"MATH_POWER",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ct",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Cu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cv",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","Ct","<","_0_0","&&","Cu","!=","floor","(","Cu",")",")","Cv","=","_0_0",";","else","if","(","Cu","==","_0_0",")","Cv","=","_1_0",";","else","if","(","Ct","<","_0_0",")","Cv","=","mix","(","_1_0",",","-","_1_0",",","sign","(","mod","(","-","Cu",",","2.0",")",")",")","*","pow","(","-","Ct",",","Cu",")",";","else","if","(","Ct","==","_0_0",")","Cv", "=","_0_0",";","else","Cv","=","pow","(","Ct",",","Cu",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cv","=","clamp","(","Cv",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_LOGARITHM",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cx",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cy", QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cy","=","(","Cw",">","_0_0","&&","Cx",">","_0_0",")","?","log2","(","Cw",")","/","log2","(","Cx",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cy","=","clamp","(","Cy",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MINIMUM",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cz",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CB","=","min","(","Cz",",","CA",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CB","=","clamp","(","CB",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MAXIMUM",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"CC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CD",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CE",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CE","=","max","(","CC",",","CD",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CE","=","clamp","(","CE",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_ROUND",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CH",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CH","=","floor","(","CF","+","_0_5",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CH","=","clamp","(","CH",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["CG",";"]}]}, {TYPE:"node",NAME:"MATH_LESS_THAN",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CI",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CJ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CK",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CK","=","(","CI","<","CJ",")","?","_1_0",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CK", "=","clamp","(","CK",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_GREATER_THAN",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CN",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CN","=","(","CL",">","CM",")","?","_1_0",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CN","=","clamp","(","CN",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MODULO",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CO",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CQ",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CQ","=","abs","(","CP",")",">","0.000001", "?","mod","(","CO",",","CP",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CQ","=","clamp","(","CQ",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_ABSOLUTE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CS",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CT",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CT","=","abs","(","CR",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CT","=","clamp","(","CT",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["CS",";"]}]},{TYPE:"node",NAME:"MIX_RGB_MIX",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CV",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CX",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","CU",",","_0_0",",","_1_0",")",";","CX","=","mix","(","CV",",","CW",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CX","=","clamp","(","CX",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_ADD",NODE_VARS:[{TYPE:"node_var", NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"C_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Da",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","CY",",","_0_0",",","_1_0",")",";","Da","=","mix","(","CZ",",","CZ","+","C_",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Da","=","clamp","(","Da",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_MULTIPLY",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Db",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"De",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Db",",","_0_0",",","_1_0",")",";","De","=","mix","(","Dc",",","Dc","*","Dd",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["De","=","clamp","(","De",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_SUBTRACT",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Df",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"Dg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Di",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Df",",","_0_0",",","_1_0",")",";","Di","=","mix","(","Dg",",","Dg","-","Dh",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Di","=","clamp","(","Di",",","_0_0",",","_1_0", ")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_SCREEN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Dj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dl",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dm",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Dj",",","_0_0",",","_1_0",")",";","float","Dn", "=","_1_0","-","AJ",";","Dm","=","vec3","(","_1_0",")","-","(","vec3","(","Dn",")","+","AJ","*","(","vec3","(","_1_0",")","-","Dl",")",")","*","(","vec3","(","_1_0",")","-","Dk",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dm","=","clamp","(","Dm",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DIVIDE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Do", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dp",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dr",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Do",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-","AJ",";","Dq","+=","step","(","Dq",",","vec3","(","_0_0",")",")",";","Dr","=","Dn","*","Dp","+","AJ","*","Dp","/","Dq",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dr","=","clamp","(","Dr",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DIFFERENCE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ds",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Du",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dv",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ds",",","_0_0",",","_1_0",")",";","Dv","=","mix","(","Dt",",","abs","(","Dt","-","Du",")",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dv","=","clamp","(","Dv",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DARKEN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Dw",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dx",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dy",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dz",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Dw",",","_0_0",",","_1_0",")",";","Dz","=","min","(","Dx",".","rgb",",","Dy",".","rgb","*","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dz","=","clamp", "(","Dz",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_LIGHTEN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DD",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DA",",","_0_0", ",","_1_0",")",";","DD","=","max","(","DB",".","rgb",",","DC",".","rgb","*","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DD","=","clamp","(","DD",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_OVERLAY",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DF",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"DG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DH",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DE",",","_0_0",",","_1_0",")",";","vec3","DI","=","vec3","(","_1_0","-","AJ",")",";","DH","=","mix","(","DF","*","(","DI","+","2.0","*","AJ","*","DG",")",",","vec3","(","_1_0",")","-","(","DI","+","2.0","*","AJ","*","(","vec3","(","_1_0",")","-","DG",")",")","*","(","vec3","(","_1_0",")","-","DF",")",",","step", "(","_0_5",",","DF",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DH","=","clamp","(","DH",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DODGE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DJ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DL",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"DM",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DJ",",","_0_0",",","_1_0",")",";","vec3","DN","=","vec3","(","_1_0",")","-","AJ","*","DL",";","vec3","DO","=","clamp","(","DK","/","DN",",","_0_0",",","_1_0",")",";","DM","=","mix","(","mix","(","DO",",","vec3","(","_1_0",")",",","step","(","DN",",","vec3","(","_0_0",")",")",")",",","DK",",","step","(","DK",",","vec3","(","_0_0",")",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DM","=","clamp","(","DM",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_BURN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DS",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DP",",","_0_0",",","_1_0",")",";","vec3","ks","=","vec3","(","_1_0","-","AJ",")",";","vec3","DN","=","ks","+","AJ","*","DR",";","vec3","DO","=","clamp","(","vec3","(","_1_0",")","-","(","vec3","(","_1_0",")","-","DQ",")","/","DN",",","_0_0",",","_1_0",")",";","DS","=","mix","(","DO",",","vec3","(","_0_0",")",",","step","(","DN",",","vec3","(","_0_0",")",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"], STATEMENTS:[{TYPE:"txt",TOKENS:["DS","=","clamp","(","DS",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_HUE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DW",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float", "AJ","=","clamp","(","DT",",","_0_0",",","_1_0",")",";","vec3","kk",",","DX",",","DN",";","DW","=","DU",";","DX","=","kj","(","DV",")",";","if","(","DX",".","y","!=","_0_0",")","{","kk","=","kj","(","DW",")",";","kk",".","x","=","DX",".","x",";","DN","=","kl","(","kk",")",";","DW","=","mix","(","DW",",","DN",",","AJ",")",";","}"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DW","=","clamp","(","DW",",","_0_0",",","_1_0",")",";"]}]}]}]}, {TYPE:"node",NAME:"MIX_RGB_SATURATION",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"D_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ea",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DY",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-", "AJ",";","Ea","=","DZ",";","vec3","kk",",","DX",";","kk","=","kj","(","Ea",")",";","if","(","kk",".","y","!=","_0_0",")","{","DX","=","kj","(","D_",")",";","kk",".","y","=","Dn","*","kk",".","y","+","AJ","*","DX",".","y",";","Ea","=","kl","(","kk",")",";","}"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ea","=","clamp","(","Ea",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_VALUE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Eb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ec",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ed",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ee",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Eb",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-","AJ",";","vec3","kk",",","DX",";","kk","=","kj","(","Ec",")",";","DX","=","kj","(","Ed",")", ";","kk",".","z","=","Dn","*","kk",".","z","+","AJ","*","DX",".","z",";","Ee","=","kl","(","kk",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ee","=","clamp","(","Ee",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_COLOR",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ef",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Eg",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Eh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ei",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ef",",","_0_0",",","_1_0",")",";","vec3","kk",",","DX",",","DN",";","Ei","=","Eg",";","DX","=","kj","(","Eh",")",";","if","(","DX",".","y","!=","_0_0",")","{","kk","=","kj","(","Ei",")",";","kk",".","x","=","DX",".","x",";","kk",".","y","=","DX",".","y",";","DN","=","kl","(","kk",")",";","Ei", "=","mix","(","Ei",",","DN",",","AJ",")",";","}"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ei","=","clamp","(","Ei",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_SOFT_LIGHT",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ej",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ek",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"El",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Em",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ej",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-","AJ",";","vec3","En","=","El","+","Ek","-","El","*","Ek",";","Em","=","Ek","*","(","vec3","(","Dn",")","+","vec3","(","AJ",")","*","(","(","vec3","(","_1_0",")","-","Ek",")","*","El","+","En",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt", TOKENS:["Em","=","clamp","(","Em",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_LINEAR_LIGHT",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Eo",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ep",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Eq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Er",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=", "clamp","(","Eo",",","_0_0",",","_1_0",")",";","Er","=","Ep","+","AJ","*","(","2.0","*","Eq","-","vec3","(","_1_0",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Er","=","clamp","(","Er",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_WORLD_RGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Es",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Et",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Eu",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ev",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Es",",","_0_0",",","_1_0",")",";","Ev","=","mix","(","Et",",","Eu",",","AJ",")",";"]}]},{TYPE:"node",NAME:"ADD_WORLD_RGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Ew",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ex",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ey",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"Ez",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ew",",","_0_0",",","_1_0",")",";","Ez","=","mix","(","Ex",",","Ex","+","Ey",",","AJ",")",";"]}]},{TYPE:"node",NAME:"OUTPUT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"EA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","EA",";","I","=","EB",";"]}]},{TYPE:"node",NAME:"OUTPUT_SURFACE", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"EC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ED",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","EC",";","I","=","ED",";"]}]},{TYPE:"node",NAME:"OUTPUT_WORLD_SURFACE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"EE",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","EE",";","I","=","_1_0",";"]}]},{TYPE:"node",NAME:"MATERIAL_BEGIN",NODE_VARS:[{TYPE:"node_var",NAME:"MATERIAL_EXT", TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_NORMAL",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_DIFFUSE",TOKENS:["0"]},{TYPE:"node_var",NAME:"SHADELESS_MAT",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"EF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EI",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"EJ",QUALIFIER:["float"],IS_OPTIONAL:true}, {TYPE:"node_out",NAME:"EK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EM",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EP",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EQ",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ER",QUALIFIER:["vec4"], IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sF",QUALIFIER:["const","vec2"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sG",QUALIFIER:["const","vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["EM","=","EF",";","EN","=","sG","[","0","]","*","EG",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_NORMAL"],STATEMENTS:[{TYPE:"txt",TOKENS:["EO","=","normalize","(","EI",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EO","=","ox",";"]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["SHADELESS_MAT",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATERIAL_EXT"],STATEMENTS:[{TYPE:"txt",TOKENS:["EK","=","EJ","*","EM",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EK","=","sS","*","EM",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_DIFFUSE"],STATEMENTS:[{TYPE:"txt",TOKENS:["EM","*=","EH",";"]}]}]},{TYPE:"txt",TOKENS:["EL","=","sT","*","u_environment_energy", "*","cE","(","EO",")",";","ER","=","cH","(","EM",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NUM_LIGHTS",0,{TYPE:"g_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["EP","=","vec2","(","sF","[","0","]",",","sF","[","1","]",")",";","EQ","=","vec2","(","sG","[","1","]",",","sG","[","2","]",")",";"]}]}]},{TYPE:"txt",TOKENS:["H","=","ER",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EK","=","vec3","(","_0_0",")",";","EL","=","vec3","(","_1_0",")",";"]}]}]}]},{TYPE:"node", NAME:"MATERIAL_END",NODE_VARS:[{TYPE:"node_var",NAME:"MATERIAL_EXT",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_DIFFUSE",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_SPECULAR",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"ES",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ET",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EV",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"EW",QUALIFIER:["float"], IS_OPTIONAL:true},{TYPE:"node_in",NAME:"EX",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"EY",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"EZ",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"E_",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fa",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fb",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"sH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sI",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_EY"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_DIFFUSE"],STATEMENTS:[{TYPE:"txt",TOKENS:["EY","=","ES",".","rgb",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EY","=","vec3","(","_0_0",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATERIAL_EXT","REFLECTION_TYPE","REFL_NONE",{TYPE:"non_equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2}], STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["REFLECTION_TYPE","REFL_PLANE",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["cQ","(","EY",",","oy",",","EU",",","EV",",","u_view_tsr_frag",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["cQ","(","EY",",","oy",",","EU",",","EV",",","mat3","(","_0_0",")",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["EY","+=","ET",";"]}]}]}]}]}, {TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_E_"],STATEMENTS:[{TYPE:"txt",TOKENS:["E_","=","EU",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATERIAL_EXT"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fa"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fa","=","ES",".","rgb",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fb"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fb","=","ET",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["USE_OUT_EZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["EZ","=","clamp","(","EX",",","_0_0",",","_1_0",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","t","=","max","(","max","(","ET",".","r",",","ET",".","g",")",",","ET",".","b",")","*","EW",";","EZ","=","clamp","(","EX","*","(","_1_0","-","t",")","+","t",",","_0_0",",","_1_0",")",";"]}]}]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["USE_OUT_EZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["EZ","=","clamp","(","sH",",","_0_0",",","_1_0",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","t","=","max","(","max","(","ET",".","r",",","ET",".","g",")",",","ET",".","b",")","*","sI",";","EZ","=","sH","*","(","_1_0","-","t",")","+","t",";"]}]}]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["F", "=","ET",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["F","=","vec3","(","_0_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["G","=","EU",";"]}]},{TYPE:"node",NAME:"LIGHTING_AMBIENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"oP",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"oQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"oR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oS",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oT",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["oS","=","vec4","(","oP","+","oR","*","oQ",",","_0_0",")",";","oT","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"LIGHTING_LAMP",NODE_VARS:[{TYPE:"node_var",NAME:"LAMP_TYPE",TOKENS:["HEMI"]},{TYPE:"node_var",NAME:"LAMP_IND",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_SPOT_SIZE",TOKENS:["0.8"]},{TYPE:"node_var",NAME:"LAMP_SPOT_BLEND",TOKENS:["0.03"]},{TYPE:"node_var",NAME:"LAMP_LIGHT_DIST",TOKENS:["30.0"]},{TYPE:"node_var",NAME:"LAMP_SHADOW_MAP_IND", TOKENS:["-","1"]},{TYPE:"node_var",NAME:"LAMP_USE_SPHERE",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"oU",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oW",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oY",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["oW","=","vec2","(","u_light_positions","[","LAMP_IND","]", ".","w",",","u_light_color_intensities","[","LAMP_IND","]",".","w",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","HEMI",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["oY","=","_0_5",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["oY","=","_0_0",";"]}]}]},{TYPE:"txt",TOKENS:["oX","=","u_light_color_intensities","[","LAMP_IND","]",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_SHADOW_MAP_IND",1,{TYPE:"negative_expr", PLACES:1},{TYPE:"non_equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["oX","*=","oU","[","LAMP_SHADOW_MAP_IND","]",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2},"LAMP_TYPE","POINT",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","oZ","=","u_light_positions","[","LAMP_IND","]",".","xyz",";","oV","=","oZ","-","ow",";","float","aM","=","length","(","oV",")",";","oX","*=","LAMP_LIGHT_DIST", "/","(","LAMP_LIGHT_DIST","+","aM","*","aM",")",";","oV","=","normalize","(","oV",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pa","=","u_light_directions","[","LAMP_IND","]",";","float","pb","=","dot","(","oV",",","pa",")",";","pb","*=","smoothstep","(","_0_0",",","_1_0",",","(","pb","-","LAMP_SPOT_SIZE",")","/","LAMP_SPOT_BLEND",")",";","oX","*=","pb",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["LAMP_USE_SPHERE"],STATEMENTS:[{TYPE:"txt",TOKENS:["oX","*=","max","(","LAMP_LIGHT_DIST","-","aM",",","_0_0",")","/","LAMP_LIGHT_DIST",";"]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["oV","=","u_light_directions","[","LAMP_IND","]",";"]}]}]}]},{TYPE:"node",NAME:"DIFFUSE_FRESNEL",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pd",QUALIFIER:["vec2"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"pe",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pg",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ph",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","pe",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pc",",","B",".","xyz",")",";","rz","=","cross", "(","pi",",","B",".","xyz",")",";","rz","=","-","normalize","(","rz",")",";"]}]}]},{TYPE:"txt",TOKENS:["ph","=","_0_0",";","if","(","pd",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pf",")","*","dot","(","rz",",","pc",")","+","pf",";","if","(","pg","[","0","]","==","_0_0",")","{","ph","=","_1_0",";","}","else","{","float","t","=","_1_0","+","abs","(","pj",")",";","t","=","pg","[","1","]","+","(","_1_0","-","pg","[","1","]",")","*","pow","(","t",",","pg","[","0","]",")",";","ph","=", "clamp","(","t",",","_0_0",",","_1_0",")",";","}","ph","=","max","(","ph",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_LAMBERT",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pl",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pm",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"po", QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","pm",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pk",",","B",".","xyz",")",";","rz","=","cross","(","pi",",","B",".","xyz",")",";","rz","=","-","normalize","(","rz",")",";"]}]}]},{TYPE:"txt",TOKENS:["po","=","_0_0",";","if","(","pl",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pn",")","*","dot","(", "rz",",","pk",")","+","pn",";","po","=","max","(","pj",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_OREN_NAYAR",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pu",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"px",QUALIFIER:["vec2"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"py",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","pv",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pr",",","B",".","xyz",")",";","rz","=","cross","(","pi",",","B",".","xyz",")",";","rz","=","-","normalize","(","rz",")",";"]}]}]},{TYPE:"txt",TOKENS:["py","=","_0_0",";","if","(","pu",".","r","!=","_0_0",")","{","float", "pj","=","(","_1_0","-","pw",")","*","dot","(","rz",",","pr",")","+","pw",";","if","(","px","[","0","]",">","_0_0",")","{","float","pz","=","max","(","dot","(","rz",",","oy",")",",","_0_0",")",";","float","pA","=","px","[","0","]","*","px","[","0","]",";","float","cG","=","_1_0","-","_0_5","*","(","pA","/","(","pA","+","0.33",")",")",";","vec3","pB","=","pr","-","pj","*","rz",";","vec3","pC","=","oy","-","pz","*","rz",";","if","(","length","(","pB",")","==","_0_0","||","length","(","pC",")","==", "_0_0","||","abs","(","pj",")",">","_1_0","||","abs","(","pz",")",">","_1_0",")","py","=","pj","*","cG",";","else","{","float","pD","=","acos","(","pj",")",";","float","pE","=","acos","(","pz",")",";","vec3","pF","=","normalize","(","pB",")",";","vec3","pG","=","normalize","(","pC",")",";","float","a",",","b",";","a","=","max","(","pD",",","pE",")",";","b","=","min","(","pD",",","pE",")",";","b","*=","0.95",";","float","t","=","max","(","dot","(","pF",",","pG",")",",","_0_0",")",";","float","hS", "=","0.45","*","(","pA","/","(","pA","+","0.09",")",")",";","py","=","pj","*","(","cG","+","(","hS","*","t","*","sin","(","a",")","*","tan","(","b",")",")",")",";","}","}","else","py","=","pj",";","py","=","max","(","py",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_MINNAERT",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pI",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"pJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pL",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pM",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","pJ",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pH",",","B",".","xyz",")",";","rz","=","cross","(","pi",",","B", ".","xyz",")",";","rz","=","-","normalize","(","rz",")",";"]}]}]},{TYPE:"txt",TOKENS:["pM","=","_0_0",";","if","(","pI",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pK",")","*","dot","(","rz",",","pH",")","+","pK",";","float","pz","=","max","(","dot","(","rz",",","oy",")",",","_0_0",")",";","if","(","pL","[","0","]","<=","_1_0",")","pM","=","pj","*","pow","(","max","(","pz","*","pj",",","0.1",")",",","pL","[","0","]","-","_1_0",")",";","else","pM","=","pj","*","pow","(","1.0001","-", "pz",",","pL","[","0","]","-","_1_0",")",";","pM","=","max","(","pM",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_TOON",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pO",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pP",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pR",QUALIFIER:["vec2"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","pP",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pN",",","B",".","xyz",")",";","rz","=","cross","(","pi",",","B",".","xyz",")",";","rz","=","-","normalize","(","rz",")",";"]}]}]},{TYPE:"txt",TOKENS:["pS","=","_0_0",";","if","(","pO",".","r","!=","_0_0",")","{","float", "pj","=","(","_1_0","-","pQ",")","*","dot","(","rz",",","pN",")","+","pQ",";","float","pT","=","acos","(","pj",")",";","if","(","pT","<","pR","[","0","]",")","pS","=","_1_0",";","else","if","(","pT",">","(","pR","[","0","]","+","pR","[","1","]",")","||","pR","[","1","]","==","_0_0",")","pS","=","_0_0",";","else","pS","=","_1_0","-","(","(","pT","-","pR","[","0","]",")","/","pR","[","1","]",")",";","pS","=","max","(","pS",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_PHONG",NODE_VARS:[{TYPE:"node_var", NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pV",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pY",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pZ",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["pZ","=","_0_0",";","if", "(","pV",".","g","==","_1_0",")","{","vec3","p_","=","normalize","(","pU","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","pX","==","_0_0",")","{","pZ","=","dot","(","B",".","xyz",",","p_",")",";","pZ","=","sqrt","(","_1_0","-","pZ","*","pZ",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["pZ","=","(","_1_0","-","pX",")","*","max","(","dot","(","pW",",","p_",")",",","_0_0",")","+","pX",";"]}]}]}, {TYPE:"txt",TOKENS:["pZ","=","pow","(","pZ",",","pY","[","0","]",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_COOKTORR",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qa",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qb",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qd",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qe",QUALIFIER:["vec2"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qf",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qf","=","_0_0",";","if","(","qb",".","g","!=","_0_0",")","{","vec3","p_","=","normalize","(","qa","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","qd","==","_0_0",")","{","qf","=","dot","(","B",".","xyz",",","p_",")",";","qf","=","sqrt","(","_1_0","-","qf","*","qf",")",";","}"]}]},{TYPE:"node_else", STATEMENTS:[{TYPE:"txt",TOKENS:["qf","=","max","(","dot","(","qc",",","p_",")",",","_0_0",")",";","qf","=","(","_1_0","-","qd",")","*","qf","+","qd",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","pz","=","max","(","dot","(","B",".","xyz",",","oy",")",",","_0_0",")",";","pz","=","sqrt","(","_1_0","-","pz","*","pz",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","pz","=","max","(","dot","(","qc",",", "oy",")",",","_0_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["qf","=","pow","(","qf",",","qe","[","0","]",")",";","qf","=","qf","/","(","0.1","+","pz",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_WARDISO",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qh",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qi",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qj",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qk",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ql",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ql","=","_0_0",";","if","(","qh",".","g","==","_1_0",")","{","vec3","p_","=","normalize","(","qg","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","_0_0",";","float","pz","=","_0_0",";","float","qn","=","_0_0",";","if","(", "qj","==","_0_0",")","{","qm","=","dot","(","B",".","xyz",",","p_",")",";","pz","=","dot","(","B",".","xyz",",","oy",")",";","qn","=","dot","(","B",".","xyz",",","qg",")",";","qm","=","sqrt","(","_1_0","-","qm","*","qm",")",";","pz","=","sqrt","(","_1_0","-","pz","*","pz",")",";","qn","=","sqrt","(","_1_0","-","qn","*","qn",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","max","(","dot","(","qi",",","p_",")",",","0.01",")",";","float","pz","=","max","(","dot","(", "qi",",","oy",")",",","0.01",")",";","float","qn","=","max","(","dot","(","qi",",","qg",")",",","0.01",")",";"]}]}]},{TYPE:"txt",TOKENS:["float","bP","=","tan","(","acos","(","qm",")",")",";","float","L","=","max","(","qk","[","0","]",",","0.01",")",";","ql","=","qn","*","(","_1_0","/","(","4.0","*","M_PI","*","L","*","L",")",")","*","(","exp","(","-","(","bP","*","bP",")","/","(","L","*","L",")",")","/","(","sqrt","(","pz","*","qn",")",")",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_TOON",NODE_VARS:[{TYPE:"node_var", NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qr",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qu",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qw",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qx",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qx","=","_0_0",";","if", "(","qr",".","g","==","_1_0",")","{","vec3","co","=","normalize","(","qo","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qy","=","dot","(","co",",","B",".","xyz",")",";","float","bP","=","qw","[","0","]","+","qw","[","1","]",";","if","(","qv","==","_0_0",")","bP","=","acos","(","sqrt","(","_1_0","-","qy","*","qy",")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","bP","=","acos","(","dot", "(","co",",","qu",")",")",";"]}]}]},{TYPE:"txt",TOKENS:["if","(","bP","<","qw","[","0","]",")","qx","=","_1_0",";","else","if","(","bP",">=","qw","[","0","]","+","qw","[","1","]","||","qw","[","1","]","==","_0_0",")","qx","=","_0_0",";","else","qx","=","_1_0","-","(","bP","-","qw","[","0","]",")","/","qw","[","1","]",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_BLINN",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qz",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"qA",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qD",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qE",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qF","=","qD","[","0","]",";","float","qG","=","qD","[","1","]",";","qE","=","_0_0",";","if","(","qA",".","g","==","_1_0",")","{","if","(", "qF","<","_1_0","||","qG","==","_0_0",")","qE","=","_0_0",";","else","{","if","(","qG","<","100.0",")","qG","=","sqrt","(","_1_0","/","qG",")",";","else","qG","=","10.0","/","qG",";","vec3","p_","=","normalize","(","oy","+","qz",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","_0_0",";","if","(","qC","==","_0_0",")","{","float","qH","=","dot","(","B",".","xyz",",","p_",")",";","qm","=","sqrt","(","_1_0","-","qH", "*","qH",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","(","_1_0","-","qC",")","*","max","(","dot","(","qB",",","p_",")",",","_0_0",")","+","qC",";"]}]}]},{TYPE:"txt",TOKENS:["if","(","qm","<","_0_0",")","qE","=","_0_0",";","else","{","float","pz","=","max","(","dot","(","qB",",","oy",")",",","0.01",")",";","float","qn","=","dot","(","qB",",","qz",")",";","if","(","qn","<=","0.01",")","qE","=","_0_0",";","else","{","float","qI","=","max","(","dot","(","oy",",", "p_",")",",","0.01",")",";","float","a","=","_1_0",";","float","b","=","(","2.0","*","qm","*","pz",")","/","qI",";","float","dx","=","(","2.0","*","qm","*","qn",")","/","qI",";","float","g","=","min","(","min","(","a",",","b",")",",","dx",")",";","float","p","=","sqrt","(","pow","(","qF",",","2.0",")","+","pow","(","qI",",","2.0",")","-","_1_0",")",";","float","mm","=","pow","(","p","-","qI",",","2.0",")","/","pow","(","p","+","qI",",","2.0",")","*","(","_1_0","+","pow","(","qI","*","(","p","+","qI", ")","-","_1_0",",","2.0",")","/","pow","(","qI","*","(","p","-","qI",")","+","_1_0",",","2.0",")",")",";","float","pT","=","acos","(","qm",")",";","qE","=","max","(","mm","*","g","*","exp","(","-","pow","(","pT",",","2.0",")","/","(","2.0","*","pow","(","qG",",","2.0",")",")",")",",","_0_0",")",";","}","}","}","}"]}]},{TYPE:"node",NAME:"LIGHTING_APPLY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"qJ",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qK",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"qL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qP",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qS",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"qT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qU",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qV",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NODE_B4W_TRANSLUCENCY"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","dot","(","qN",",","qO",")","*","dot","(","oy",",","qO",")","<","_0_0",")","{","float","Fc","=","qP",".","x",";","float","Fd","=","qP",".","y",";","float","Fe","=","qP",".", "z",";","float","Ff","=","qP",".","w",";","float","Fg","=","clamp","(","abs","(","dot","(","qN",",","qO",")",")",",","_0_0",",","_1_0",")",";","float","Fh","=","clamp","(","dot","(","oy",",","-","qN",")",",","_0_0",",","_1_0",")",";","float","Fi","=","pow","(","Fh",",","Fd",")",";","qU","=","qJ","+","qT","*","vec4","(","qS","*","Fg","*","pow","(","qQ",",","vec3","(","Fc",")",")",",","_1_0",")",";","qU","+=","Fe","*","mix","(","vec4","(","qQ",",","_1_0",")",",","vec4","(","_1_0",")",",","Ff",")","*", "qT","*","vec4","(","qS","*","Fg","*","vec3","(","Fi",")",",","_1_0",")",";","}","else","{","qU","=","qJ","+","vec4","(","qS","*","qQ","*","qL",",","qM",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["qU","=","qJ","+","vec4","(","qS","*","qQ","*","qL",",","qM",")",";"]}]}]},{TYPE:"txt",TOKENS:["qV","=","qK","+","qS","*","qR","*","qM",";"]}]},{TYPE:"node",NAME:"RGB",NODE_VARS:[{TYPE:"node_var",NAME:"RGB_IND",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_out",NAME:"Fj",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Fj","=","u_node_rgbs","[","RGB_IND","]",";"]}]},{TYPE:"node",NAME:"RGBTOBW",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fl",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Fl","=","dot","(","Fk",",","vec3","(","0.35",",","0.45",",","0.2",")",")",";"]}]},{TYPE:"node",NAME:"SEPRGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fm",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fn",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fo",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fp",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fn"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fn","=","Fm",".","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fo"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fo","=","Fm",".","g",";"]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fp"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fp","=","Fm",".","b",";"]}]}]}]},{TYPE:"node",NAME:"SEPHSV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fr",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fs",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Ft",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Fu","=","kj","(","Fq",")",";"]}, {TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fr"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fr","=","Fu",".","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fs"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fs","=","Fu",".","g",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Ft"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ft","=","Fu",".","b",";"]}]}]}]},{TYPE:"node",NAME:"SQUEEZE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fv",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"Fw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Fx",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fy",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Fy","=","_1_0","/","(","_1_0","+","pow","(","2.71828183",",","-","(","Fv","-","Fx",")","*","Fw",")",")",";"]}]},{TYPE:"node",NAME:"GAMMA",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"FA",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FB",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["FB","=","Fz",";","if","(","FB",".","x",">","_0_0",")","FB",".","x","=","pow","(","Fz",".","x",",","FA",")",";","if","(","FB",".","y",">","_0_0",")","FB",".","y","=","pow","(","Fz",".","y",",","FA",")",";","if","(","FB",".","z",">","_0_0",")","FB",".","z","=","pow","(","Fz",".","z",",","FA",")",";"]}]},{TYPE:"node",NAME:"B4W_SRGB_TO_LINEAR",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"FC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FD",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["FD","=","max","(","vec3","(","_0_0",")",",","FC",")",";","FD","=","pow","(","FD",",","vec3","(","2.2",")",")",";"]}]},{TYPE:"node",NAME:"B4W_LINEAR_TO_SRGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"FE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FF",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["FF","=", "max","(","vec3","(","_0_0",")",",","FE",")",";","FF","=","pow","(","FF",",","vec3","(","_1_0","/","2.2",")",")",";"]}]},{TYPE:"node",NAME:"TEXTURE_EMPTY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"FG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FG"],STATEMENTS:[{TYPE:"txt",TOKENS:["FG","=","vec3", "(","_0_0",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FH"],STATEMENTS:[{TYPE:"txt",TOKENS:["FH","=","vec3","(","_0_0",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FI"],STATEMENTS:[{TYPE:"txt",TOKENS:["FI","=","_0_0",";"]}]}]}]},{TYPE:"node",NAME:"TEXTURE_ENVIRONMENT_CUBE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"FJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FK",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out", NAME:"FL",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"node_TEXTURE_ENVIRONMENT_CUBE_var_texture",QUALIFIER:["uniform","samplerCube"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FM","=","vec3","(","FJ",".","x",",","FJ",".","y",",","FJ",".","z",")",";","vec4","BN","=","GLSL_TEXTURE_CUBE","(","node_TEXTURE_ENVIRONMENT_CUBE_var_texture",",","FM",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FK"],STATEMENTS:[{TYPE:"txt",TOKENS:["FK","=","BN", ".","xyz",";","bG","(","FK",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FL"],STATEMENTS:[{TYPE:"txt",TOKENS:["FL","=","BN",".","w",";"]}]}]}]},{TYPE:"node",NAME:"TEXTURE_ENVIRONMENT_EQUIRECTANGULAR",NODE_VARS:[{TYPE:"node_var",NAME:"USE_VECTOR_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"FN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"node_TEXTURE_ENVIRONMENT_EQUIRECTANGULAR_var_texture", QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_VECTOR_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FP","=","normalize","(","FN",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["IS_WORLD"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FP","=","sJ",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FP","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["float","dF","=","-","atan","(","FP",".","y",",","FP",".","x",")","/","(","2.0", "*","M_PI",")","+","_0_5",";","float","kU","=","atan","(","FP",".","z",",","sqrt","(","FP",".","x","*","FP",".","x","+","FP",".","y","*","FP",".","y",")",")","/","M_PI","+","_0_5",";","vec4","BN","=","GLSL_TEXTURE","(","node_TEXTURE_ENVIRONMENT_EQUIRECTANGULAR_var_texture",",","vec2","(","dF",",","kU",")",")",";","FO","=","BN",".","xyz",";","bG","(","FO",")",";"]}]},{TYPE:"node",NAME:"TEXTURE_ENVIRONMENT_MIRROR_BALL",NODE_VARS:[{TYPE:"node_var",NAME:"USE_VECTOR_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"FQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"node_TEXTURE_ENVIRONMENT_MIRROR_BALL_var_texture",QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_VECTOR_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FP","=","normalize","(","FQ",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["IS_WORLD"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FP","=","sJ",";"]}]}, {TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","FP","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["FP",".","y","-=","_1_0",";","float","FS","=","2.0","*","sqrt","(","max","(","-","_0_5","*","FP",".","y",",","_0_0",")",")",";","if","(","FS",">","_0_0",")","FP","/=","FS",";","float","dF","=","_0_5","*","(","FP",".","x","+","_1_0",")",";","float","kU","=","_0_5","*","(","FP",".","z","+","_1_0",")",";","vec4","BN","=","GLSL_TEXTURE","(","node_TEXTURE_ENVIRONMENT_MIRROR_BALL_var_texture",",","vec2", "(","dF",",","kU",")",")",";","FR","=","BN",".","xyz",";","bG","(","FR",")",";"]}]},{TYPE:"node",NAME:"TEXTURE_COLOR",NODE_VARS:[{TYPE:"node_var",NAME:"NON_COLOR",TOKENS:["0"]},{TYPE:"node_var",NAME:"CONVERT_UV",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv2",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv3",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv4",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"FT",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"FU",QUALIFIER:["vec3"],IS_OPTIONAL:true}, {TYPE:"node_in",NAME:"FV",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"FW",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"FX",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"FY",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"FZ",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"F_",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Ga",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gb",QUALIFIER:["float"],IS_OPTIONAL:true}, {TYPE:"node_out",NAME:"Gc",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gd",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"node_TEXTURE_COLOR_var_texture",QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_UV"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FT",")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec4", "BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","FT",".","xy",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FX"],STATEMENTS:[{TYPE:"txt",TOKENS:["FX","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","FX",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FY"],STATEMENTS:[{TYPE:"txt",TOKENS:["FY","=","BN", ".","w",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv2"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_UV"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FU",")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","FU",".","xy",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FZ"],STATEMENTS:[{TYPE:"txt", TOKENS:["FZ","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","FZ",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_F_"],STATEMENTS:[{TYPE:"txt",TOKENS:["F_","=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv3"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_UV"],STATEMENTS:[{TYPE:"txt", TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FV",")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","FV",".","xy",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Ga"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ga","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt", TOKENS:["bG","(","Ga",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gb"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gb","=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv4"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_UV"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FW",")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=", "GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","FW",".","xy",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gc"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gc","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","Gc",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gd"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gd","=","BN",".","w", ";"]}]}]}]}]}]},{TYPE:"node",NAME:"TEXTURE_NORMAL",NODE_VARS:[{TYPE:"node_var",NAME:"USE_uv2",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv3",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv4",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ge",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"Gf",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"Gg",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"Gh",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gi",QUALIFIER:["vec3"], IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gj",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gk",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gl",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gm",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gn",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Go",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gp",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"node_TEXTURE_NORMAL_var_texture", QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Ge",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gi"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gi","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gj"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gj","=","BN",".","w",";"]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv2"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Gf",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gk"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gk","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gl"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gl","=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv3"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Gg",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gm"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gm","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gn"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gn","=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv4"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Gh",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Go"],STATEMENTS:[{TYPE:"txt",TOKENS:["Go","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gp"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gp","=","BN",".","w",";"]}]}]}]}]}]},{TYPE:"node", NAME:"VALUE",NODE_VARS:[{TYPE:"node_var",NAME:"VALUE_ROW_IND",TOKENS:["0"]},{TYPE:"node_var",NAME:"VALUE_COL_IND",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_out",NAME:"Gq",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Gq","=","u_node_values","[","VALUE_ROW_IND","]","[","VALUE_COL_IND","]",";"]}]},{TYPE:"node",NAME:"VECT_MATH_ADD",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Gr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Gs",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"Gt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gu",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["Gt","=","Gr","+","Gs",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gu"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gu","=","(","abs","(","Gt","[","0","]",")","+","abs","(","Gt","[","1","]",")","+","abs","(","Gt","[","2","]",")",")","/","3.0",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_SUBTRACT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"Gv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Gw",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gx",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gy",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["Gx","=","Gv","-","Gw",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gy"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gy","=","(","abs","(","Gx","[","0","]",")","+","abs","(","Gx","[","1","]",")","+","abs","(","Gx", "[","2","]",")",")","/","3.0",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_AVERAGE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Gz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GC",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GB","=","Gz","+","GA",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GC"],STATEMENTS:[{TYPE:"txt", TOKENS:["GC","=","length","(","GB",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GB"],STATEMENTS:[{TYPE:"txt",TOKENS:["GB","=","normalize","(","GB",")",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_DOT_PRODUCT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GG",QUALIFIER:["float"], IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GF","=","vec3","(","_0_0",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GG"],STATEMENTS:[{TYPE:"txt",TOKENS:["GG","=","dot","(","GD",",","GE",")",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_CROSS_PRODUCT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"GK",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GJ","=","cross","(","GH",",","GI",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GK"],STATEMENTS:[{TYPE:"txt",TOKENS:["GK","=","length","(","GJ",")",";","GJ","/=","GK",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["GJ","=","normalize","(","GJ",")",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_NORMALIZE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GL",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"GM",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GO",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GN","=","normalize","(","GL",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GO"],STATEMENTS:[{TYPE:"txt",TOKENS:["GO","=","length","(","GL",")",";"]}]}]},{TYPE:"txt",TOKENS:["GM",";"]}]},{TYPE:"node",NAME:"FRESNEL",NODE_VARS:[{TYPE:"node_var",NAME:"USE_FRESNEL_NORMAL", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"GP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GR",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_FRESNEL_NORMAL"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","cw","=","normalize","(","GQ",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","cw","=","ox",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["CAMERA_TYPE","CAM_TYPE_PERSP",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Bp","=","normalize","(","oy",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Bp","=","u_camera_direction",";"]}]}]},{TYPE:"txt",TOKENS:["float","su","=","max","(","GP",",","0.00001",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["su","=","gl_FrontFacing", "==","false","?","su",":","_1_0","/","su",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["su","=","gl_FrontFacing","?","su",":","_1_0","/","su",";"]}]}]},{TYPE:"txt",TOKENS:["GR","=","sv","(","Bp",",","cw",",","su",")",";"]}]},{TYPE:"node",NAME:"BACKGROUND",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GS",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GU",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["GU","=","GS","*","GT",";"]}]},{TYPE:"node",NAME:"B4W_REFLECT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GX",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["GX","=","reflect","(","_","(","u_view_tsr_inverse",",","GV",")",",","GW",")",";"]}]},{TYPE:"node",NAME:"B4W_REFLECT_WORLD",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GY", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GZ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["GZ","=","reflect","(","-","oy",".","xyz",",","GY",")",";"]}]},{TYPE:"node",NAME:"B4W_PARALLAX",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"G_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ha",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hb",QUALIFIER:["const","float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hc",QUALIFIER:["const", "float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"node_B4W_PARALLAX_var_texture",QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","bS","=","length","(","sR",")",";","if","(","bS","<","Hc",")","{","vec2","ce","=","so","(","G_",")",";","float","ci","=","clamp","(","_0_5","*","(","Hc","-","bS",")",",","_0_0",",","_1_0",")",";","float","hK","=","Ha","*","ci",";","vec3","ck","=","normalize", "(","oy","*","sO",")",";","float","cl","=","_1_0","/","Hb",";","vec2","cm","=","ck",".","xy","*","hK","/","(","Hb","*","ck",".","z",")",";","float","cn","=","_1_0",";","float","co","=","GLSL_TEXTURE","(","node_B4W_PARALLAX_var_texture",",","ce",")",".","a",";","for","(","float","cq","=","1.0",";","cq","<=","Hb",";","cq","++",")","{","if","(","co","<","cn",")","{","cn","-=","cl",";","ce","-=","cm",";","co","=","GLSL_TEXTURE","(","node_B4W_PARALLAX_var_texture",",","ce",")",".","a",";","}","}","vec2", "cr","=","ce","+","cm",";","float","cs","=","GLSL_TEXTURE","(","node_B4W_PARALLAX_var_texture",",","cr",")",".","a","-","(","cn","+","cl",")",";","float","ct","=","co","-","cn",";","float","cu","=","ct","/","(","ct","-","cs",")",";","ce","=","cu","*","cr","+","(","_1_0","-","cu",")","*","ce",";","Hd","=","sn","(","ce",")",";","}","else","Hd","=","G_",";"]}]},{TYPE:"node",NAME:"B4W_CLAMP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"He",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hf", QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hf","=","clamp","(","He",",","_0_0",",","_1_0",")",";"]}]},{TYPE:"node",NAME:"B4W_REFRACTION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hi",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hi","=","sm","(","Hg",",","Hh",")",";"]}]},{TYPE:"node",NAME:"B4W_TRANSLUCENCY", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hm",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ho",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Hp",QUALIFIER:["vec4"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Ho"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ho","=","Hj",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Hp"],STATEMENTS:[{TYPE:"txt",TOKENS:["Hp","=","vec4","(","Hk",",","Hl",",","Hm",",","Hn",")",";"]}]}]}]},{TYPE:"node",NAME:"B4W_TIME",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"Hq",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hq","=","u_time",";"]}]},{TYPE:"node",NAME:"B4W_SMOOTHSTEP",NODE_VARS:[], DECLARATIONS:[{TYPE:"node_in",NAME:"Hr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hs",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ht",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hu",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hu","=","smoothstep","(","Hs",",","Ht",",","Hr",")",";"]}]},{TYPE:"node",NAME:"B4W_GLOW_OUTPUT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Hw",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","Hv",";","I","=","Hw",";"]}]},{TYPE:"node",NAME:"B4W_VECTOSCAL",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hx",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hy",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hy","=","(","Hx",".","r","+","Hx",".","g","+","Hx",".","b",")","/","3.0",";"]}]},{TYPE:"node",NAME:"B4W_SCALTOVEC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"Hz",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"HA",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["HA","[","0","]","=","Hz",";","HA","[","1","]","=","Hz",";","HA","[","2","]","=","Hz",";"]}]},{TYPE:"nodes_global"},{TYPE:"txt",TOKENS:["void","J","(","in","vec3","oy",",","out","vec3","E",",","out","vec3","F",",","out","vec3","G",",","out","vec4","H",",","out","float","I",")","{","E","=","vec3","(","_0_0",")",";","F","=","vec3","(","_0_0",")",";","G", "=","vec3","(","_0_0",")",";","H","=","vec4","(","_0_0",")",";","I","=","_0_0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["IS_WORLD"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEXTURE_ENVIRONMENT_EQUIRECTANGULAR","USE_NODE_TEXTURE_ENVIRONMENT_MIRROR_BALL","USE_NODE_TEX_COORD_GE","USE_NODE_TEX_COORD_OB",{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sJ","=","-","oy",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_GL"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ow","=","-","oy",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEX_COORD_NO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ox","=","oy",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_NO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sK","=","oy",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO", "CAUSTICS","CALC_TBN_SPACE","USE_NODE_TEX_COORD_NO","USE_NODE_NORMAL_MAP","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:11}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sL","=","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING","USE_NODE_GEOMETRY_NO",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","gl_FrontFacing","==","false",")"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","gl_FrontFacing",")"]}]}}]},{TYPE:"txt",TOKENS:["sL","=","sL",";","else","sL","=","-","sL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_NORMAL_MAP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sM","=","sL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING", "USE_NODE_GEOMETRY_NO","USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sN","=","normalize","(","sL",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ox","=","sN",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ox","=","normalize","(","j",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_NO"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sK","=","sN",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","W","=","cross","(","sN",",","k",".","xyz",")","*","k",".","w",";","mat3","sO","=","mat3","(","k",".","xyz",",","W",",","sN",")",";"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_NORMAL_MAP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sP","=","cross","(","sL",",","k",".","xyz",")","*","k",".","w",";","mat3","sQ","=","mat3","(","k",".","xyz",",","sP",",","sL",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["vec3","ow","=","h",";","vec4","sR","=","i",";","float","sS","=","u_emit",";","float","sT","=","u_ambient",";"]}]}}]},{TYPE:"nodes_main"},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/nodes.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond", PARTS:[{TYPE:"ifndef",NAME:"NODES_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"NODES_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"PARTICLE_BATCH",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:2},"PARTICLE_BATCH",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["GLSL_IN","vec3","a_orco_tex_coord",";","GLSL_OUT","vec3","sj",";"]}]}}]},{TYPE:"node", NAME:"TEX_COORD_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_TEX_COORD_UV_var_a_uv",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sD",QUALIFIER:["GLSL_OUT","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["sD","=","node_TEX_COORD_UV_var_a_uv",";"]}]},{TYPE:"node",NAME:"UV_MERGED",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_UV_MERGED_var_a_uv",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sC",QUALIFIER:["GLSL_OUT", "vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["sC","=","node_UV_MERGED_var_a_uv",";"]}]},{TYPE:"node",NAME:"UVMAP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_UVMAP_var_a_uv",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sE",QUALIFIER:["GLSL_OUT","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["sE","=","node_UVMAP_var_a_uv",";"]}]},{TYPE:"node",NAME:"GEOMETRY_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_GEOMETRY_UV_var_a_uv", QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sw",QUALIFIER:["GLSL_OUT","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["sw","=","node_GEOMETRY_UV_var_a_uv",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_GEOMETRY_VC_var_a_vertex_color",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"HB",QUALIFIER:["GLSL_OUT","vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["HB","=","node_GEOMETRY_VC_var_a_vertex_color", ";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC1",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_GEOMETRY_VC1_var_a_vertex_color",QUALIFIER:["GLSL_IN","float"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"HC",QUALIFIER:["GLSL_OUT","float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["HC","=","node_GEOMETRY_VC1_var_a_vertex_color",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC2",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_GEOMETRY_VC2_var_a_vertex_color",QUALIFIER:["GLSL_IN","vec2"],IS_OPTIONAL:false}, {TYPE:"node_param",NAME:"HD",QUALIFIER:["GLSL_OUT","vec2"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["HD","=","node_GEOMETRY_VC2_var_a_vertex_color",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC3",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_param",NAME:"node_GEOMETRY_VC3_var_a_vertex_color",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"HE",QUALIFIER:["GLSL_OUT","vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["HE","=","node_GEOMETRY_VC3_var_a_vertex_color",";"]}]}, {TYPE:"nodes_global"},{TYPE:"txt",TOKENS:["void","J","(",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["sj","=","a_orco_tex_coord",";"]}]}}]},{TYPE:"nodes_main"},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/pack.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"PACK_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"PACK_GLSLF",TOKENS:[""]}, {TYPE:"txt",TOKENS:["vec4","eu","(","const","in","float","iq",")","{","vec4","fu","=","vec4","(","_255_0","*","_255_0","*","_255_0",",","_255_0","*","_255_0",",","_255_0",",","_1_0",")",";","vec4","HF","=","vec4","(","_0_0",",","_1_0","/","_255_0",",","_1_0","/","_255_0",",","_1_0","/","_255_0",")",";","vec4","jF","=","fract","(","iq","*","fu",")",";","jF","-=","jF",".","xxyz","*","HF",";","return","jF",";","}","float","cV","(","const","in","vec4","HG",")","{","float","et",";","vec4","fu","=","vec4", "(","_1_0","/","(","_255_0","*","_255_0","*","_255_0",")",",","_1_0","/","(","_255_0","*","_255_0",")",",","_1_0","/","_255_0",",","_1_0",")",";","et","=","dot","(","HG",",","fu",")",";","return","et",";","}","vec4","eu","(","const","in","vec2","rk",")","{","vec2","fu","=","vec2","(","_255_0",",","_1_0",")",";","vec2","HF","=","vec2","(","_0_0",",","_1_0","/","_255_0",")",";","vec4","jF","=","fract","(","rk",".","xxyy","*","fu",".","xyxy",")",";","jF","-=","jF",".","xxzz","*","HF",".","xyxy",";", "if","(","rk",".","r","==","_1_0",")","jF",".","rg","=","vec2","(","_0_0",",","_1_0",")",";","if","(","rk",".","g","==","_1_0",")","jF",".","ba","=","vec2","(","_0_0",",","_1_0",")",";","return","jF",";","}","vec2","jk","(","const","in","vec4","HH",")","{","vec2","rk",";","vec2","fu","=","vec2","(","_1_0","/","_255_0",",","_1_0",")",";","rk",".","r","=","dot","(","HH",".","rg",",","fu",")",";","rk",".","g","=","dot","(","HH",".","ba",",","fu",")",";","return","rk",";","}"]}]}}]}]},exports["include/particles.glslv"]= {TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"PARTICLES_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"PARTICLES_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"EPSILON",TOKENS:["0.000001"]},{TYPE:"var",NAME:"COLOR_RAMP_LENGTH",TOKENS:["0"]},{TYPE:"var",NAME:"WORLD_SPACE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_COLOR_RAMP",TOKENS:["0"]},{TYPE:"include",FILE:"math.glslv"},{TYPE:"txt",TOKENS:["struct","dc","{","float","di",";","vec3","O",";","float","L",";","vec3","aQ",";","float","bP",";","vec3", "dp",";","vec3","dq",";","float","dr",";","}",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","HL","(","inout","vec3","aQ",",","float","HI",",","vec4","kf",",","vec4","bz",")","{","float","HJ","=","bz",".","x","-","kf",".","x",";","float","HK","=","(","HI","-","kf",".","x",")","/","HJ",";","aQ","=","mix","(","aQ",",","bz",".","yzw",",","clamp","(","HK",",","0.0",",","1.0",")",")",";","}"]}]}}]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","HO","(","float","t",",","float","HM",",","vec4","HN","[","COLOR_RAMP_LENGTH","]",")","{","float","HI","=","t","/","HM",";","vec3","aQ","=","HN","[","0","]",".","yzw",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",1,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["HL","(","aQ",",","HI",",","HN","[","0","]",",","HN","[","1","]", ")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",2,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["HL","(","aQ",",","HI",",","HN","[","1","]",",","HN","[","2","]",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",3,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["HL","(","aQ",",","HI",",","HN","[","2","]",",","HN","[","3","]",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","aQ",";","}"]}]}}]},{TYPE:"txt", TOKENS:["float","HU","(","float","t",",","float","HM",",","float","HP",",","float","HQ",")","{","float","HR","=","max","(","0.01",",","min","(","HM",",","HP",")",")",";","float","HS","=","max","(","0.01",",","min","(","HM",",","HQ",")",")",";","float","HT","=","HM","-","HS",";","float","L","=","clamp","(","t","/","HR",",","0.0",",","1.0",")","-","step","(","HT",",","t",")","*","(","t","-","HT",")","/","HS",";","return","L",";","}","dc","dd","(",")","{","dc","sp",";","float","t",";","float","HM","=", "a_p_data","[","0","]",";","float","HV","=","a_p_data","[","1","]",";","if","(","u_p_cyclic","==","1",")","{","t","=","mod","(","u_p_time",",","u_p_length",")","-","HV",";","if","(","t","<","0.0",")","t","+=","u_p_length",";","}","if","(","u_p_cyclic","!=","1",")","{","t","=","u_p_time","-","HV",";","}","if","(","t","<","0.0","||","t",">=","HM",")","{","sp",".","di","=","0.0001",";","sp",".","O","=","vec3","(","99999.0",",","0.0",",","0.0",")",";","}","if","(","!","(","t","<","0.0","||","t",">=", "HM",")",")","{","vec4","S","=","R","(","a_tbn",")",";","vec3","ca","=","T","(","S",",","vec3","(","0.0",",","1.0",",","0.0",")",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WORLD_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","fr","=","a_position",";","vec3","rz","=","ca",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","fr","=","ap","(","u_model_tsr",",","a_position",")",";","vec3","rz","=","bI","(","u_model_tsr",",","ca",")",";"]}]}}]},{TYPE:"txt", TOKENS:["vec3","HW","=","u_p_nfactor","*","rz",";","HW","+=","a_p_vels",".","xyz",";","HW",".","z","-=","u_p_gravity","*","t","/","2.0",";","float","HX","=","max","(","u_p_mass",",","EPSILON",")",";","HW","+=","(","u_p_wind_fac","*","u_wind","/","HX",")","*","t","/","2.0",";","sp",".","dr","=","t",";","sp",".","dp","=","HW",";","sp",".","dq","=","ca","*","a_p_vels",".","w",";","sp",".","O","=","fr","+","HW","*","t",";","sp",".","bP","=","a_p_vels",".","w","*","t",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["USE_COLOR_RAMP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["sp",".","di","=","GLSL_TEXTURE","(","u_color_ramp_tex",",","vec2","(","t","/","u_p_max_lifetime",",","0.5",")",")",".","g",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["sp",".","di","=","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["COLOR_RAMP_LENGTH",0,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["sp",".","aQ","=","HO","(","t",",","u_p_max_lifetime",",","u_p_color_ramp", ")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["sp",".","aQ","=","vec3","(","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["sp",".","L","=","HU","(","t",",","a_p_data","[","0","]",",","u_p_fade_in",",","u_p_fade_out",")",";","}","return","sp",";","}"]}]}}]}]},exports["include/particles_nodes.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"PARTICLES_NODES_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"PARTICLES_NODES_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"CAUSTICS", TOKENS:["0"]},{TYPE:"var",NAME:"DOUBLE_SIDED_LIGHTING",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"PARTICLE_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"NUM_LIGHTS",TOKENS:["0"]},{TYPE:"var",NAME:"CALC_TBN_SPACE",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_BSDF_BEGIN",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"environment.glslf"}]}}]},{TYPE:"include",FILE:"color_util.glslf"}, {TYPE:"include",FILE:"math.glslv"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_SEPHSV",{TYPE:"logical_or_expr",PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","kj","(","vec3","rgb",")","{","vec4","hM","=","vec4","(","_0_0",",","-","_1_0","/","3.0",",","2.0","/","3.0",",","-","_1_0",")",";","vec4","p","=","mix","(","vec4","(","rgb",".","bg",",","hM",".", "wz",")",",","vec4","(","rgb",".","gb",",","hM",".","xy",")",",","step","(","rgb",".","b",",","rgb",".","g",")",")",";","vec4","q","=","mix","(","vec4","(","p",".","xyw",",","rgb",".","r",")",",","vec4","(","rgb",".","r",",","p",".","yzx",")",",","step","(","p",".","x",",","rgb",".","r",")",")",";","float","dC","=","q",".","x","-","min","(","q",".","w",",","q",".","y",")",";","float","iF","=","1.0e-10",";","return","vec3","(","abs","(","q",".","z","+","(","q",".","w","-","q",".","y",")","/","(","6.0", "*","dC","+","iF",")",")",",","dC","/","(","q",".","x","+","iF",")",",","q",".","x",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_HUE_SAT","USE_NODE_MIX_RGB_HUE","USE_NODE_MIX_RGB_SATURATION","USE_NODE_MIX_RGB_VALUE","USE_NODE_MIX_RGB_COLOR","USE_NODE_COMBHSV",{TYPE:"logical_or_expr",PLACES:6}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","kl","(","vec3","kk",")","{","vec4","hM","=","vec4","(","_1_0",",","2.0","/","3.0",",","_1_0","/","3.0",",","3.0",")",";","vec3", "p","=","abs","(","fract","(","vec3","(","kk",".","r",",","kk",".","r",",","kk",".","r",")","+","hM",".","xyz",")","*","6.0","-","hM",".","www",")",";","return","kk",".","b","*","mix","(","hM",".","xxx",",","clamp","(","p","-","hM",".","xxx",",","_0_0",",","_1_0",")",",","kk",".","g",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_UV","USE_NODE_B4W_PARALLAX","USE_NODE_UV_MERGED",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3", "sn","(","vec2","gX",")","{","return","vec3","(","gX","*","2.0","-","vec2","(","_1_0",",","_1_0",")",",","_0_0",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEXTURE_COLOR","USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","so","(","vec3","rk",")","{","return","vec2","(","rk",".","xy","*","_0_5","+","vec2","(","_0_5",",","_0_5",")",")",";","}"]}]}}]},{TYPE:"node",NAME:"CAMERA",NODE_VARS:[], DECLARATIONS:[{TYPE:"node_out",NAME:"sU",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"sV",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"sW",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_sU"],STATEMENTS:[{TYPE:"txt",TOKENS:["sU","=","normalize","(","sR",".","xyz",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_sV"],STATEMENTS:[{TYPE:"txt",TOKENS:["sV","=","abs","(","sR",".", "z",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_sW"],STATEMENTS:[{TYPE:"txt",TOKENS:["sW","=","length","(","sR",".","xyz",")",";"]}]}]}]},{TYPE:"node",NAME:"COMBRGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"sX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"sY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"sZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"s_",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["s_","=","vec3","(","sX",",","sY",",","sZ",")",";"]}]},{TYPE:"node",NAME:"COMBHSV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"ta",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"td",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["td","=","kl","(","vec3","(","ta",",","tb",",","tc",")",")",";"]}]},{TYPE:"node",NAME:"EMPTY_UV", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"te",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["te","=","vec3","(","-","_1_0",",","-","_1_0",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"EMPTY_VC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tf",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tf","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tg",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["tg","=","sn","(","A",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_OR",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"th",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["th","=","2.0","*","vec3","(","A",",","_0_0",")","-","vec3","(","_1_0",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"ti",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ti","=","vec3","(","_1_0",")",";"]}]}, {TYPE:"node",NAME:"GEOMETRY_VC1",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tj",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tj","=","_1_0",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC2",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tl",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tk","=","_1_0",";","tl","=","_1_0",";"]}]},{TYPE:"node",NAME:"GEOMETRY_VC3",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out", NAME:"tm",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"to",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tm","=","_1_0",";","tn","=","_1_0",";","to","=","_1_0",";"]}]},{TYPE:"node",NAME:"GEOMETRY_NO",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"tr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tu",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["tu","=","tr",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["tu","=","sK",".","xyz",";"]}]}]}]},{TYPE:"node",NAME:"GEOMETRY_FB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tv",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt", TOKENS:["tv","=","(","gl_FrontFacing",")","?","_0_0",":","_1_0",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["tv","=","(","gl_FrontFacing",")","?","_1_0",":","_0_0",";"]}]}]}]},{TYPE:"node",NAME:"GEOMETRY_VW",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tx",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tx","=","-","_","(","u_view_tsr_frag",",","oy",")",";"]}]},{TYPE:"node",NAME:"GEOMETRY_LO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"ty",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ty","[","0","]","=","sR","[","0","]",";","ty","[","1","]","=","sR","[","1","]",";","ty","[","2","]","=","sR","[","2","]",";"]}]},{TYPE:"node",NAME:"GEOMETRY_GL",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tz",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tz","=","vec3","(","ow",".","r",",","ow",".","g",",","ow",".","b",")",";"]}]},{TYPE:"node",NAME:"NEW_GEOMETRY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"tB", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["tB","=","vec3","(","_0_0",")",";","tC","=","vec3","(","_0_0",")",";","tD","=","vec3","(","_0_0",")",";","tE","=","vec3","(","_0_0",")",";","tF","=","vec3","(","_0_0",")",";","tG","=","vec3","(","_0_0",")",";","tH","=","_0_0",";","tI","=","_0_0",";"]}]},{TYPE:"node",NAME:"HUE_SAT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"tJ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tL",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"tM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","kk","=","kj","(","tN",")",";","kk","[","0","]","+=","(","tJ","-","_0_5",")",";","if","(","kk","[","0","]",">","_1_0",")","kk","[","0","]","-=","_1_0",";","else","if","(","kk","[","0","]","<","_0_0",")","kk","[","0","]","+=","_1_0",";","kk","*=","vec3","(","_1_0",",", "tK",",","tL",")",";","kk","=","mix","(","vec3","(","_1_0",")",",","mix","(","vec3","(","_0_0",")",",","kk",",","step","(","vec3","(","_0_0",")",",","kk",")",")",",","step","(","kk",",","vec3","(","_1_0",")",")",")",";","tO","=","mix","(","tN",",","kl","(","kk",")",",","tM",")",";"]}]},{TYPE:"node",NAME:"INVERT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"tP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"tQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tR",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["tR","=","mix","(","tQ",",","vec3","(","_1_0",")","-","tQ",",","tP",")",";"]}]},{TYPE:"node",NAME:"LAMP",NODE_VARS:[{TYPE:"node_var",NAME:"LAMP_TYPE",TOKENS:["HEMI"]},{TYPE:"node_var",NAME:"LAMP_INDEX",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_USE_SPHERE",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_SPOT_SIZE",TOKENS:["0.8"]},{TYPE:"node_var",NAME:"LAMP_SPOT_BLEND",TOKENS:["0.03"]},{TYPE:"node_var",NAME:"LAMP_LIGHT_DIST",TOKENS:["30.0"]}],DECLARATIONS:[{TYPE:"node_out", NAME:"tS",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"tT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tV",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tS"],STATEMENTS:[{TYPE:"txt",TOKENS:["tS","=","u_lamp_light_color_intensities","[","LAMP_INDEX","]",";"]}]}]},{TYPE:"txt",TOKENS:["vec3","tW","=","u_lamp_light_directions","[","LAMP_INDEX", "]",";","vec3","tX","=","u_lamp_light_positions","[","LAMP_INDEX","]",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2},"LAMP_TYPE","POINT",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["tT","=","-","h","+","tX",";","tU","=","length","(","tT",")",";","tT","=","normalize","(","tT",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tV"],STATEMENTS:[{TYPE:"txt",TOKENS:["tV", "=","LAMP_LIGHT_DIST","/","(","LAMP_LIGHT_DIST","+","tU","*","tU",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","pb","=","dot","(","tT",",","tW",")",";","pb","*=","smoothstep","(","_0_0",",","_1_0",",","(","pb","-","LAMP_SPOT_SIZE",")","/","LAMP_SPOT_BLEND",")",";","tV","*=","pb",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_USE_SPHERE"],STATEMENTS:[{TYPE:"txt",TOKENS:["tV", "*=","max","(","LAMP_LIGHT_DIST","-","tU",",","_0_0",")","/","LAMP_LIGHT_DIST",";"]}]}]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tT"],STATEMENTS:[{TYPE:"txt",TOKENS:["tT","=","tW",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tU"],STATEMENTS:[{TYPE:"txt",TOKENS:["tU","=","length","(","tX","-","h",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tV"],STATEMENTS:[{TYPE:"txt",TOKENS:["tV","=", "_1_0",";"]}]}]}]}]}]},{TYPE:"node",NAME:"NORMAL",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"tY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"tZ",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"t_",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"sB",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_tZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["tZ","=","sB",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["USE_OUT_t_"],STATEMENTS:[{TYPE:"txt",TOKENS:["t_","=","-","dot","(","tY",",","sB",")",";"]}]}]}]},{TYPE:"node",NAME:"B4W_VECTOR_VIEW",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"ua",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ub",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ub","=","-","_","(","u_view_tsr_frag",",","ua",")",";"]}]},{TYPE:"node",NAME:"BSDF_BEGIN",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"uc",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"ud",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ue",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uf",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ug",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ui",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ul",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"um",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"un",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uo",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"up",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ur",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"us",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ut",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uu",QUALIFIER:["vec4"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"uw",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ux",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uy",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uC",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ur","=","ud", ";","us","=","uf",";","ut","=","ui",";","ux","=","ud",";","uy","=","uf",";","metalness_out","=","uh",";","uz","=","ul",";","uA","=","um",";","uB","=","un",";","uC","=","uo",";","up","=","sS","*","ur",";","uq","=","sT","*","u_environment_energy","*","cE","(","ut",")",";","uw","=","cH","(","ur",")",";","H","=","uw",";","uu","[","0","]","=","ue",";","uu","[","1","]","=","ug",";","uu","[","2","]","=","uh",";"]}]},{TYPE:"node",NAME:"BSDF_END",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"uD",QUALIFIER:["vec4"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uG",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uM",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uN",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"uO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["uO","=","uD",".","rgb","+","uE",";","uO","=","mix","(","uO",",","uK",",","uL",")",";","I","=","_1_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NODE_BSDF_TRANSPARENT"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","uR","=","GLSL_TEXTURE","(", "u_refractmap",",","l",".","xy","/","l",".","z",")",".","rgb",";","bG","(","uR",")",";","uM","=","uM","*","uR",";","uO","+=","uM",";"]}]}]},{TYPE:"txt",TOKENS:["uF",";"]}]},{TYPE:"node",NAME:"BSDF_COMPUTE",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"uY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"uZ",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"u_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"va", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vb",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vd",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","rz","=","u_",";","float","uU","=","clamp","(","vb","[","0","]",",","_0_0",",","_1_0",")",";","float","uQ","=","clamp","(","vb","[","1","]",",","_0_0",",","_1_0",")",";","float","rW","=","vb","[","2","]",";","vec3","p_","=","normalize", "(","oy","+","uY",")",";","float","pj","=","(","_1_0","-","va",")","*","dot","(","rz",",","uY",")","+","va",";","float","vf","=","(","_1_0","-","va",")","*","max","(","dot","(","uY",",","p_",")",",","_0_0",")","+","va",";","float","vg","=","(","_1_0","-","va",")","*","max","(","dot","(","u_",",","p_",")",",","_0_0",")","+","va",";","vc","=","_0_0",";","if","(","uZ",".","r","!=","_0_0",")","{","if","(","uU",">","_0_0",")","{","float","pz","=","max","(","dot","(","rz",",","oy",")",",","_0_0",")",";", "float","pA","=","uU","*","uU",";","float","cG","=","_1_0","-","_0_5","*","(","pA","/","(","pA","+","0.33",")",")",";","vec3","pB","=","uY","-","pj","*","rz",";","vec3","pC","=","oy","-","pz","*","rz",";","if","(","length","(","pB",")","==","_0_0","||","length","(","pC",")","==","_0_0","||","abs","(","pj",")",">","_1_0","||","abs","(","pz",")",">","_1_0",")","vc","=","pj","*","cG",";","else","{","float","pD","=","acos","(","pj",")",";","float","pE","=","acos","(","pz",")",";","vec3","pF","=","normalize", "(","pB",")",";","vec3","pG","=","normalize","(","pC",")",";","float","a",",","b",";","a","=","max","(","pD",",","pE",")",";","b","=","min","(","pD",",","pE",")",";","b","*=","0.95",";","float","t","=","max","(","dot","(","pF",",","pG",")",",","_0_0",")",";","float","hS","=","0.45","*","(","pA","/","(","pA","+","0.09",")",")",";","vc","=","pj","*","(","cG","+","(","hS","*","t","*","sin","(","a",")","*","tan","(","b",")",")",")",";","}","}","else","vc","=","pj",";","vc","=","max","(","vc",",","_0_0", ")",";","}","float","L","=","uQ",";","float","vh","=","L","*","L",";","float","d_","=","(","vg","*","vh","-","vg",")","*","vg","+","_1_0",";","float","cD","=","vh","/","(","M_PI","*","d_","*","d_",")",";","float","vi",";","float","vj",";","float","vl","=","pow","(","_1_0","-","vf",",","5.0",")",";","vi","=","_1_0",";","vj","=","vl",";","float","hM","=","L","/","2.0",";","float","vm","=","hM","*","hM",";","float","vn","=","_1_0","-","vm",";","float","vo","=","_1_0","/","(","vf","*","vf","*","vn","+", "vm",")",";","vi","*=","vo",";","vj","*=","vo",";","float","rR","=","mix","(","0.04",",","_1_0",",","rW",")",";","float","vp","=","mix","(","vj",",","vi",",","rR",")",";","vd","=","max","(","pj","*","cD","*","vp",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"BSDF_ANISOTROPIC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"vJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"vM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vP","=","vJ",";","vK",";","vL",";","vM",";","vN",";","vO",";"]}]},{TYPE:"node",NAME:"BSDF_DIFFUSE",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"vQ",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"vR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"vS",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vV",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vY",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"vZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wb",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"we",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vU","=","vQ",";","vV","=","vR",";","vY","=","_0_0",";","wc","=","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"], STATEMENTS:[{TYPE:"txt",TOKENS:["vZ","=","vS",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vZ","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["vT",";","vW",";","vX",";","wb",";","wd",";","we",";"]}]},{TYPE:"node",NAME:"BSDF_GLASS",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wf",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wg",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wi",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wj",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wj","=","wf",";","wg",";","wh",";","wi",";"]}]},{TYPE:"node",NAME:"BSDF_GLOSSY",NODE_VARS:[{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"wk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wm",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wn",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wp",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ws",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wB", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wD",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wq","=","wk",";","wr","=","wl",";","ws","=","_1_0",";","wB","=","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"],STATEMENTS:[{TYPE:"txt",TOKENS:["wt","=","wm",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["wt","=","ox",";"]}]}]},{TYPE:"txt",TOKENS:["wn", ";","wo",";","wp",";","wA",";","wC",";","wD",";"]}]},{TYPE:"node",NAME:"BSDF_HAIR",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wI",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wI","=","wE",";","wF",";","wG",";", "wH",";"]}]},{TYPE:"node",NAME:"BSDF_TRANSPARENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wO",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wP",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wW",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wV","=","wJ",";","wP","=","_0_0",";","wU","=","_0_0",";","wW","=","_0_0",";","wQ","=","ox",";","wK",";","wL",";","wM",";", "wN",";","wO",";","wT",";"]}]},{TYPE:"node",NAME:"BSDF_TRANSLUCENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"wX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"wY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"wZ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["wZ","=","wX",";","wY",";"]}]},{TYPE:"node",NAME:"BSDF_REFRACTION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"w_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xa", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xd",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xd","[","0","]","=","xd","[","1","]","=","xd","[","2","]","=","_0_0",";","w_",";","xa",";","xb",";","xc",";"]}]},{TYPE:"node",NAME:"BSDF_TOON",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xe",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"xf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xg",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xi",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xi","=","xe",";","xf",";","xg",";","xh",";"]}]},{TYPE:"node",NAME:"BSDF_VELVET",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xj",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xk",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xl",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xm",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xm","=","xj",";","xk",";","xl",";"]}]},{TYPE:"node",NAME:"SUBSURFACE_SCATTERING",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xn",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xo",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xp",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xq", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xs",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xt",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xt","[","0","]","=","xt","[","1","]","=","xt","[","2","]","=","_0_0",";","xn",";","xp",";","xq",";","xr",";","xs",";","xo",";"]}]},{TYPE:"node",NAME:"EMISSION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xu",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"xv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xG",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xM",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xJ","=","xv","*","xu",";","xF","=","_0_0",";","xK","=","_1_0",";","xG","=","ox",";","xA",";","xB",";","xC",";","xD",";","xE",";","xL",";","xM",";"]}]},{TYPE:"node",NAME:"AMBIENT_OCCLUSION", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xO","[","0","]","=","xO","[","1","]","=","xO","[","2","]","=","_0_0",";","xN",";"]}]},{TYPE:"node",NAME:"HOLDOUT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"xP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xP","[","0","]","=","xP","[","1","]","=","xP","[","2","]","=","_0_0",";"]}]}, {TYPE:"node",NAME:"VOLUME_ABSORPTION",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xS",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xS","[","0","]","=","xS","[","1","]","=","xS","[","2","]","=","_0_0",";","xQ",";","xR",";"]}]},{TYPE:"node",NAME:"VOLUME_SCATTER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"xT",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"xU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"xV",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"xW",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["xW","[","0","]","=","xW","[","1","]","=","xW","[","2","]","=","_0_0",";","xT",";","xU",";","xV",";"]}]},{TYPE:"node",NAME:"BUMP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Ib",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ic",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"xZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Id",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ya",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ya","=","Id",";","Ib",";","Ic",";","xZ",";"]}]},{TYPE:"node",NAME:"DISPLACEMENT_BUMP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yi",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yi", "=","ox",";","yh",";"]}]},{TYPE:"node",NAME:"NORMAL_MAP",NODE_VARS:[{TYPE:"node_var",NAME:"SPACE",TOKENS:["NM_TANGENT"]},{TYPE:"node_var",NAME:"USE_NORMAL_IN",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"yj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yk",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yl",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ym",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NORMAL_IN"], STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","yn","=","yl",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","yn","=","sM",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["SPACE","NM_TANGENT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["ym","=","2.0","*","yk",".","xyz","-","_1_0",";","ym","=","sQ","*","ym",";"]}]},{TYPE:"node_elif",EXPRESSION:["SPACE","NM_OBJECT",{TYPE:"equal_expr",PLACES:2},"SPACE","NM_BLENDER_OBJECT",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr", PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["ym","=","2.0","*","yk",".","xyz","-","_1_0",";","ym",".","yz","*=","-","_1_0",";","ym","=","bI","(","u_model_tsr",",","ym",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["SPACE","NM_WORLD",{TYPE:"equal_expr",PLACES:2},"SPACE","NM_BLENDER_WORLD",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["ym","=","2.0","*","yk",".","xyz","-","_1_0",";","ym",".","yz","*=","-","_1_0",";"]}]}]},{TYPE:"txt",TOKENS:["float","me", "=","max","(","yj",",","_0_0",")",";","ym","=","normalize","(","mix","(","yn",",","ym",",","me",")",")",";"]}]},{TYPE:"node",NAME:"VECT_TRANSFORM",NODE_VARS:[{TYPE:"node_var",NAME:"CONVERT_TYPE",TOKENS:["VT_WORLD_TO_OBJECT"]},{TYPE:"node_var",NAME:"VECTOR_TYPE",TOKENS:["VT_VECTOR"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"yo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yp",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_TYPE", "VT_WORLD_TO_WORLD",{TYPE:"equal_expr",PLACES:2},"CONVERT_TYPE","VT_OBJECT_TO_OBJECT",{TYPE:"equal_expr",PLACES:2},"CONVERT_TYPE","VT_CAMERA_TO_CAMERA",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:3}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","yo",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["VECTOR_TYPE","VT_POINT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_CAMERA", {TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_view_tsr_frag",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_model_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_model_tsr",",","yo",")",";"]}]},{TYPE:"node_elif", EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_model_tsr",",","yo",")",";","yp","=","ap","(","u_view_tsr_frag",",","yp",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_CAMERA_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_view_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}], STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","ap","(","u_view_tsr_inverse",",","yo",")",";","yp","=","ap","(","u_model_tsr_inverse",",","yp",")",";"]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_CAMERA",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_view_tsr_frag",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_WORLD_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt", TOKENS:["yp","=","_","(","u_model_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_model_tsr",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_OBJECT_TO_CAMERA",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_model_tsr",",","yo",")",";","yp","=","_","(","u_view_tsr_frag",",","yp",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE", "VT_CAMERA_TO_WORLD",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_view_tsr_inverse",",","yo",")",";"]}]},{TYPE:"node_elif",EXPRESSION:["CONVERT_TYPE","VT_CAMERA_TO_OBJECT",{TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","_","(","u_view_tsr_inverse",",","yo",")",";","yp","=","_","(","u_model_tsr_inverse",",","yp",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["VECTOR_TYPE","VT_NORMAL",{TYPE:"equal_expr",PLACES:2}], STATEMENTS:[{TYPE:"txt",TOKENS:["yp","=","normalize","(","yp",")",";"]}]}]}]}]}]},{TYPE:"node",NAME:"BLACKBODY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yr",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yr","[","0","]","=","yr","[","1","]","=","yr","[","2","]","=","_0_0",";","yq",";"]}]},{TYPE:"node",NAME:"WAVELENGTH",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"ys",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"yt",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yt","[","0","]","=","yt","[","1","]","=","yt","[","2","]","=","_0_0",";","ys",";"]}]},{TYPE:"node",NAME:"SEPXYZ",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yu",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yB",QUALIFIER:["float"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["yv","=","yu","[","0","]",";","yA","=","yu","[","1","]",";","yB","=","yu","[","2","]",";"]}]},{TYPE:"node",NAME:"COMBXYZ",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yD",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yF",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yF","[","0","]","=","yC",";", "yF","[","1","]","=","yD",";","yF","[","2","]","=","yE",";"]}]},{TYPE:"node",NAME:"BRIGHTCONTRAST",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yI",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yJ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","b","=","yH","-","yI","*","_0_5",";","yJ","=","max","(","(","_1_0","+","yI", ")","*","yG","+","b",",","vec3","(","_0_0",")",")",";"]}]},{TYPE:"node",NAME:"LIGHT_FALLOFF",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yN",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yO",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yM","=","yN","=","yO", "=","_0_0",";","yK",";","yL",";"]}]},{TYPE:"node",NAME:"TEX_IMAGE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Ie",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"If",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ig",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["If","[","0","]","=","If","[","1","]","=","If","[","2","]","=","_0_0",";","Ig","=","_1_0",";","Ie",";"]}]},{TYPE:"node",NAME:"TEX_ENVIRONMENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in", NAME:"Ih",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ii",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Ii","[","0","]","=","Ii","[","1","]","=","Ii","[","2","]","=","_0_0",";","Ih",";"]}]},{TYPE:"node",NAME:"TEX_SKY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yP",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yQ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["yQ","[","0","]","=","yQ","[","1","]","=","yQ","[", "2","]","=","_0_0",";","yP",";"]}]},{TYPE:"node",NAME:"TEX_NOISE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yS",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"yW",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["yV","[","0","]","=","yV","[","1","]","=","yV","[","2","]","=","_0_0",";","yW","=","_1_0",";","yR",";","yS",";","yT",";","yU",";"]}]},{TYPE:"node",NAME:"TEX_WAVE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"yX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"yZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"y_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"za",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zb",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zc",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zb","[","0","]","=","zb","[","1","]","=","zb","[","2","]","=","_0_0",";","zc","=","_1_0",";","yX",";","yY",";","yZ",";","y_",";","za",";"]}]},{TYPE:"node",NAME:"TEX_VORONOI",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ze",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"zf",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zg",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zf","[","0","]","=","zf","[","1","]","=","zf","[","2","]","=","_0_0",";","zg","=","_1_0",";","zd",";","ze",";"]}]},{TYPE:"node",NAME:"TEX_MUSGRAVE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zi",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zj",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zm",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zp",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zo","[","0","]","=","zo","[","1","]","=","zo","[","2","]", "=","_0_0",";","zp","=","_1_0",";","zh",";","zi",";","zj",";","zk",";","zl",";","zm",";","zn",";"]}]},{TYPE:"node",NAME:"TEX_GRADIENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zs",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zr","[","0","]","=","zr","[","1","]","=","zr","[","2","]","=","_0_0",";","zs","=","_1_0",";","zq",";"]}]},{TYPE:"node", NAME:"TEX_MAGIC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zA","[","0","]","=","zA","[","1","]","=","zA","[","2","]","=","_0_0",";","zB","=","_1_0",";","zt", ";","zu",";","zv",";"]}]},{TYPE:"node",NAME:"TEX_CHECKER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zH",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zG", "[","0","]","=","zG","[","1","]","=","zG","[","2","]","=","_0_0",";","zH","=","_1_0",";","zC",";","zD",";","zE",";","zF",";"]}]},{TYPE:"node",NAME:"TEX_BRICK",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zM",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"zN",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zO",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zR","[","0","]","=","zR","[","1","]","=","zR","[","2","]","=","_0_0",";","zS", "=","_1_0",";","zI",";","zJ",";","zK",";","zL",";","zM",";","zN",";","zO",";","zP",";","zQ",";"]}]},{TYPE:"node",NAME:"ADD_SHADER",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zT",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"zV",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["zV","=","clamp","(","zT","+","zU",",","vec3","(","_0_0",")",",","vec3","(","_1_0",")",")",";"]}]},{TYPE:"node",NAME:"MIX_SHADER", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"zW",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"zZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"z_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Aa",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ab",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ac", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ad",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ag",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ah",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ai",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Aj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ak",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Al",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Am",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"An",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ao",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ap",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"As",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"At",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Au",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Av",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"Aw",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ax",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ay",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Az",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AB",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AF",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"AG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","zW",",","_0_0",",","_1_0",")",";","Ax","=","mix","(","zZ",",","Ak",",","AJ",")",";","Ay","=","mix","(","z_",",","Al",",","AJ",")",";","if","(","Ac",">","_0_0",")","{","if","(","Ao",">","_0_0",")","{","Az","=","mix","(","Aa",",","Am",",","AJ", ")",";","AA","=","mix","(","Ab",",","An",",","AJ",")",";","}","else","{","Az","=","Aa",";","AA","=","Ab",";","}","}","else","{","Az","=","Am",";","AA","=","An",";","}","if","(","Ah",">","_0_0",")","{","if","(","At",">","_0_0",")","{","AF","=","mix","(","Ag",",","As",",","AJ",")",";","}","else","{","AF","=","Ag",";","}","}","else","{","AF","=","As",";","}","AB","=","mix","(","Ac",",","Ao",",","AJ",")",";","AC","=","mix","(","Ad",",","Ap",",","AJ",")",";","AG","=","mix","(","Ah",",","At",",","AJ",")", ";","AH","=","mix","(","Ai",",","Au",",","AJ",")",";","AI","=","mix","(","Aj",",","Av",",","AJ",")",";"]}]},{TYPE:"node",NAME:"UV_MERGED",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AL",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AK"],STATEMENTS:[{TYPE:"txt",TOKENS:["AK","=","sn","(","A",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AL"], STATEMENTS:[{TYPE:"txt",TOKENS:["AL","=","vec3","(","A",",","_0_0",")",";"]}]}]}]},{TYPE:"node",NAME:"TEX_COORD_UV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AM",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AM","=","vec3","(","A",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"TEX_COORD_NO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AN",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AN","=","ox",";"]}]},{TYPE:"node",NAME:"TEX_COORD_GE", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AO",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AO","=","vec3","(","A",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"TEX_COORD_OB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AP","[","0","]","=","AP","[","1","]","=","AP","[","2","]","=","_1_0",";"]}]},{TYPE:"node",NAME:"TEX_COORD_CA",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AQ",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AQ","[","0","]","=","sR","[","0","]",";","AQ","[","1","]","=","sR","[","1","]",";","AQ","[","2","]","=","_1_0",";"]}]},{TYPE:"node",NAME:"TEX_COORD_WI",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AR",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AR","[","0","]","=","AR","[","1","]","=","AR","[","2","]","=","_1_0",";"]}]},{TYPE:"node",NAME:"TEX_COORD_RE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AS",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AS","[","0","]","=","AS","[","1","]","=","AS","[","2","]","=","_1_0",";"]}]},{TYPE:"node",NAME:"UVMAP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AT",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["AT","=","vec3","(","A",",","_0_0",")",";"]}]},{TYPE:"node",NAME:"PARTICLE_INFO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"AU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AV",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AW",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"AZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"A_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"HY",QUALIFIER:["GLSL_IN","vec4"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"HZ",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:true},{TYPE:"node_param", NAME:"H_",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"Ia",QUALIFIER:["GLSL_IN","vec3"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PARTICLE_BATCH"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AU"],STATEMENTS:[{TYPE:"txt",TOKENS:["AU","=","HY","[","0","]",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AV"],STATEMENTS:[{TYPE:"txt",TOKENS:["AV","=","HY","[","1","]",";"]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AW"],STATEMENTS:[{TYPE:"txt",TOKENS:["AW","=","HY","[","2","]",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AX"],STATEMENTS:[{TYPE:"txt",TOKENS:["AX","=","HZ",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AY"],STATEMENTS:[{TYPE:"txt",TOKENS:["AY","=","HY","[","3","]",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_AZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["AZ","=","H_",";"]}]}]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_A_"],STATEMENTS:[{TYPE:"txt",TOKENS:["A_","=","Ia",";"]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["AU","=","_0_0",";","AV","=","_0_0",";","AW","=","_0_0",";","AX","=","vec3","(","_0_0",")",";","AY","=","_0_0",";","AZ","=","AX",";","A_","=","AX",";"]}]}]}]},{TYPE:"node",NAME:"HAIR_INFO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"Ba",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bb",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"Bc",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bd",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Ba","=","_0_0",";","Bb","=","_0_0",";","Bc","=","_0_0",";","Bd","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"OBJECT_INFO",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"Be",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bg",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"Bh",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bf","=","_0_0",";","Bg","=","_0_0",";","Bh","=","_0_0",";","Be","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"WIREFRAME",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Bi",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bj",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bj","=","Bi",";"]}]},{TYPE:"node",NAME:"TANGENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out", NAME:"Bk",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bk","=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"LAYER_WEIGHT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Ij",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ik",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bo",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bn","=","Bo","=","_0_0",";", "Ik",";","Ij",";"]}]},{TYPE:"node",NAME:"LIGHT_PATH",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"Bq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Br",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bs",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bt",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bw", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bx",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"By",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Bz",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Bq","=","Br","=","Bs","=","_0_0",";","Bt","=","Bu","=","Bv","=","_0_0",";","Bw","=","Bw","=","By","=","Bz","=","_0_0",";","Bx","=","_0_0",";"]}]},{TYPE:"node",NAME:"ATTRIBUTE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"BB", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BD",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BB","=","BC","=","vec3","(","_0_0",")",";","BD","=","_0_0",";"]}]},{TYPE:"node",NAME:"SCRIPT",NODE_VARS:[],DECLARATIONS:[],STATEMENTS:[]},{TYPE:"node",NAME:"CURVE_VEC",NODE_VARS:[{TYPE:"node_var",NAME:"READ_R",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_G",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_B", TOKENS:["0"]},{TYPE:"node_var",NAME:"NODE_TEX_ROW",TOKENS:["0.0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BG",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BG","=","BF",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_R"],STATEMENTS:[{TYPE:"txt",TOKENS:["BG",".","r","=","(","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","_0_5", "*","BF",".","r","+","_0_5",",","NODE_TEX_ROW",")",")",".","r","-","_0_5",")","*","2.0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_G"],STATEMENTS:[{TYPE:"txt",TOKENS:["BG",".","g","=","(","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","_0_5","*","BF",".","g","+","_0_5",",","NODE_TEX_ROW",")",")",".","g","-","_0_5",")","*","2.0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_B"],STATEMENTS:[{TYPE:"txt",TOKENS:["BG",".","b","=","(","GLSL_TEXTURE", "(","u_nodes_texture",",","vec2","(","_0_5","*","BF",".","b","+","_0_5",",","NODE_TEX_ROW",")",")",".","b","-","_0_5",")","*","2.0",";"]}]}]},{TYPE:"txt",TOKENS:["BG","=","mix","(","BF",",","BG",",","BE",")",";"]}]},{TYPE:"node",NAME:"CURVE_RGB",NODE_VARS:[{TYPE:"node_var",NAME:"READ_A",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_R",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_G",TOKENS:["0"]},{TYPE:"node_var",NAME:"READ_B",TOKENS:["0"]},{TYPE:"node_var",NAME:"NODE_TEX_ROW",TOKENS:["_0_0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"BH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BJ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_A"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","r","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BI",".","r",",","NODE_TEX_ROW",")",")",".","a",";","float","g","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BI",".","g",",","NODE_TEX_ROW", ")",")",".","a",";","float","b","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BI",".","b",",","NODE_TEX_ROW",")",")",".","a",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","r","=","BI",".","r",";","float","g","=","BI",".","g",";","float","b","=","BI",".","b",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_R"],STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","r","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","r",",","NODE_TEX_ROW",")",")",".","r", ";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","r","=","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_G"],STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","g","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","g",",","NODE_TEX_ROW",")",")",".","g",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","g","=","g",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["READ_B"],STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","b","=","GLSL_TEXTURE", "(","u_nodes_texture",",","vec2","(","b",",","NODE_TEX_ROW",")",")",".","b",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["BJ",".","b","=","b",";"]}]}]},{TYPE:"txt",TOKENS:["BJ","=","mix","(","BI",",","BJ",",","BH",")",";"]}]},{TYPE:"node",NAME:"VALTORGB",NODE_VARS:[{TYPE:"node_var",NAME:"NODE_TEX_ROW",TOKENS:["_0_0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BM", QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE","(","u_nodes_texture",",","vec2","(","BK",",","NODE_TEX_ROW",")",")",";","BL","=","BN",".","rgb",";","BM","=","BN",".","a",";"]}]},{TYPE:"node",NAME:"MAPPING",NODE_VARS:[{TYPE:"node_var",NAME:"MAPPING_SCALE_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_SCALE",TOKENS:["vec3","(","_1_0",")"]},{TYPE:"node_var",NAME:"MAPPING_TRANS_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_TRANS",TOKENS:["vec3", "(","_0_0",")"]},{TYPE:"node_var",NAME:"MAPPING_TRS_MATRIX_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_TRS_MATRIX",TOKENS:["mat4","(","_1_0",")"]},{TYPE:"node_var",NAME:"MAPPING_MIN_CLIP_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_MIN_CLIP",TOKENS:["vec3","(","_0_0",")"]},{TYPE:"node_var",NAME:"MAPPING_MAX_CLIP_DEF",TOKENS:["0"]},{TYPE:"node_var",NAME:"MAPPING_MAX_CLIP",TOKENS:["vec3","(","_1_0",")"]},{TYPE:"node_var",NAME:"MAPPING_IS_NORMAL",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"BO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BP",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","BO",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_SCALE_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","BP","*","MAPPING_SCALE",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_TRANS_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","BP","+","MAPPING_TRANS",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MAPPING_TRS_MATRIX_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","(","MAPPING_TRS_MATRIX","*","vec4","(","BP",",","_1_0",")",")",".","xyz",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_MIN_CLIP_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","max","(","BP",",","MAPPING_MIN_CLIP",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_MAX_CLIP_DEF"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","min","(","BP",",","MAPPING_MAX_CLIP",")",";"]}]}]}, {TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAPPING_IS_NORMAL"],STATEMENTS:[{TYPE:"txt",TOKENS:["BP","=","normalize","(","BP",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_ADD",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["BS","=","BQ", "+","BR",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["BS","=","clamp","(","BS",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_SUBTRACT",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BV",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["BV","=","BT","-","BU",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["BV","=","clamp","(","BV",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MULTIPLY",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BW",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"BX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"BY",QUALIFIER:["float"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["BY","=","BW","*","BX",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["BY","=","clamp","(","BY",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_DIVIDE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"BZ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"B_",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ca",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Ca","=","(","B_","!=","_0_0",")","?","BZ","/","B_",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ca","=","clamp","(","Ca",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_SINE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cc",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cd",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cd","=","sin","(","Cb",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cd","=","clamp","(","Cd",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cc",";"]}]},{TYPE:"node",NAME:"MATH_COSINE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ce",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cg",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cg","=","cos","(","Ce",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cg","=","clamp","(","Cg",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cf",";"]}]},{TYPE:"node",NAME:"MATH_TANGENT",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}], DECLARATIONS:[{TYPE:"node_in",NAME:"Ch",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ci",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cj",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cj","=","tan","(","Ch",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cj","=","clamp","(","Cj",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Ci",";"]}]},{TYPE:"node",NAME:"MATH_ARCSINE", NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ck",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cl",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cm",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cm","=","(","Ck","<=","_1_0","&&","Ck",">=","-","_1_0",")","?","asin","(","Ck",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt", TOKENS:["Cm","=","clamp","(","Cm",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cl",";"]}]},{TYPE:"node",NAME:"MATH_ARCCOSINE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Co",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cp",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cp","=","(","Cn","<=","_1_0","&&","Cn",">=","-","_1_0", ")","?","acos","(","Cn",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cp","=","clamp","(","Cp",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Co",";"]}]},{TYPE:"node",NAME:"MATH_ARCTANGENT",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cq",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"Cs",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cs","=","atan","(","Cq",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cs","=","clamp","(","Cs",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["Cr",";"]}]},{TYPE:"node",NAME:"MATH_POWER",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ct",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Cu",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cv",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","Ct","<","_0_0","&&","Cu","!=","floor","(","Cu",")",")","Cv","=","_0_0",";","else","if","(","Cu","==","_0_0",")","Cv","=","_1_0",";","else","if","(","Ct","<","_0_0",")","Cv","=","mix","(","_1_0",",","-","_1_0",",","sign","(","mod","(","-","Cu",",","2.0",")",")",")","*","pow","(","-","Ct",",","Cu",")",";","else","if","(","Ct","==","_0_0",")","Cv", "=","_0_0",";","else","Cv","=","pow","(","Ct",",","Cu",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cv","=","clamp","(","Cv",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_LOGARITHM",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Cx",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Cy", QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Cy","=","(","Cw",">","_0_0","&&","Cx",">","_0_0",")","?","log2","(","Cw",")","/","log2","(","Cx",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Cy","=","clamp","(","Cy",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MINIMUM",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Cz",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CB","=","min","(","Cz",",","CA",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CB","=","clamp","(","CB",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MAXIMUM",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"CC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CD",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CE",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CE","=","max","(","CC",",","CD",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CE","=","clamp","(","CE",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_ROUND",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CF",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CG",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CH",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CH","=","floor","(","CF","+","_0_5",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CH","=","clamp","(","CH",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["CG",";"]}]}, {TYPE:"node",NAME:"MATH_LESS_THAN",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CI",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CJ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CK",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CK","=","(","CI","<","CJ",")","?","_1_0",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CK", "=","clamp","(","CK",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_GREATER_THAN",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CL",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CN",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CN","=","(","CL",">","CM",")","?","_1_0",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CN","=","clamp","(","CN",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_MODULO",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CO",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CQ",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CQ","=","abs","(","CP",")",">","0.000001", "?","mod","(","CO",",","CP",")",":","_0_0",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CQ","=","clamp","(","CQ",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATH_ABSOLUTE",NODE_VARS:[{TYPE:"node_var",NAME:"MATH_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CR",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CS",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CT",QUALIFIER:["float"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["CT","=","abs","(","CR",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATH_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CT","=","clamp","(","CT",",","_0_0",",","_1_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["CS",";"]}]},{TYPE:"node",NAME:"MIX_RGB_MIX",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CU",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CV",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"CX",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","CU",",","_0_0",",","_1_0",")",";","CX","=","mix","(","CV",",","CW",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["CX","=","clamp","(","CX",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_ADD",NODE_VARS:[{TYPE:"node_var", NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"CY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"CZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"C_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Da",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","CY",",","_0_0",",","_1_0",")",";","Da","=","mix","(","CZ",",","CZ","+","C_",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Da","=","clamp","(","Da",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_MULTIPLY",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Db",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"De",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Db",",","_0_0",",","_1_0",")",";","De","=","mix","(","Dc",",","Dc","*","Dd",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["De","=","clamp","(","De",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_SUBTRACT",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Df",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"Dg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Di",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Df",",","_0_0",",","_1_0",")",";","Di","=","mix","(","Dg",",","Dg","-","Dh",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Di","=","clamp","(","Di",",","_0_0",",","_1_0", ")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_SCREEN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Dj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dl",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dm",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Dj",",","_0_0",",","_1_0",")",";","float","Dn", "=","_1_0","-","AJ",";","Dm","=","vec3","(","_1_0",")","-","(","vec3","(","Dn",")","+","AJ","*","(","vec3","(","_1_0",")","-","Dl",")",")","*","(","vec3","(","_1_0",")","-","Dk",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dm","=","clamp","(","Dm",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DIVIDE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Do", QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dp",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dr",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Do",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-","AJ",";","Dq","+=","step","(","Dq",",","vec3","(","_0_0",")",")",";","Dr","=","Dn","*","Dp","+","AJ","*","Dp","/","Dq",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dr","=","clamp","(","Dr",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DIFFERENCE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ds",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Du",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dv",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ds",",","_0_0",",","_1_0",")",";","Dv","=","mix","(","Dt",",","abs","(","Dt","-","Du",")",",","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dv","=","clamp","(","Dv",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DARKEN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Dw",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dx",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Dy",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Dz",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Dw",",","_0_0",",","_1_0",")",";","Dz","=","min","(","Dx",".","rgb",",","Dy",".","rgb","*","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Dz","=","clamp", "(","Dz",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_LIGHTEN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DD",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DA",",","_0_0", ",","_1_0",")",";","DD","=","max","(","DB",".","rgb",",","DC",".","rgb","*","AJ",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DD","=","clamp","(","DD",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_OVERLAY",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DE",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DF",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"DG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DH",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DE",",","_0_0",",","_1_0",")",";","vec3","DI","=","vec3","(","_1_0","-","AJ",")",";","DH","=","mix","(","DF","*","(","DI","+","2.0","*","AJ","*","DG",")",",","vec3","(","_1_0",")","-","(","DI","+","2.0","*","AJ","*","(","vec3","(","_1_0",")","-","DG",")",")","*","(","vec3","(","_1_0",")","-","DF",")",",","step", "(","_0_5",",","DF",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DH","=","clamp","(","DH",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_DODGE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DJ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DL",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"DM",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DJ",",","_0_0",",","_1_0",")",";","vec3","DN","=","vec3","(","_1_0",")","-","AJ","*","DL",";","vec3","DO","=","clamp","(","DK","/","DN",",","_0_0",",","_1_0",")",";","DM","=","mix","(","mix","(","DO",",","vec3","(","_1_0",")",",","step","(","DN",",","vec3","(","_0_0",")",")",")",",","DK",",","step","(","DK",",","vec3","(","_0_0",")",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DM","=","clamp","(","DM",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_BURN",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DP",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DS",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DP",",","_0_0",",","_1_0",")",";","vec3","ks","=","vec3","(","_1_0","-","AJ",")",";","vec3","DN","=","ks","+","AJ","*","DR",";","vec3","DO","=","clamp","(","vec3","(","_1_0",")","-","(","vec3","(","_1_0",")","-","DQ",")","/","DN",",","_0_0",",","_1_0",")",";","DS","=","mix","(","DO",",","vec3","(","_0_0",")",",","step","(","DN",",","vec3","(","_0_0",")",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"], STATEMENTS:[{TYPE:"txt",TOKENS:["DS","=","clamp","(","DS",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_HUE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DT",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"DW",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float", "AJ","=","clamp","(","DT",",","_0_0",",","_1_0",")",";","vec3","kk",",","DX",",","DN",";","DW","=","DU",";","DX","=","kj","(","DV",")",";","if","(","DX",".","y","!=","_0_0",")","{","kk","=","kj","(","DW",")",";","kk",".","x","=","DX",".","x",";","DN","=","kl","(","kk",")",";","DW","=","mix","(","DW",",","DN",",","AJ",")",";","}"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["DW","=","clamp","(","DW",",","_0_0",",","_1_0",")",";"]}]}]}]}, {TYPE:"node",NAME:"MIX_RGB_SATURATION",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"DY",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"DZ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"D_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ea",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","DY",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-", "AJ",";","Ea","=","DZ",";","vec3","kk",",","DX",";","kk","=","kj","(","Ea",")",";","if","(","kk",".","y","!=","_0_0",")","{","DX","=","kj","(","D_",")",";","kk",".","y","=","Dn","*","kk",".","y","+","AJ","*","DX",".","y",";","Ea","=","kl","(","kk",")",";","}"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ea","=","clamp","(","Ea",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_VALUE",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Eb",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ec",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ed",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ee",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Eb",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-","AJ",";","vec3","kk",",","DX",";","kk","=","kj","(","Ec",")",";","DX","=","kj","(","Ed",")", ";","kk",".","z","=","Dn","*","kk",".","z","+","AJ","*","DX",".","z",";","Ee","=","kl","(","kk",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ee","=","clamp","(","Ee",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_COLOR",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ef",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Eg",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Eh",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ei",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ef",",","_0_0",",","_1_0",")",";","vec3","kk",",","DX",",","DN",";","Ei","=","Eg",";","DX","=","kj","(","Eh",")",";","if","(","DX",".","y","!=","_0_0",")","{","kk","=","kj","(","Ei",")",";","kk",".","x","=","DX",".","x",";","kk",".","y","=","DX",".","y",";","DN","=","kl","(","kk",")",";","Ei", "=","mix","(","Ei",",","DN",",","AJ",")",";","}"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ei","=","clamp","(","Ei",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_SOFT_LIGHT",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ej",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ek",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"El",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Em",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=","clamp","(","Ej",",","_0_0",",","_1_0",")",";","float","Dn","=","_1_0","-","AJ",";","vec3","En","=","El","+","Ek","-","El","*","Ek",";","Em","=","Ek","*","(","vec3","(","Dn",")","+","vec3","(","AJ",")","*","(","(","vec3","(","_1_0",")","-","Ek",")","*","El","+","En",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt", TOKENS:["Em","=","clamp","(","Em",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MIX_RGB_LINEAR_LIGHT",NODE_VARS:[{TYPE:"node_var",NAME:"MIX_RGB_USE_CLAMP",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Eo",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ep",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Eq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Er",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","AJ","=", "clamp","(","Eo",",","_0_0",",","_1_0",")",";","Er","=","Ep","+","AJ","*","(","2.0","*","Eq","-","vec3","(","_1_0",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MIX_RGB_USE_CLAMP"],STATEMENTS:[{TYPE:"txt",TOKENS:["Er","=","clamp","(","Er",",","_0_0",",","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"OUTPUT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"EA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EB",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["E","=","EA",";","I","=","EB",";"]}]},{TYPE:"node",NAME:"OUTPUT_SURFACE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"EC",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","EC",";","I","=","_1_0",";"]}]},{TYPE:"node",NAME:"MATERIAL_BEGIN",NODE_VARS:[{TYPE:"node_var",NAME:"MATERIAL_EXT",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_NORMAL",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_DIFFUSE",TOKENS:["0"]},{TYPE:"node_var",NAME:"SHADELESS_MAT",TOKENS:["0"]}], DECLARATIONS:[{TYPE:"node_in",NAME:"EF",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EI",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"EJ",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"EK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EM",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EP",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"EQ",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ER",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sF",QUALIFIER:["const","vec2"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"sG",QUALIFIER:["const","vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt", TOKENS:["EM","=","clamp","(","EF",",","_0_0",",","_1_0",")",";","EN","=","sG","[","0","]","*","clamp","(","EG",",","_0_0",",","_1_0",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_NORMAL"],STATEMENTS:[{TYPE:"txt",TOKENS:["EO","=","normalize","(","EI",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EO","=","ox",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["SHADELESS_MAT",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["MATERIAL_EXT"],STATEMENTS:[{TYPE:"txt",TOKENS:["EK","=","EJ","*","EM",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EK","=","sS","*","EM",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_DIFFUSE"],STATEMENTS:[{TYPE:"txt",TOKENS:["EM","*=","EH",";"]}]}]},{TYPE:"txt",TOKENS:["EL","=","sT","*","u_environment_energy","*","cE","(","EO",")",";","ER","=","vec4","(","_1_0",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NUM_LIGHTS", 0,{TYPE:"g_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["EP","=","vec2","(","sF","[","0","]",",","sF","[","1","]",")",";","EQ","=","vec2","(","sG","[","1","]",",","sG","[","2","]",")",";"]}]}]},{TYPE:"txt",TOKENS:["H","=","ER",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EK","=","vec3","(","_0_0",")",";","EL","=","vec3","(","_1_0",")",";"]}]}]}]},{TYPE:"node",NAME:"MATERIAL_END",NODE_VARS:[{TYPE:"node_var",NAME:"MATERIAL_EXT",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_DIFFUSE", TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_MATERIAL_SPECULAR",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"ES",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"ET",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"EV",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"EW",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"EX",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"EY",QUALIFIER:["vec3"], IS_OPTIONAL:true},{TYPE:"node_out",NAME:"EZ",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"E_",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fa",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fb",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"sH",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"sI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["EV",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_EY"], STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_DIFFUSE"],STATEMENTS:[{TYPE:"txt",TOKENS:["EY","=","ES",".","rgb",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["EY","=","vec3","(","_0_0",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["EY","+=","ET",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_E_"],STATEMENTS:[{TYPE:"txt",TOKENS:["E_","=","EU",";"]}]}]}, {TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MATERIAL_EXT"],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fa"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fa","=","ES",".","rgb",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fb"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fb","=","ET",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_EZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["EZ","=","clamp","(","EX",",","_0_0",",","_1_0",")",";"]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","t","=","max","(","max","(","ET",".","r",",","ET",".","g",")",",","ET",".","b",")","*","EW",";","EZ","=","clamp","(","EX","*","(","_1_0","-","t",")","+","t",",","_0_0",",","_1_0",")",";"]}]}]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_EZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["EZ","=","clamp","(","sH",",","_0_0",",","_1_0",")",";"]},{TYPE:"node_cond", PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","t","=","max","(","max","(","ET",".","r",",","ET",".","g",")",",","ET",".","b",")","*","sI",";","EZ","=","sH","*","(","_1_0","-","t",")","+","t",";"]}]}]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_MATERIAL_SPECULAR"],STATEMENTS:[{TYPE:"txt",TOKENS:["F","=","ET",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["F","=","vec3","(","_0_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["G", "=","EU",";"]}]},{TYPE:"node",NAME:"LIGHTING_AMBIENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"oP",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"oQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"oR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oS",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oT",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["oS","=","vec4","(","oP","+","oR","*","oQ",",","_0_0",")",";","oT", "=","vec3","(","_0_0",")",";"]}]},{TYPE:"node",NAME:"LIGHTING_LAMP",NODE_VARS:[{TYPE:"node_var",NAME:"LAMP_TYPE",TOKENS:["HEMI"]},{TYPE:"node_var",NAME:"LAMP_IND",TOKENS:["0"]},{TYPE:"node_var",NAME:"LAMP_SPOT_SIZE",TOKENS:["0.8"]},{TYPE:"node_var",NAME:"LAMP_SPOT_BLEND",TOKENS:["0.03"]},{TYPE:"node_var",NAME:"LAMP_LIGHT_DIST",TOKENS:["30.0"]},{TYPE:"node_var",NAME:"LAMP_SHADOW_MAP_IND",TOKENS:["-","1"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"oU",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out", NAME:"oV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oW",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oX",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"oY",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["oW","=","vec2","(","u_light_positions","[","LAMP_IND","]",".","w",",","u_light_color_intensities","[","LAMP_IND","]",".","w",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","HEMI",{TYPE:"equal_expr", PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["oY","=","_0_5",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["oY","=","_0_0",";"]}]}]},{TYPE:"txt",TOKENS:["oX","=","u_light_color_intensities","[","LAMP_IND","]",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_SHADOW_MAP_IND",1,{TYPE:"negative_expr",PLACES:1},{TYPE:"non_equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["oX","*=","oU","[","LAMP_SHADOW_MAP_IND","]",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["LAMP_TYPE","SPOT",{TYPE:"equal_expr",PLACES:2},"LAMP_TYPE","POINT",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","oZ","=","u_light_positions","[","LAMP_IND","]",".","xyz",";","oV","=","oZ","-","ow",";","float","aM","=","length","(","oV",")",";","oX","*=","LAMP_LIGHT_DIST","/","(","LAMP_LIGHT_DIST","+","aM","*","aM",")",";","oV","=","normalize","(","oV",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["LAMP_TYPE","SPOT", {TYPE:"equal_expr",PLACES:2}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pa","=","u_light_directions","[","LAMP_IND","]",";","float","pb","=","dot","(","oV",",","pa",")",";","pb","*=","smoothstep","(","_0_0",",","_1_0",",","(","pb","-","LAMP_SPOT_SIZE",")","/","LAMP_SPOT_BLEND",")",";","oX","*=","pb",";"]}]}]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["oV","=","u_light_directions","[","LAMP_IND","]",";"]}]}]}]},{TYPE:"node",NAME:"DIFFUSE_FRESNEL",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING", TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pd",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pe",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pf",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pg",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ph",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"], STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pc",",","k",".","xyz",")",";","pe","=","cross","(","pi",",","k",".","xyz",")",";","pe","=","-","normalize","(","pe",")",";"]}]}]},{TYPE:"txt",TOKENS:["ph","=","_0_0",";","if","(","pd",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pf",")","*","dot","(","pe",",","pc",")","+","pf",";","if","(","pg","[","0","]","==","_0_0",")","{","ph","=","_1_0",";","}","else","{","float","t","=","_1_0","+","abs","(","pj",")",";","t","=","pg", "[","1","]","+","(","_1_0","-","pg","[","1","]",")","*","pow","(","t",",","pg","[","0","]",")",";","ph","=","clamp","(","t",",","_0_0",",","_1_0",")",";","}","ph","=","max","(","ph",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_LAMBERT",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pl",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pm",QUALIFIER:["vec3"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"po",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pk",",","k",".","xyz",")",";","pm","=","cross","(","pi",",","k",".","xyz",")",";","pm","=","-","normalize","(","pm",")",";"]}]}]},{TYPE:"txt",TOKENS:["po","=","_0_0",";","if","(","pl",".","r","!=","_0_0", ")","{","float","pj","=","(","_1_0","-","pn",")","*","dot","(","pm",",","pk",")","+","pn",";","po","=","max","(","pj",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_OREN_NAYAR",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pu",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pw",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"px",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"py",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pr",",","k",".","xyz",")",";","pv","=","cross","(","pi",",","k",".","xyz",")",";","pv","=","-","normalize","(","pv",")",";"]}]}]},{TYPE:"txt",TOKENS:["py","=","_0_0",";","if","(","pu",".","r","!=","_0_0", ")","{","float","pj","=","(","_1_0","-","pw",")","*","dot","(","pv",",","pr",")","+","pw",";","if","(","px","[","0","]",">","_0_0",")","{","float","pz","=","max","(","dot","(","pv",",","oy",")",",","_0_0",")",";","float","pA","=","px","[","0","]","*","px","[","0","]",";","float","cG","=","_1_0","-","_0_5","*","(","pA","/","(","pA","+","0.33",")",")",";","vec3","pB","=","pr","-","pj","*","pv",";","vec3","pC","=","oy","-","pz","*","pv",";","if","(","length","(","pB",")","==","_0_0","||","length","(", "pC",")","==","_0_0","||","abs","(","pj",")",">","_1_0","||","abs","(","pz",")",">","_1_0",")","py","=","pj","*","cG",";","else","{","float","pD","=","acos","(","pj",")",";","float","pE","=","acos","(","pz",")",";","vec3","pF","=","normalize","(","pB",")",";","vec3","pG","=","normalize","(","pC",")",";","float","a",",","b",";","a","=","max","(","pD",",","pE",")",";","b","=","min","(","pD",",","pE",")",";","b","*=","0.95",";","float","t","=","max","(","dot","(","pF",",","pG",")",",","_0_0",")",";", "float","hS","=","0.45","*","(","pA","/","(","pA","+","0.09",")",")",";","py","=","pj","*","(","cG","+","(","hS","*","t","*","sin","(","a",")","*","tan","(","b",")",")",")",";","}","}","else","py","=","pj",";","py","=","max","(","py",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_MINNAERT",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pI",QUALIFIER:["vec2"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"pJ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pK",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pL",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pM",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pH",",","k",".","xyz",")",";","pJ","=","cross","(","pi",",","k",".","xyz",")",";","pJ","=","-", "normalize","(","pJ",")",";"]}]}]},{TYPE:"txt",TOKENS:["pM","=","_0_0",";","if","(","pI",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pK",")","*","dot","(","pJ",",","pH",")","+","pK",";","float","pz","=","max","(","dot","(","pJ",",","oy",")",",","_0_0",")",";","if","(","pL","[","0","]","<=","_1_0",")","pM","=","pj","*","pow","(","max","(","pz","*","pj",",","0.1",")",",","pL","[","0","]","-","_1_0",")",";","else","pM","=","pj","*","pow","(","1.0001","-","pz",",","pL","[","0","]","-", "_1_0",")",";","pM","=","max","(","pM",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"DIFFUSE_TOON",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"pN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pO",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pP",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pQ",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pR",QUALIFIER:["vec2"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"pS",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","pi","=","cross","(","pN",",","k",".","xyz",")",";","pP","=","cross","(","pi",",","k",".","xyz",")",";","pP","=","-","normalize","(","pP",")",";"]}]}]},{TYPE:"txt",TOKENS:["pS","=","_0_0",";","if","(","pO",".","r","!=","_0_0",")","{","float","pj","=","(","_1_0","-","pQ",")","*","dot","(","pP",",","pN",")", "+","pQ",";","float","pT","=","acos","(","pj",")",";","if","(","pT","<","pR","[","0","]",")","pS","=","_1_0",";","else","if","(","pT",">","(","pR","[","0","]","+","pR","[","1","]",")","||","pR","[","1","]","==","_0_0",")","pS","=","_0_0",";","else","pS","=","_1_0","-","(","(","pT","-","pR","[","0","]",")","/","pR","[","1","]",")",";","pS","=","max","(","pS",",","_0_0",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_PHONG",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"pU",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pV",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pX",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"pY",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"pZ",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["pZ","=","_0_0",";","if","(","pV",".","g","==","_1_0",")","{","vec3","p_","=","normalize","(","pU", "+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","pX","==","_0_0",")","{","pZ","=","dot","(","k",".","xyz",",","p_",")",";","pZ","=","sqrt","(","_1_0","-","pZ","*","pZ",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["pZ","=","(","_1_0","-","pX",")","*","max","(","dot","(","pW",",","p_",")",",","_0_0",")","+","pX",";"]}]}]},{TYPE:"txt",TOKENS:["pZ","=","pow","(","pZ",",","pY","[","0","]",")",";", "}"]}]},{TYPE:"node",NAME:"SPECULAR_COOKTORR",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qa",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qb",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qc",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qd",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qe",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qf",QUALIFIER:["float"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["qf","=","_0_0",";","if","(","qb",".","g","!=","_0_0",")","{","vec3","p_","=","normalize","(","qa","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","qd","==","_0_0",")","{","qf","=","dot","(","B",".","xyz",",","p_",")",";","qf","=","sqrt","(","_1_0","-","qf","*","qf",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["qf","=","max","(","dot","(","qc",",","p_",")",",", "_0_0",")",";","qf","=","(","_1_0","-","qd",")","*","qf","+","qd",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","pz","=","max","(","dot","(","B",".","xyz",",","oy",")",",","_0_0",")",";","pz","=","sqrt","(","_1_0","-","pz","*","pz",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","pz","=","max","(","dot","(","qc",",","oy",")",",","_0_0",")",";"]}]}]},{TYPE:"txt",TOKENS:["qf","=","pow","(","qf",",", "qe","[","0","]",")",";","qf","=","qf","/","(","0.1","+","pz",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_WARDISO",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qh",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qi",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qk",QUALIFIER:["vec2"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"ql",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["ql","=","_0_0",";","if","(","qh",".","g","==","_1_0",")","{","vec3","p_","=","normalize","(","qg","+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","_0_0",";","float","pz","=","_0_0",";","float","qn","=","_0_0",";","if","(","qj","==","_0_0",")","{","qm","=","dot","(","k",".","xyz",",","p_", ")",";","pz","=","dot","(","k",".","xyz",",","oy",")",";","qn","=","dot","(","k",".","xyz",",","qg",")",";","qm","=","sqrt","(","_1_0","-","qm","*","qm",")",";","pz","=","sqrt","(","_1_0","-","pz","*","pz",")",";","qn","=","sqrt","(","_1_0","-","qn","*","qn",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","max","(","dot","(","qi",",","p_",")",",","0.01",")",";","float","pz","=","max","(","dot","(","qi",",","oy",")",",","0.01",")",";","float","qn","=","max","(","dot", "(","qi",",","qg",")",",","0.01",")",";"]}]}]},{TYPE:"txt",TOKENS:["float","bP","=","tan","(","acos","(","qm",")",")",";","float","L","=","max","(","qk","[","0","]",",","0.01",")",";","ql","=","qn","*","(","_1_0","/","(","4.0","*","M_PI","*","L","*","L",")",")","*","(","exp","(","-","(","bP","*","bP",")","/","(","L","*","L",")",")","/","(","sqrt","(","pz","*","qn",")",")",")",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_TOON",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in", NAME:"qo",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qr",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qu",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qw",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qx",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qx","=","_0_0",";","if","(","qr",".","g","==","_1_0",")","{","vec3","co","=","normalize","(","qo", "+","oy",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qy","=","dot","(","co",",","k",".","xyz",")",";","float","bP","=","qw","[","0","]","+","qw","[","1","]",";","if","(","qv","==","_0_0",")","bP","=","acos","(","sqrt","(","_1_0","-","qy","*","qy",")",")",";"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["float","bP","=","acos","(","dot","(","co",",","qu",")",")",";"]}]}]},{TYPE:"txt",TOKENS:["if","(","bP","<", "qw","[","0","]",")","qx","=","_1_0",";","else","if","(","bP",">=","qw","[","0","]","+","qw","[","1","]","||","qw","[","1","]","==","_0_0",")","qx","=","_0_0",";","else","qx","=","_1_0","-","(","bP","-","qw","[","0","]",")","/","qw","[","1","]",";","}"]}]},{TYPE:"node",NAME:"SPECULAR_BLINN",NODE_VARS:[{TYPE:"node_var",NAME:"MAT_USE_TBN_SHADING",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"qz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qA",QUALIFIER:["vec2"],IS_OPTIONAL:false}, {TYPE:"node_in",NAME:"qB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qC",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qD",QUALIFIER:["vec2"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qE",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["qE","=","_0_0",";","if","(","qA",".","g","==","_1_0",")","{","if","(","qD","[","0","]","<","_1_0","||","qD","[","1","]","==","_0_0",")","qE","=","_0_0",";","else","{","if","(","qD","[","1","]","<","100.0",")", "qD","[","1","]","=","sqrt","(","_1_0","/","qD","[","1","]",")",";","else","qD","[","1","]","=","10.0","/","qD","[","1","]",";","vec3","p_","=","normalize","(","oy","+","qz",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["MAT_USE_TBN_SHADING"],STATEMENTS:[{TYPE:"txt",TOKENS:["float","qm","=","_0_0",";","if","(","qC","==","_0_0",")","{","float","qH","=","dot","(","k",".","xyz",",","p_",")",";","qm","=","sqrt","(","_1_0","-","qH","*","qH",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt", TOKENS:["float","qm","=","(","_1_0","-","qC",")","*","max","(","dot","(","qB",",","p_",")",",","_0_0",")","+","qC",";"]}]}]},{TYPE:"txt",TOKENS:["if","(","qm","<","_0_0",")","qE","=","_0_0",";","else","{","float","pz","=","max","(","dot","(","qB",",","oy",")",",","0.01",")",";","float","qn","=","dot","(","qB",",","qz",")",";","if","(","qn","<=","0.01",")","qE","=","_0_0",";","else","{","float","qI","=","max","(","dot","(","oy",",","p_",")",",","0.01",")",";","float","a","=","_1_0",";","float","b", "=","(","2.0","*","qm","*","pz",")","/","qI",";","float","dx","=","(","2.0","*","qm","*","qn",")","/","qI",";","float","g","=","min","(","min","(","a",",","b",")",",","dx",")",";","float","p","=","sqrt","(","pow","(","qD","[","0","]",",","2.0",")","+","pow","(","qI",",","2.0",")","-","_1_0",")",";","float","mm","=","pow","(","p","-","qI",",","2.0",")","/","pow","(","p","+","qI",",","2.0",")","*","(","_1_0","+","pow","(","qI","*","(","p","+","qI",")","-","_1_0",",","2.0",")","/","pow","(","qI","*", "(","p","-","qI",")","+","_1_0",",","2.0",")",")",";","float","pT","=","acos","(","qm",")",";","qE","=","max","(","mm","*","g","*","exp","(","-","pow","(","pT",",","2.0",")","/","(","2.0","*","pow","(","qD","[","1","]",",","2.0",")",")",")",",","_0_0",")",";","}","}","}","}"]}]},{TYPE:"node",NAME:"LIGHTING_APPLY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"qJ",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qK",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qL",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qM",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qO",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qP",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qQ",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qR",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qS",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"qT",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qU",QUALIFIER:["vec4"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"qV",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_NODE_B4W_TRANSLUCENCY"],STATEMENTS:[{TYPE:"txt",TOKENS:["if","(","dot","(","qN",",","qO",")","*","dot","(","oy",",","qO",")","<","_0_0",")","{","float","Fc","=","qP",".","x",";","float","Fd","=","qP",".","y",";","float","Fe","=","qP",".","z",";","float","Ff","=","qP",".","w",";","float", "Fg","=","clamp","(","abs","(","dot","(","qN",",","qO",")",")",",","_0_0",",","_1_0",")",";","float","Fh","=","clamp","(","dot","(","oy",",","-","qN",")",",","_0_0",",","_1_0",")",";","float","Fi","=","pow","(","Fh",",","Fd",")",";","qU","=","qJ","+","qT","*","vec4","(","qS","*","Fg","*","pow","(","qQ",",","vec3","(","Fc",")",")",",","_1_0",")",";","qU","+=","Fe","*","mix","(","vec4","(","qQ",",","_1_0",")",",","vec4","(","_1_0",")",",","Ff",")","*","qT","*","vec4","(","qS","*","Fg","*","vec3","(", "Fi",")",",","_1_0",")",";","}","else","{","qU","=","qJ","+","vec4","(","qS","*","qQ","*","qL",",","qM",")",";","}"]}]},{TYPE:"node_else",STATEMENTS:[{TYPE:"txt",TOKENS:["qU","=","qJ","+","vec4","(","qS","*","qQ","*","qL",",","qM",")",";"]}]}]},{TYPE:"txt",TOKENS:["qV","=","qK","+","qS","*","qR","*","qM",";"]}]},{TYPE:"node",NAME:"RGB",NODE_VARS:[{TYPE:"node_var",NAME:"RGB_IND",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_out",NAME:"Fj",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Fj", "=","u_node_rgbs","[","RGB_IND","]",";"]}]},{TYPE:"node",NAME:"RGBTOBW",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fk",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fl",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Fl","=","dot","(","Fk",",","vec3","(","0.35",",","0.45",",","0.2",")",")",";"]}]},{TYPE:"node",NAME:"SEPRGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fm",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fn",QUALIFIER:["float"], IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fo",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fp",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fn"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fn","=","Fm",".","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fo"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fo","=","Fm",".","g",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fp"],STATEMENTS:[{TYPE:"txt", TOKENS:["Fp","=","Fm",".","b",";"]}]}]}]},{TYPE:"node",NAME:"SEPHSV",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fq",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fr",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Fs",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Ft",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Fu","=","kj","(","Fq",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fr"],STATEMENTS:[{TYPE:"txt", TOKENS:["Fr","=","Fu",".","r",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Fs"],STATEMENTS:[{TYPE:"txt",TOKENS:["Fs","=","Fu",".","g",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Ft"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ft","=","Fu",".","b",";"]}]}]}]},{TYPE:"node",NAME:"SQUEEZE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fv",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Fw",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Fx",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Fy",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Fy","=","_1_0","/","(","_1_0","+","pow","(","2.71828183",",","-","(","Fv","-","Fx",")","*","Fw",")",")",";"]}]},{TYPE:"node",NAME:"GAMMA",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Fz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"FA",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FB",QUALIFIER:["vec3"],IS_OPTIONAL:false}], STATEMENTS:[{TYPE:"txt",TOKENS:["FB","=","Fz",";","if","(","FB",".","x",">","_0_0",")","FB",".","x","=","pow","(","Fz",".","x",",","FA",")",";","if","(","FB",".","y",">","_0_0",")","FB",".","y","=","pow","(","Fz",".","y",",","FA",")",";","if","(","FB",".","z",">","_0_0",")","FB",".","z","=","pow","(","Fz",".","z",",","FA",")",";"]}]},{TYPE:"node",NAME:"B4W_SRGB_TO_LINEAR",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"FC",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FD",QUALIFIER:["vec3"], IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["FD","=","max","(","vec3","(","_0_0",")",",","FC",")",";","FD","=","pow","(","FD",",","vec3","(","2.2",")",")",";"]}]},{TYPE:"node",NAME:"B4W_LINEAR_TO_SRGB",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"FE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FF",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["FF","=","max","(","vec3","(","_0_0",")",",","FE",")",";","FF","=","pow","(","FF",",","vec3","(","_1_0", "/","2.2",")",")",";"]}]},{TYPE:"node",NAME:"TEXTURE_EMPTY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"FG",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"FI",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FG"],STATEMENTS:[{TYPE:"txt",TOKENS:["FG","[","2","]","=","FG","[","1","]","=","FG","[","0","]","=","_0_0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["USE_OUT_FH"],STATEMENTS:[{TYPE:"txt",TOKENS:["FH","[","2","]","=","FH","[","1","]","=","FH","[","0","]","=","_0_0",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FI"],STATEMENTS:[{TYPE:"txt",TOKENS:["FI","=","_0_0",";"]}]}]}]},{TYPE:"node",NAME:"TEXTURE_ENVIRONMENT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Il",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Im",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"In",QUALIFIER:["float"], IS_OPTIONAL:true},{TYPE:"node_param",NAME:"node_TEXTURE_ENVIRONMENT_var_texture",QUALIFIER:["uniform","samplerCube"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE_CUBE","(","node_TEXTURE_ENVIRONMENT_var_texture",",","Il",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Im"],STATEMENTS:[{TYPE:"txt",TOKENS:["Im","=","BN",".","xyz",";","bG","(","Im",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_In"],STATEMENTS:[{TYPE:"txt", TOKENS:["In","=","BN",".","w",";"]}]}]}]},{TYPE:"node",NAME:"TEXTURE_COLOR",NODE_VARS:[{TYPE:"node_var",NAME:"NON_COLOR",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv2",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv3",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv4",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"FT",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"FU",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"FV",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"FW", QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"FX",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"FY",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"FZ",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"F_",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Ga",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gb",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gc",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out", NAME:"Gd",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"node_TEXTURE_COLOR_var_texture",QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FT",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FX"],STATEMENTS:[{TYPE:"txt",TOKENS:["FX","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr", PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","FX",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FY"],STATEMENTS:[{TYPE:"txt",TOKENS:["FY","=","BN",".","w",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv2"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FU",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_FZ"],STATEMENTS:[{TYPE:"txt",TOKENS:["FZ","=", "BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","FZ",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_F_"],STATEMENTS:[{TYPE:"txt",TOKENS:["F_","=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv3"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FV",")", ")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Ga"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ga","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","Ga",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gb"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gb","=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv4"], STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_COLOR_var_texture",",","so","(","FW",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gc"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gc","=","BN",".","xyz",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["NON_COLOR",{TYPE:"logic_negative_expr",PLACES:1}],STATEMENTS:[{TYPE:"txt",TOKENS:["bG","(","Gc",")",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gd"],STATEMENTS:[{TYPE:"txt", TOKENS:["Gd","=","BN",".","w",";"]}]}]}]}]}]},{TYPE:"node",NAME:"TEXTURE_NORMAL",NODE_VARS:[{TYPE:"node_var",NAME:"USE_uv2",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv3",TOKENS:["0"]},{TYPE:"node_var",NAME:"USE_uv4",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_in",NAME:"Ge",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"Gf",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"Gg",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_in",NAME:"Gh",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out", NAME:"Gi",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gj",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gk",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gl",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gm",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gn",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Go",QUALIFIER:["vec3"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Gp",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_param", NAME:"node_TEXTURE_NORMAL_var_texture",QUALIFIER:["uniform","sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec4","BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Ge",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gi"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gi","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gj"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gj", "=","BN",".","w",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv2"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Gf",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gk"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gk","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gl"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gl", "=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv3"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Gg",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gm"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gm","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gn"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gn", "=","BN",".","w",";"]}]}]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_uv4"],STATEMENTS:[{TYPE:"txt",TOKENS:["BN","=","GLSL_TEXTURE","(","node_TEXTURE_NORMAL_var_texture",",","so","(","Gh",")",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Go"],STATEMENTS:[{TYPE:"txt",TOKENS:["Go","=","normalize","(","sO","*","(","BN",".","xyz","-","_0_5",")",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gp"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gp", "=","BN",".","w",";"]}]}]}]}]}]},{TYPE:"node",NAME:"VALUE",NODE_VARS:[{TYPE:"node_var",NAME:"VALUE_ROW_IND",TOKENS:["0"]},{TYPE:"node_var",NAME:"VALUE_COL_IND",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_out",NAME:"Gq",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Gq","=","u_node_values","[","VALUE_ROW_IND","]","[","VALUE_COL_IND","]",";"]}]},{TYPE:"node",NAME:"VECT_MATH_ADD",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Gr",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"Gs",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gt",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gu",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["Gt","=","Gr","+","Gs",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gu"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gu","=","(","abs","(","Gt","[","0","]",")","+","abs","(","Gt","[","1","]",")","+","abs","(","Gt","[","2","]",")",")","/","3.0",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_SUBTRACT", NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Gv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Gw",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gx",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Gy",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["Gx","=","Gv","-","Gw",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Gy"],STATEMENTS:[{TYPE:"txt",TOKENS:["Gy","=","(","abs","(","Gx","[","0","]",")","+","abs","(", "Gx","[","1","]",")","+","abs","(","Gx","[","2","]",")",")","/","3.0",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_AVERAGE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Gz",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GA",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GB",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GC",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GB","=","Gz","+","GA",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if", EXPRESSION:["USE_OUT_GC"],STATEMENTS:[{TYPE:"txt",TOKENS:["GC","=","length","(","GB",")",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GB"],STATEMENTS:[{TYPE:"txt",TOKENS:["GB","=","normalize","(","GB",")",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_DOT_PRODUCT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GD",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GE",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GF",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"GG",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GF","=","vec3","(","_0_0",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GG"],STATEMENTS:[{TYPE:"txt",TOKENS:["GG","=","dot","(","GD",",","GE",")",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_CROSS_PRODUCT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GH",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GI",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GJ", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GK",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GJ","=","cross","(","GH",",","GI",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GK"],STATEMENTS:[{TYPE:"txt",TOKENS:["GK","=","length","(","GJ",")",";"]}]}]}]},{TYPE:"node",NAME:"VECT_MATH_NORMALIZE",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GL",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"GM",QUALIFIER:["vec3"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"GN",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GO",QUALIFIER:["float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"txt",TOKENS:["GN","=","normalize","(","GL",")",";"]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_GO"],STATEMENTS:[{TYPE:"txt",TOKENS:["GO","=","length","(","GL",")",";"]}]}]},{TYPE:"txt",TOKENS:["GM",";"]}]},{TYPE:"node",NAME:"B4W_REFLECT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GV",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in", NAME:"GW",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GX",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["GX","=","reflect","(","_","(","u_view_tsr_inverse",",","GV",")",",","GW",")",";"]}]},{TYPE:"node",NAME:"B4W_REFLECT_WORLD",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"GY",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"GZ",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["vec3","Io","=","-","oy",".","xyz",";","GZ", "=","reflect","(","Io",",","GY",")",";"]}]},{TYPE:"node",NAME:"B4W_PARALLAX",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"G_",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ha",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hb",QUALIFIER:["const","float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hc",QUALIFIER:["const","float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hd",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_param",NAME:"node_B4W_PARALLAX_var_texture",QUALIFIER:["uniform", "sampler2D"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["float","bS","=","length","(","sR",")",";","if","(","bS","<","Hc",")","{","vec2","ce","=","so","(","G_",")",";","float","ci","=","clamp","(","_0_5","*","(","Hc","-","bS",")",",","_0_0",",","_1_0",")",";","float","hK","=","Ha","*","ci",";","vec3","ck","=","normalize","(","oy","*","sO",")",";","float","cl","=","_1_0","/","Hb",";","vec2","cm","=","ck",".","xy","*","hK","/","(","Hb","*","ck",".","z",")",";","float","cn","=","_1_0",";","float", "co","=","GLSL_TEXTURE","(","node_B4W_PARALLAX_var_texture",",","ce",")",".","a",";","for","(","float","cq","=","1.0",";","cq","<=","Hb",";","cq","++",")","{","if","(","co","<","cn",")","{","cn","-=","cl",";","ce","-=","cm",";","co","=","GLSL_TEXTURE","(","node_B4W_PARALLAX_var_texture",",","ce",")",".","a",";","}","}","vec2","cr","=","ce","+","cm",";","float","cs","=","GLSL_TEXTURE","(","node_B4W_PARALLAX_var_texture",",","cr",")",".","a","-","(","cn","+","cl",")",";","float","ct","=","co","-","cn", ";","float","cu","=","ct","/","(","ct","-","cs",")",";","ce","=","cu","*","cr","+","(","_1_0","-","cu",")","*","ce",";","Hd","=","sn","(","ce",")",";","}","else","Hd","=","G_",";"]}]},{TYPE:"node",NAME:"B4W_CLAMP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"He",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hf",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hf","=","clamp","(","He",",","_0_0",",","_1_0",")",";"]}]},{TYPE:"node",NAME:"B4W_REFRACTION",NODE_VARS:[], DECLARATIONS:[{TYPE:"node_in",NAME:"Hg",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hh",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hi",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hi","=","Hg",";"]}]},{TYPE:"node",NAME:"B4W_TRANSLUCENCY",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hj",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hk",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hl",QUALIFIER:["float"], IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hm",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hn",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Ho",QUALIFIER:["float"],IS_OPTIONAL:true},{TYPE:"node_out",NAME:"Hp",QUALIFIER:["vec4"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Ho"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ho","=","Hj",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["USE_OUT_Hp"],STATEMENTS:[{TYPE:"txt", TOKENS:["Hp","=","vec4","(","Hk",",","Hl",",","Hm",",","Hn",")",";"]}]}]}]},{TYPE:"node",NAME:"B4W_TIME",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_out",NAME:"Hq",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hq","=","u_time",";"]}]},{TYPE:"node",NAME:"B4W_SMOOTHSTEP",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hr",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hs",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Ht",QUALIFIER:["float"],IS_OPTIONAL:false}, {TYPE:"node_out",NAME:"Hu",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hu","=","smoothstep","(","Hs",",","Ht",",","Hr",")",";"]}]},{TYPE:"node",NAME:"B4W_GLOW_OUTPUT",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hv",QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_in",NAME:"Hw",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["E","=","Hv",";","I","=","Hw",";"]}]},{TYPE:"node",NAME:"B4W_VECTOSCAL",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hx", QUALIFIER:["vec3"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"Hy",QUALIFIER:["float"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["Hy","=","(","Hx",".","r","+","Hx",".","g","+","Hx",".","b",")","/","3.0",";"]}]},{TYPE:"node",NAME:"B4W_SCALTOVEC",NODE_VARS:[],DECLARATIONS:[{TYPE:"node_in",NAME:"Hz",QUALIFIER:["float"],IS_OPTIONAL:false},{TYPE:"node_out",NAME:"HA",QUALIFIER:["vec3"],IS_OPTIONAL:false}],STATEMENTS:[{TYPE:"txt",TOKENS:["HA","[","0","]","=","Hz",";","HA","[","1","]","=","Hz",";", "HA","[","2","]","=","Hz",";"]}]},{TYPE:"nodes_global"},{TYPE:"txt",TOKENS:["void","J","(","in","vec3","oy",",","out","vec3","E",",","out","vec3","F",",","out","vec3","G",",","out","vec4","H",",","out","float","I",")","{","E","=","vec3","(","_0_0",")",";","F","=","vec3","(","_0_0",")",";","G","=","vec3","(","_0_0",")",";","H","=","vec4","(","_0_0",")",";","I","=","_0_0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_MATERIAL_BEGIN","USE_NODE_GEOMETRY_NO","CAUSTICS","CALC_TBN_SPACE","USE_NODE_TEX_COORD_NO", "USE_NODE_NORMAL_MAP","USE_NODE_BSDF_BEGIN","USE_NODE_FRESNEL","USE_NODE_TEX_COORD_RE","USE_NODE_LAYER_WEIGHT","USE_NODE_BUMP",{TYPE:"logical_or_expr",PLACES:11}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sL","=","j",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING","USE_NODE_GEOMETRY_NO",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["if","(","gl_FrontFacing","==","false",")"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","gl_FrontFacing",")"]}]}}]},{TYPE:"txt",TOKENS:["sL","=","sL",";","else","sL","=","-","sL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_NORMAL_MAP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sM","=","sL",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING","USE_NODE_GEOMETRY_NO","USE_NODE_TEXTURE_NORMAL", "USE_NODE_B4W_PARALLAX",{TYPE:"logical_or_expr",PLACES:4}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","sN","=","normalize","(","sL",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DOUBLE_SIDED_LIGHTING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ox","=","sN",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","ox","=","normalize","(","j",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_NO"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["vec3","sK","=","sN",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CALC_TBN_SPACE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_TEXTURE_NORMAL","USE_NODE_B4W_PARALLAX",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","W","=","cross","(","sN",",","k",".","xyz",")","*","k",".","w",";","mat3","sO","=","mat3","(","k",".","xyz",",","W",",","sN",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_NORMAL_MAP"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","W","=","cross","(","sL",",","k",".","xyz",")","*","k",".","w",";","mat3","sQ","=","mat3","(","k",".","xyz",",","W",",","sL",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["vec3","ow","=","h",";","vec4","sR","=","i",";","float","sS","=","u_emit",";","float","sT","=","u_ambient",";"]},{TYPE:"nodes_main"},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/particles_nodes.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"PARTICLES_NODES_GLSLV", GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"PARTICLES_NODES_GLSLV",TOKENS:[""]},{TYPE:"node",NAME:"TEX_COORD_UV",NODE_VARS:[],DECLARATIONS:[],STATEMENTS:[{TYPE:"txt",TOKENS:["A","=","Iu",";"]}]},{TYPE:"node",NAME:"UV_MERGED",NODE_VARS:[],DECLARATIONS:[],STATEMENTS:[{TYPE:"txt",TOKENS:["A","=","Iu",";"]}]},{TYPE:"node",NAME:"UVMAP",NODE_VARS:[],DECLARATIONS:[],STATEMENTS:[{TYPE:"txt",TOKENS:["A","=","Iu",";"]}]},{TYPE:"node",NAME:"GEOMETRY_UV",NODE_VARS:[],DECLARATIONS:[],STATEMENTS:[{TYPE:"txt", TOKENS:["A","=","Iu",";"]}]},{TYPE:"node",NAME:"PARTICLE_INFO",NODE_VARS:[{TYPE:"node_var",NAME:"PART_INFO_SIZE",TOKENS:["0"]},{TYPE:"node_var",NAME:"PART_INFO_AGE",TOKENS:["0"]},{TYPE:"node_var",NAME:"PART_INFO_LT",TOKENS:["0"]},{TYPE:"node_var",NAME:"PART_INFO_LOC",TOKENS:["0"]},{TYPE:"node_var",NAME:"PART_INFO_IND",TOKENS:["0"]},{TYPE:"node_var",NAME:"PART_INFO_VEL",TOKENS:["0"]},{TYPE:"node_var",NAME:"PART_INFO_A_VEL",TOKENS:["0"]}],DECLARATIONS:[{TYPE:"node_param",NAME:"HY",QUALIFIER:["GLSL_OUT", "vec4"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"HZ",QUALIFIER:["GLSL_OUT","vec3"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"H_",QUALIFIER:["GLSL_OUT","vec3"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"Ia",QUALIFIER:["GLSL_OUT","vec3"],IS_OPTIONAL:true},{TYPE:"node_param",NAME:"node_PARTICLE_INFO_var_a_p_indices",QUALIFIER:["GLSL_IN","float"],IS_OPTIONAL:true}],STATEMENTS:[{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_SIZE"],STATEMENTS:[{TYPE:"txt",TOKENS:["HY","[","3","]","=", "It",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_AGE"],STATEMENTS:[{TYPE:"txt",TOKENS:["HY","[","1","]","=","Is",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_LT"],STATEMENTS:[{TYPE:"txt",TOKENS:["HY","[","2","]","=","Iv",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_LOC"],STATEMENTS:[{TYPE:"txt",TOKENS:["HZ","=","Ip",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_IND"],STATEMENTS:[{TYPE:"txt", TOKENS:["HY","[","0","]","=","node_PARTICLE_INFO_var_a_p_indices",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_VEL"],STATEMENTS:[{TYPE:"txt",TOKENS:["H_","=","Iq",";"]}]}]},{TYPE:"node_cond",PARTS:[{TYPE:"node_if",EXPRESSION:["PART_INFO_A_VEL"],STATEMENTS:[{TYPE:"txt",TOKENS:["Ia","=","Ir",";"]}]}]}]},{TYPE:"nodes_global"},{TYPE:"txt",TOKENS:["void","J","(","in","vec3","Ip",",","in","vec3","Iq",",","in","vec3","Ir",",","in","float","Is",",","in","float","It",",","in", "vec2","Iu",",","in","float","Iv",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_NODE_GEOMETRY_OR","USE_NODE_TEX_COORD_GE",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["A","=","Iu",";"]}]}}]},{TYPE:"nodes_main"},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/precision_statement.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"PRECISION_STATEMENT_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"PRECISION_STATEMENT_GLSLF",TOKENS:[""]}, {TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"txt",TOKENS:["precision","PRECISION","float",";"]}]}}]}]},exports["include/procedural.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"PROCEDURAL_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"PROCEDURAL_GLSLF",TOKENS:[""]},{TYPE:"txt",TOKENS:["vec4","Iw","(","vec4","x",")","{","return","x","-","floor","(","x","*","(","_1_0","/","289.0",")",")","*","289.0",";","}","vec3","Iw","(","vec3","x",")","{","return","x","-","floor", "(","x","*","(","_1_0","/","289.0",")",")","*","289.0",";","}","vec2","Iw","(","vec2","x",")","{","return","x","-","floor","(","x","*","(","_1_0","/","289.0",")",")","*","289.0",";","}","vec4","Ix","(","vec4","x",")","{","return","x","-","floor","(","x","*","(","_1_0","/","7.0",")",")","*","7.0",";","}","vec4","Iy","(","vec4","x",")","{","return","Iw","(","(","34.0","*","x","+","5.0",")","*","x",")",";","}"]},{TYPE:"define",NAME:"K",TOKENS:["0.142857142857"]},{TYPE:"define",NAME:"K2",TOKENS:["0.0714285714285"]}, {TYPE:"define",NAME:"JITTER",TOKENS:["0.7"]},{TYPE:"txt",TOKENS:["vec2","fK","(","vec2","Iz",")","{","vec2","IA","=","Iw","(","floor","(","Iz",")",")",";","vec2","IB","=","fract","(","Iz",")",";","vec4","IC","=","IB",".","x","+","vec4","(","-","0.5",",","-","1.5",",","-","0.5",",","-","1.5",")",";","vec4","ID","=","IB",".","y","+","vec4","(","-","0.5",",","-","0.5",",","-","1.5",",","-","1.5",")",";","vec4","p","=","Iy","(","IA",".","x","+","vec4","(","_0_0",",","_1_0",",","_0_0",",","_1_0",")",")", ";","p","=","Iy","(","p","+","IA",".","y","+","vec4","(","_0_0",",","_0_0",",","_1_0",",","_1_0",")",")",";","vec4","IE","=","Ix","(","p",")","*","K","+","K2",";","vec4","IF","=","Ix","(","floor","(","p","*","K",")",")","*","K","+","K2",";","vec4","IG","=","IC","+","JITTER","*","IE",";","vec4","IH","=","ID","+","JITTER","*","IF",";","vec4","dC","=","IG","*","IG","+","IH","*","IH",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:[1],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["dC",".","xy","=","min", "(","dC",".","xy",",","dC",".","zw",")",";","dC",".","x","=","min","(","dC",".","x",",","dC",".","y",")",";","return","dC",".","xx",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["dC",".","xy","=","(","dC",".","x","<","dC",".","y",")","?","dC",".","xy",":","dC",".","yx",";","dC",".","xz","=","(","dC",".","x","<","dC",".","z",")","?","dC",".","xz",":","dC",".","zx",";","dC",".","xw","=","(","dC",".","x","<","dC",".","w",")","?","dC",".","xw",":","dC",".","wx",";","dC",".","y","=", "min","(","dC",".","y",",","dC",".","z",")",";","dC",".","y","=","min","(","dC",".","y",",","dC",".","w",")",";","return","sqrt","(","dC",".","xy",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","vec3","la","(","vec2","Iz",",","float","II",")","{","vec2","IA","=","Iw","(","floor","(","Iz",")",")",";","vec2","IB","=","fract","(","Iz",")",";","vec4","IC","=","IB",".","x","+","vec4","(","-","0.5",",","-","1.5",",","-","0.5",",","-","1.5",")",";","vec4","ID","=","IB",".","y","+","vec4","(","-","0.5",",","-","0.5", ",","-","1.5",",","-","1.5",")",";","vec4","p","=","Iy","(","IA",".","x","+","vec4","(","_0_0",",","_1_0",",","_0_0",",","_1_0",")",")",";","p","=","Iy","(","p","+","IA",".","y","+","vec4","(","_0_0",",","_0_0",",","_1_0",",","_1_0",")",")",";","vec4","IE","=","Ix","(","p",")","*","K","+","K2",";","vec4","IF","=","Ix","(","floor","(","p","*","K",")",")","*","K","+","K2",";","vec4","IG","=","IC","+","JITTER","*","IE",";","vec4","IH","=","ID","+","JITTER","*","IF",";","vec4","IJ","=","IG","*","IG", "+","IH","*","IH",";","IG","+=","II",";","IH","+=","II",";","vec4","IK","=","IG","*","IG","+","IH","*","IH",";","IG","+=","II",";","IH","+=","II",";","vec4","IL","=","IG","*","IG","+","IH","*","IH",";","IJ",".","xy","=","min","(","IJ",".","xy",",","IJ",".","zw",")",";","IJ",".","x","=","min","(","IJ",".","x",",","IJ",".","y",")",";","IK",".","xy","=","min","(","IK",".","xy",",","IK",".","zw",")",";","IK",".","x","=","min","(","IK",".","x",",","IK",".","y",")",";","IL",".","xy","=","min","(","IL", ".","xy",",","IL",".","zw",")",";","IL",".","x","=","min","(","IL",".","x",",","IL",".","y",")",";","return","vec3","(","IJ",".","x",",","IK",".","x",",","IL",".","x",")",";","}","vec3","IM","(","vec3","x",")","{","return","Iw","(","(","(","x","*","34.0",")","+","_1_0",")","*","x",")",";","}","float","fz","(","vec2","kU",")","{","const","vec4","IN","=","vec4","(","0.211324865405187",",","0.366025403784439",",","-","0.577350269189626",",","0.024390243902439",")",";","vec2","cq","=","floor","(","kU", "+","dot","(","kU",",","IN",".","yy",")",")",";","vec2","IO","=","kU","-","cq","+","dot","(","cq",",","IN",".","xx",")",";","vec2","IP",";","IP","=","(","IO",".","x",">","IO",".","y",")","?","vec2","(","_1_0",",","_0_0",")",":","vec2","(","_0_0",",","_1_0",")",";","vec4","IQ","=","IO",".","xyxy","+","IN",".","xxzz",";","IQ",".","xy","-=","IP",";","cq","=","Iw","(","cq",")",";","vec3","p","=","IM","(","IM","(","cq",".","y","+","vec3","(","_0_0",",","IP",".","y",",","_1_0",")",")","+","cq",".","x", "+","vec3","(","_0_0",",","IP",".","x",",","_1_0",")",")",";","vec3","aA","=","max","(","0.5","-","vec3","(","dot","(","IO",",","IO",")",",","dot","(","IQ",".","xy",",","IQ",".","xy",")",",","dot","(","IQ",".","zw",",","IQ",".","zw",")",")",",","_0_0",")",";","aA","=","aA","*","aA",";","aA","=","aA","*","aA",";","vec3","x","=","2.0","*","fract","(","p","*","IN",".","www",")","-","_1_0",";","vec3","co","=","abs","(","x",")","-","0.5",";","vec3","IE","=","floor","(","x","+","0.5",")",";","vec3","IR", "=","x","-","IE",";","aA","*=","1.79284291400159","-","0.85373472095314","*","(","IR","*","IR","+","co","*","co",")",";","vec3","g",";","g",".","x","=","IR",".","x","*","IO",".","x","+","co",".","x","*","IO",".","y",";","g",".","yz","=","IR",".","yz","*","IQ",".","xz","+","co",".","yz","*","IQ",".","yw",";","return","130.0","*","dot","(","aA",",","g",")",";","}","vec2","IU","(","vec2","f_",")","{","float","IJ","=","dot","(","f_",",","vec2","(","12.9898",",","78.233",")",")",";","float","IK","=","dot", "(","f_",",","vec2","(","12.9898",",","78.233",")","*","2.0",")",";","float","IS","=","fract","(","sin","(","IJ",")","*","43758.5453",")","*","2.0","-","_1_0",";","float","IT","=","fract","(","sin","(","IK",")","*","43758.5453",")","*","2.0","-","_1_0",";","return","vec2","(","IS",",","IT",")",";","}","float","lk","(","vec2","IV",")","{","return","fract","(","sin","(","dot","(","IV",",","vec2","(","12.9898",",","78.233",")",")",")","*","43758.5453",")",";","}"]}]}}]}]},exports["include/refraction.glslf"]= {TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"REFRACTION_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"REFRACTION_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"REFRACTIVE",TOKENS:["0"]},{TYPE:"var",NAME:"USE_REFRACTION_CORRECTION",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFRACTIVE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_REFRACTION_CORRECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"pack.glslf"}]}}]},{TYPE:"include",FILE:"color_util.glslf"}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_REFRACTION_CORRECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","eW","(","in","float","cW",",","inout","vec2","eV",",","in","vec2","eM",")","{","vec4","IW","=","GLSL_TEXTURE","(","u_scene_depth",",","eV",")",";","float","eX","=","cV","(","IW",")",";","if","(","eX","<","m",")","{","eV","=","eM",";","return","cW",";","}","else","{","return","eX",";","}","return","cW",";","}"]}]}}]},{TYPE:"txt",TOKENS:["vec3","cS","(","in","vec3","ru",",", "in","vec2","IX",")","{","vec2","eM","=","ru",".","xy","/","ru",".","z",";","vec2","eV","=","eM","+","IX",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["USE_REFRACTION_CORRECTION"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","cU","=","GLSL_TEXTURE_PROJ","(","u_scene_depth",",","ru",")",";","float","cW","=","cV","(","cU",")",";","eW","(","cW",",","eV",",","eM",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","fa","=","GLSL_TEXTURE","(","u_refractmap",",","eV",")",".","rgb",";","bG","(","fa",")", ";","return","fa",";","}"]}]}}]}]}}]}]},exports["include/scale_texcoord.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SCALE_TEXCOORD_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SCALE_TEXCOORD_GLSLV",TOKENS:[""]},{TYPE:"txt",TOKENS:["vec2","az","(","vec2","ce",",","vec3","IY",")","{","return","(","ce","+","0.5",")","*","IY",".","xy","-","0.5",";","}"]}]}}]}]},exports["include/shadow.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SHADOW_GLSLF",GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"SHADOW_GLSLF",TOKENS:[""]},{TYPE:"var",NAME:"PRECISION",TOKENS:["highp"]},{TYPE:"var",NAME:"SHADOW_TEX_RES",TOKENS:["2048.0"]},{TYPE:"var",NAME:"CSM_FADE_LAST_CASCADE",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_BLEND_BETWEEN_CASCADES",TOKENS:["0"]},{TYPE:"var",NAME:"RGBA_SHADOWS",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION1",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION2",TOKENS:["0"]}, {TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]},{TYPE:"var",NAME:"COMPARED_MODE",TOKENS:["0"]},{TYPE:"var",NAME:"POISSON_DISK_NUM",TOKENS:["NO_SOFT_SHADOWS"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"procedural.glslf"}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["const","float","IZ","=","0.1",";","const","float","I_","=","0.1",";","const","float","Ja","=","-","0.01",";","const","float","Jb","=","0.05",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","POISSON_X_16",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["vec4","Jc","=","vec4","(","0.14383161",",","0.34495938",",","-","0.38277543",",","-","0.26496911",")",";","vec4","Jd","=","vec4","(","0.53742981",",","0.19984126",",","0.79197514",",","-","0.094184101",")",";","vec4","Je","=","vec4","(","-","0.94201624",",","-","0.91588581",",","-","0.2418884",",","0.44323325",")",";","vec4","Jf","=","vec4","(","-","0.81544232",",","0.94558609",",","-","0.81409955",",","0.97484398",")",";","vec4","Jg","=","vec4","(","-","0.1410079",",", "0.2938776",",","0.27676845",",","-","0.41893023",")",";","vec4","Jh","=","vec4","(","-","0.4737342",",","0.78641367",",","0.19090188",",","-","0.9293887",")",";","vec4","Ji","=","vec4","(","-","0.39906216",",","0.45771432",",","0.99706507",",","-","0.97511554",")",";","vec4","Jj","=","vec4","(","-","0.87912464",",","-","0.76890725",",","0.9143759",",","0.7564837",")",";"]}]}},{TYPE:"elif",EXPRESSION:["POISSON_DISK_NUM","POISSON_X_8",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["vec2","Jc","=","vec2","(","-","0.37192261",",","0.47109537",")",";","vec2","Jd","=","vec2","(","-","0.6807477",",","0.69048062",")",";","vec2","Je","=","vec2","(","0.11615683",",","-","0.91318524",")",";","vec2","Jf","=","vec2","(","0.93688596",",","-","0.16948928",")",";","vec2","Jg","=","vec2","(","-","0.89699117",",","0.74092316",")",";","vec2","Jh","=","vec2","(","0.38263656",",","-","0.66119884",")",";","vec2","Ji","=","vec2","(","-","0.08193062",",","-","0.21275223",")",";","vec2", "Jj","=","vec2","(","0.05578877",",","0.84225623",")",";"]}]}},{TYPE:"elif",EXPRESSION:["POISSON_DISK_NUM","POISSON_X_4",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","Jc","=","vec2","(","-","0.51808083",",","0.0",")",";","vec2","Jd","=","vec2","(","0.5741194",",","0.0",")",";","vec2","Je","=","vec2","(","-","0.68048857",",","0.0",")",";","vec2","Jf","=","vec2","(","0.82934988",",","0.0",")",";","vec2","Jg","=","vec2","(","0.70009436",",","0.0",")",";","vec2","Jh", "=","vec2","(","-","0.78790467",",","0.0",")",";","vec2","Ji","=","vec2","(","-","0.58619489",",","0.0",")",";","vec2","Jj","=","vec2","(","0.41902178",",","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["bool","Jl","(","vec2","iO",",","float","Jk",")","{","return","all","(","lessThanEqual","(","iO",",","vec2","(","1.0","+","Jk",")",")",")","&&","all","(","greaterThanEqual","(","iO",",","vec2","(","0.0","-","Jk",")",")",")",";","}","float","Js","(","float","Jm",",","float","Jn",",","mat2","Jo",",","vec3", "Jp",",","float","Jq",",","PRECISION","GLSL_SMPLR2D_SHDW","Jr",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","iO",",","fM",";","fM",".","x","=","Jm",";","fM",".","y","=","Jn",";","fM","=","Jo","*","fM",";","iO","=","Jp",".","xy","+","fM","*","Jq","/","SHADOW_TEX_RES",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec2","iO","=","Jp",".","xy",";"]}]}}]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","!","Jl","(","iO",",","Ja",")",")","return","1.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["RGBA_SHADOWS"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","et","=","cV","(","GLSL_TEXTURE","(","Jr",",","iO",")",")",";","return","step","(","Jp",".","z",",","et",")",";"]}]}},{TYPE:"elif",EXPRESSION:["COMPARED_MODE"],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["return","GLSL_TEXTURE","(","Jr",",","vec3","(","iO",",","Jp",".","z",")",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","step","(","Jp",".","z",",","GLSL_TEXTURE","(","Jr",",","iO",")",".","r",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","float","Jx","(","vec3","Jp",",","PRECISION","GLSL_SMPLR2D_SHDW","Jr",",","float","Jq",")","{","float","Jt","=","0.0",";","Jp",".","z","=","clamp","(","Jp",".","z",",","0.0",",","1.0",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","Ju","=","IU","(","Jp",".","xy",")",".","x","*","M_PI",";","float","Jv","=","cos","(","Ju",")",";","float","Jw","=","sin","(","Ju",")",";","mat2","Jo","=","mat2","(","Jv",",","Jw",",","-","Jw",",","Jv",")",";","for","(","int","cq","=","0",";","cq","<","POISSON_DISK_NUM",";","cq","++",")","{","Jt","+=","Js","(","Jc","[","cq","]",",","Jg","[","cq","]",",","Jo",",", "Jp",",","Jq",",","Jr",")",";","Jt","+=","Js","(","Jd","[","cq","]",",","Jh","[","cq","]",",","Jo",",","Jp",",","Jq",",","Jr",")",";","Jt","+=","Js","(","Je","[","cq","]",",","Ji","[","cq","]",",","Jo",",","Jp",",","Jq",",","Jr",")",";","Jt","+=","Js","(","Jf","[","cq","]",",","Jj","[","cq","]",",","Jo",",","Jp",",","Jq",",","Jr",")",";","}","return","clamp","(","Jt","/","(","float","(","POISSON_DISK_NUM",")","*","4.0",")",",","0.0",",","1.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["return","Js","(","0.0",",","0.0",",","mat2","(","0.0",")",",","Jp",",","Jq",",","Jr",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}","float","JG","(","vec3","Jy",",","PRECISION","GLSL_SMPLR2D_SHDW","Jz",",","vec3","JA",",","PRECISION","GLSL_SMPLR2D_SHDW","JB",",","float","JC",",","float","JD",",","float","aL",")","{","float","JE",",","JF",";","Jy",".","z","=","clamp","(","Jy",".","z",",","0.0",",","1.0",")",";","JA",".","z","=","clamp","(","JA",".","z",",","0.0",",","1.0",")",";","JE","=","0.0",";", "JF","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","Ju","=","IU","(","Jy",".","xy",")",".","x","*","M_PI",";","float","Jv","=","cos","(","Ju",")",";","float","Jw","=","sin","(","Ju",")",";","mat2","Jo","=","mat2","(","Jv",",","Jw",",","-","Jw",",","Jv",")",";","for","(","int","cq","=","0",";","cq","<","POISSON_DISK_NUM",";","cq","++",")","{","JE","+=","Js","(","Jc", "[","cq","]",",","Jg","[","cq","]",",","Jo",",","Jy",",","JC",",","Jz",")",";","JE","+=","Js","(","Jd","[","cq","]",",","Jh","[","cq","]",",","Jo",",","Jy",",","JC",",","Jz",")",";","JE","+=","Js","(","Je","[","cq","]",",","Ji","[","cq","]",",","Jo",",","Jy",",","JC",",","Jz",")",";","JE","+=","Js","(","Jf","[","cq","]",",","Jj","[","cq","]",",","Jo",",","Jy",",","JC",",","Jz",")",";","}","for","(","int","cq","=","0",";","cq","<","POISSON_DISK_NUM",";","cq","++",")","{","JF","+=","Js","(","Jc","[", "cq","]",",","Jg","[","cq","]",",","Jo",",","JA",",","JD",",","JB",")",";","JF","+=","Js","(","Jd","[","cq","]",",","Jh","[","cq","]",",","Jo",",","JA",",","JD",",","JB",")",";","JF","+=","Js","(","Je","[","cq","]",",","Ji","[","cq","]",",","Jo",",","JA",",","JD",",","JB",")",";","JF","+=","Js","(","Jf","[","cq","]",",","Jj","[","cq","]",",","Jo",",","JA",",","JD",",","JB",")",";","}","JE","=","mix","(","JE",",","JF",",","aL",")",";","JE","/=","(","float","(","POISSON_DISK_NUM",")","*","4.0",")", ";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JE","+=","Js","(","0.0",",","0.0",",","mat2","(","0.0",")",",","Jy",",","JC",",","Jz",")",";","JF","+=","Js","(","0.0",",","0.0",",","mat2","(","0.0",")",",","JA",",","JD",",","JB",")",";","JE","=","mix","(","JE",",","JF",",","aL",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","clamp","(","JE",",","0.0",",","1.0",")",";","}","float","JH","(","vec2","iO",")","{","float","a","=","min","(","iO",".","x",",","iO",".","y",")",";","float", "b","=","min","(","1.0","-","iO",".","x",",","1.0","-","iO",".","y",")",";","return","min","(","a",",","b",")",";","}","float","JJ","(","float","vo",",","float","JI",")","{","if","(","JI",">=","0.0","&&","JI","<=","I_",")","vo","=","(","vo","-","1.0",")","/","I_","*","JI","+","1.0",";","return","vo",";","}","float","JO","(","vec3","JK",",","vec3","JL",",","PRECISION","GLSL_SMPLR2D_SHDW","Jz",",","PRECISION","GLSL_SMPLR2D_SHDW","JB",",","float","JC",",","float","JD",",","float","JM",",","float","et", ")","{","float","vo",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_BLEND_BETWEEN_CASCADES"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","JI","=","JH","(","JK",".","xy",")",";","if","(","-","et",">","JM","&&","JI",">=","0.0","&&","JI","<=","IZ","&&","Jl","(","JL",".","xy",",","0.0",")",")","{","float","JN","=","1.0","-","JI","/","IZ",";","vo","=","JG","(","JK",",","Jz",",","JL",",","JB",",","JC",",","JD",",","JN",")",";","}","else"]}]}}]},{TYPE:"txt",TOKENS:["vo","=","Jx","(","JK", ",","Jz",",","JC",")",";","return","vo",";","}","float","JQ","(","vec3","JP",",","PRECISION","GLSL_SMPLR2D_SHDW","Jr",",","float","Jq",",","float","JM",",","float","et",")","{","float","vo","=","Jx","(","JP",",","Jr",",","Jq",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_FADE_LAST_CASCADE"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","-","et",">","JM",")","{","float","JI","=","JH","(","JP",".","xy",")",";","vo","=","JJ","(","vo",",","JI",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["return", "vo",";","}","vec4","ev","(","float","et",")","{","float","vo","=","1.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["POISSON_DISK_NUM","NO_SOFT_SHADOWS",{TYPE:"non_equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","JR","=","u_pcf_blur_radii",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","JR","=","vec4","(","0.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec3","Jy","=","n",".","xyz","/","n",".","w",";","if","(","n",".","w","<","0.0",")","Jy",".", "z","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1","NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","JA","=","o",".","xyz","/","o",".","w",";","if","(","o",".","w","<","0.0",")","JA",".","z","=","0.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2","NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3", "JS","=","u",".","xyz","/","u",".","w",";","if","(","u",".","w","<","0.0",")","JS",".","z","=","0.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3","NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","JT","=","v",".","xyz","/","v",".","w",";","if","(","v",".","w","<","0.0",")","JT",".","z","=","0.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["if","(","Jl","(","Jy",".","xy",",","0.0",")",")","{","vo","=","JO","(","Jy",",","JA",",","u_shadow_map0",",","u_shadow_map1",",","JR","[","0","]",",","JR","[","1","]",",","u_csm_center_dists","[","0","]",",","et",")",";","}"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","Jl","(","Jy",".","xy",",","Jb",")",")","{","vo","=","JQ","(","Jy",",","u_shadow_map0",",","JR","[","0","]",",","u_csm_center_dists","[","0","]",",","et",")",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if", EXPRESSION:["CSM_SECTION1"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["else","{","if","(","Jl","(","JA",".","xy",",","0.0",")",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vo","=","JO","(","JA",",","JS",",","u_shadow_map1",",","u_shadow_map2",",","JR","[","1","]",",","JR","[","2","]",",","u_csm_center_dists","[","1","]",",","et",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vo","=","JQ","(","JA",",", "u_shadow_map1",",","JR","[","1","]",",","u_csm_center_dists","[","1","]",",","et",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["else","{","if","(","Jl","(","JS",".","xy",",","0.0",")",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vo","=","JO","(","JS",",","JT",",","u_shadow_map2",",","u_shadow_map3",",","JR","[","2","]",",","JR", "[","3","]",",","u_csm_center_dists","[","2","]",",","et",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vo","=","JQ","(","JS",",","u_shadow_map2",",","JR","[","2","]",",","u_csm_center_dists","[","2","]",",","et",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["else","{","if","(","Jl","(","JT",".","xy",",","0.0",")",")","vo","=","JQ","(","JT",",","u_shadow_map3",",","JR","[", "3","]",",","u_csm_center_dists","[","3","]",",","et",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","JU","=","Jx","(","JA",",","u_shadow_map1",",","JR","[","0","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","JU","=","0.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS", 2,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","JV","=","Jx","(","JS",",","u_shadow_map2",",","JR","[","0","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","JV","=","0.0",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","JW","=","Jx","(","JT",",","u_shadow_map3",",","JR","[","0","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["float","JW","=","1.0",";"]}]}}]},{TYPE:"txt",TOKENS:["return","vec4","(","vo",",","JU",",","JV",",","JW",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["vec4","cH","(","inout","vec3","cD",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MAPPING_OPAQUE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","Jt","=","GLSL_TEXTURE","(","u_shadow_mask",",","l",".","xy","/","l",".","z",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS", 3,{TYPE:"l_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["cD","*=","Jt",".","a",";"]}]}}]},{TYPE:"txt",TOKENS:["return","Jt",";"]}]}},{TYPE:"elif",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","Jt","=","ev","(","i",".","z",")",";","return","Jt",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["return","vec4","(","1.0",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]},exports["include/shadow.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SHADOW_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SHADOW_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"MAC_OS_SHADOW_HACK",TOKENS:["0"]},{TYPE:"var",NAME:"SHADOW_TEX_RES",TOKENS:["2048.0"]},{TYPE:"var",NAME:"SHADOW_USAGE",TOKENS:["NO_SHADOWS"]},{TYPE:"var",NAME:"NUM_CAST_LAMPS",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION1", TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION2",TOKENS:["0"]},{TYPE:"var",NAME:"CSM_SECTION3",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SHADOW_USAGE","SHADOW_MASK_GENERATION",{TYPE:"equal_expr",PLACES:2},"SHADOW_USAGE","SHADOW_MAPPING_BLEND",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"math.glslv"},{TYPE:"txt",TOKENS:["vec4","J_","(","mat4","JX",",","vec4","JY",",","mat4","JZ",")","{", "vec2","ey","=","(","JX","*","JZ","[","3","]",")",".","xy",";","float","ez","=","SHADOW_TEX_RES","/","2.0",";","ey","=","floor","(","ey","*","ez","+","0.5",")","/","ez","-","ey",";","vec4","Jp","=","JX","*","JY",";","Jp",".","xy","+=","ey",";","Jp",".","xyz","=","0.5","*","(","Jp",".","xyz","+","Jp",".","w",")",";","return","Jp",";","}","void","cd","(","vec3","fr",",","vec3","Ka",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAC_OS_SHADOW_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat4", "JZ","=","bh","(","u_v_light_tsr","[","0","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat4","JZ","=","bh","(","mat3","(","u_v_light_ts","[","0","]",".","xyz",",","vec3","(","u_v_light_ts","[","0","]",".","w",")",",","u_v_light_r","[","0","]",".","xyz","*","(","2.","*","float","(","u_v_light_r","[","0","]",".","w",">=","0.",")","-","1.",")",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["vec4","Kb","=","JZ","*","vec4","(","fr","+","u_normal_offset","*","Ka",",","1.0",")",";", "n","=","J_","(","u_p_light_matrix0",",","Kb",",","JZ",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS",1,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAC_OS_SHADOW_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JZ","=","bh","(","u_v_light_tsr","[","1","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JZ","=","bh","(","mat3","(","u_v_light_ts","[","1","]",".","xyz",",","vec3","(","u_v_light_ts", "[","1","]",".","w",")",",","u_v_light_r","[","1","]",".","xyz","*","(","2.","*","float","(","u_v_light_r","[","1","]",".","w",">=","0.",")","-","1.",")",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["Kb","=","JZ","*","vec4","(","fr","+","u_normal_offset","*","Ka",",","1.0",")",";","o","=","J_","(","u_p_light_matrix1",",","Kb",",","JZ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS",2,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAC_OS_SHADOW_HACK"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JZ","=","bh","(","u_v_light_tsr","[","2","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JZ","=","bh","(","mat3","(","u_v_light_ts","[","2","]",".","xyz",",","vec3","(","u_v_light_ts","[","2","]",".","w",")",",","u_v_light_r","[","2","]",".","xyz","*","(","2.","*","float","(","u_v_light_r","[","2","]",".","w",">=","0.",")","-","1.",")",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["Kb","=","JZ","*","vec4","(","fr","+","u_normal_offset", "*","Ka",",","1.0",")",";","u","=","J_","(","u_p_light_matrix2",",","Kb",",","JZ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["NUM_CAST_LAMPS",3,{TYPE:"g_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAC_OS_SHADOW_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JZ","=","bh","(","u_v_light_tsr","[","3","]",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["JZ","=","bh","(","mat3","(","u_v_light_ts","[","3","]",".","xyz", ",","vec3","(","u_v_light_ts","[","3","]",".","w",")",",","u_v_light_r","[","3","]",".","xyz","*","(","2.","*","float","(","u_v_light_r","[","3","]",".","w",">=","0.",")","-","1.",")",")",")",";"]}]}}]},{TYPE:"txt",TOKENS:["Kb","=","JZ","*","vec4","(","fr","+","u_normal_offset","*","Ka",",","1.0",")",";","v","=","J_","(","u_p_light_matrix3",",","Kb",",","JZ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION1"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["o","=","J_","(","u_p_light_matrix1", ",","Kb",",","JZ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION2"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["u","=","J_","(","u_p_light_matrix2",",","Kb",",","JZ",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CSM_SECTION3"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["v","=","J_","(","u_p_light_matrix3",",","Kb",",","JZ",")",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]}}]}]},exports["include/skin.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef", NAME:"SKIN_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SKIN_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"DISABLE_TANGENT_SKINNING",TOKENS:["0"]},{TYPE:"var",NAME:"SKINNED",TOKENS:["0"]},{TYPE:"var",NAME:"FRAMES_BLENDING",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKINNED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"include",FILE:"math.glslv"},{TYPE:"define",NAME:"SKIN_SLERP",TOKENS:["0"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKIN_SLERP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4", "Ki","(","in","vec4","qZ",",","in","vec4","rF",",","in","float","Kc",")","{","float","Kd","=","qZ","[","0","]","*","rF","[","0","]","+","qZ","[","1","]","*","rF","[","1","]","+","qZ","[","2","]","*","rF","[","2","]","+","qZ","[","3","]","*","rF","[","3","]",";","if","(","Kd","<","0.0",")","{","rF","*=","-","1.0",";","Kd","=","-","Kd",";","}","if","(","abs","(","Kd",")",">=","1.0",")","return","qZ",";","float","Ke","=","acos","(","Kd",")",";","float","Kf","=","sqrt","(","1.0","-","Kd","*","Kd",")", ";","if","(","abs","(","Kf",")","<","0.001",")","return","vec4","(","qZ","*","0.5","+","rF","*","0.5",")",";","float","Kg","=","sin","(","(","1.0","-","Kc",")","*","Ke",")","/","Kf",";","float","Kh","=","sin","(","Kc","*","Ke",")","/","Kf",";","return","qZ","*","Kg","+","rF","*","Kh",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Kw","(","in","vec3","O",",","in","vec4","Kj",",","in","vec4","Kk",",","in","vec4","Kl", ",","in","vec4","Km",",","in","float","Kn",")","{","vec3","Ko","=","rl","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","O",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKIN_SLERP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","qZ","=","Ki","(","Kj",",","Kk",",","Kn",")",";","vec4","Kp","=","mix","(","Kl",",","Km",",","Kn",")",";","vec3","Kq","=","T","(","qZ",",","Ko",")",";","vec3","Kr","=","Kq","*","Kp",".","w","+","Kp",".","xyz", ";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Ks","=","T","(","Kj",",","Ko",")",";","vec3","Kt","=","T","(","Kk",",","Ko",")",";","vec3","Ku","=","Ks","*","Kl",".","w","+","Kl",".","xyz",";","vec3","Kv","=","Kt","*","Km",".","w","+","Km",".","xyz",";","vec3","Kr","=","mix","(","Ku",",","Kv",",","Kn",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","rn","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","Kr",")",";","}","vec3", "KC","(","in","vec3","Kx",",","in","vec4","Kj",",","in","vec4","Kk",",","in","float","Kn",")","{","vec3","Ky","=","rm","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","Kx",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["SKIN_SLERP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","qZ","=","Ki","(","Kj",",","Kk",",","Kn",")",";","vec3","Kz","=","T","(","qZ",",","Ky",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3", "KA","=","T","(","Kj",",","Ky",")",";","vec3","KB","=","T","(","Kk",",","Ky",")",";","vec3","Kz","=","mix","(","KA",",","KB",",","Kn",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","ro","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","Kz",")",";","}"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Kw","(","in","vec3","O",",","in","vec4","Kj",",","in","vec4","Kl",")","{","vec3","Ko","=","rl","(","u_arm_rel_trans",".","xyz",",", "vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","O",")",";","vec3","Kq","=","T","(","Kj",",","Ko",")",";","vec3","Kr","=","Kq","*","Kl",".","w","+","Kl",".","xyz",";","return","rn","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","Kr",")",";","}","vec3","KC","(","in","vec3","Kx",",","in","vec4","Kj",")","{","vec3","Ky","=","rm","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",", "Kx",")",";","vec3","Kz","=","T","(","Kj",",","Ky",")",";","return","ro","(","u_arm_rel_trans",".","xyz",",","vec3","(","u_arm_rel_trans",".","w",")",",","u_arm_rel_quat",",","Kz",")",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","an","(","inout","vec3","O",",","inout","vec3","V",",","inout","vec3","W",",","inout","vec3","U",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","KD","=","u_frame_factor",";"]}]}}]},{TYPE:"txt",TOKENS:["if", "(","a_influence",".","y",">","0.0",")","{","vec3","jH","=","vec3","(","0.0",",","0.0",",","0.0",")",";","vec3","KE","=","vec3","(","0.0",",","0.0",",","0.0",")",";","vec3","KF","=","vec3","(","0.0",",","0.0",",","0.0",")",";","vec3","KG","=","vec3","(","0.0",",","0.0",",","0.0",")",";","vec4","KH","=","a_influence",";","for","(","int","cq","=","0",";","cq","<","4",";","cq","++",")","{","int","KI","=","int","(","KH","[","cq","]",")",";","float","KJ","=","fract","(","KH","[","cq","]",")",";"]},{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KE","+=","KJ","*","KC","(","V",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","KD",")",";","KF","+=","KJ","*","KC","(","W",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","KD",")",";","KG","+=","KJ","*","KC","(","U",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","KD",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["jH","+=","KJ","*","Kw","(","O", ",","u_quatsb","[","KI","]",",","u_transb","[","KI","]",")",";","KG","+=","KJ","*","KC","(","U",",","u_quatsb","[","KI","]",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_TANGENT_SKINNING",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KE","+=","KJ","*","KC","(","V",",","u_quatsb","[","KI","]",")",";","KF","+=","KJ","*","KC","(","W",",","u_quatsb","[","KI","]",")",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["int","KI","=","int","(","KH","[","0","]",")",";","float","KJ","=","fract","(","KH","[","0","]",")",";","jH","+=","KJ","*","Kw","(","O",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","u_transb","[","KI","]",",","u_transa","[","KI","]",",","KD",")",";","KI","=","int","(","KH","[","1","]",")",";","KJ","=","fract","(","KH","[","1","]",")",";","jH","+=","KJ","*","Kw","(","O",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","u_transb", "[","KI","]",",","u_transa","[","KI","]",",","KD",")",";","KI","=","int","(","KH","[","2","]",")",";","KJ","=","fract","(","KH","[","2","]",")",";","jH","+=","KJ","*","Kw","(","O",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","u_transb","[","KI","]",",","u_transa","[","KI","]",",","KD",")",";","KI","=","int","(","KH","[","3","]",")",";","KJ","=","fract","(","KH","[","3","]",")",";","jH","+=","KJ","*","Kw","(","O",",","u_quatsb","[","KI","]",",","u_quatsa","[","KI","]",",","u_transb", "[","KI","]",",","u_transa","[","KI","]",",","KD",")",";"]}]}}]},{TYPE:"txt",TOKENS:["O","=","jH",";","U","=","KG",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_TANGENT_SKINNING",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["V","=","KE",";","W","=","KF",";"]}]}}]},{TYPE:"txt",TOKENS:["}","if","(","!","(","a_influence",".","y",">","0.0",")",")","{","int","KK","=","int","(","a_influence","[","0","]","-","1.0",")",";","if","(","KK",">","-","1",")","{"]}, {TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["FRAMES_BLENDING"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","Kw","(","O",",","u_quatsb","[","KK","]",",","u_quatsa","[","KK","]",",","u_transb","[","KK","]",",","u_transa","[","KK","]",",","KD",")",";","V","=","KC","(","V",",","u_quatsb","[","KK","]",",","u_quatsa","[","KK","]",",","KD",")",";","W","=","KC","(","W",",","u_quatsb","[","KK","]",",","u_quatsa","[","KK","]",",","KD",")",";","U","=","KC","(","U",",","u_quatsb","[","KK","]",",","u_quatsa", "[","KK","]",",","KD",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","Kw","(","O",",","u_quatsb","[","KK","]",",","u_transb","[","KK","]",")",";","U","=","KC","(","U",",","u_quatsb","[","KK","]",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DISABLE_TANGENT_SKINNING",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["V","=","KC","(","V",",","u_quatsb","[","KK","]",")",";","W","=","KC","(","W",",","u_quatsb","[","KK","]",")", ";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["}","}","}"]}]}}]}]}}]}]},exports["include/sky_blending.glslf"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"SKY_BLENDING_GLSLF",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"SKY_BLENDING_GLSLF",TOKENS:[""]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"include",FILE:"blending.glslf"},{TYPE:"var",NAME:"WO_SKYREAL",TOKENS:["0"]},{TYPE:"var",NAME:"WO_SKYBLEND",TOKENS:["0"]},{TYPE:"var",NAME:"BLENDTYPE",TOKENS:["MIX"]},{TYPE:"var",NAME:"MTEX_RGBTOINT",TOKENS:["0"]}, {TYPE:"var",NAME:"WOMAP_HORIZ",TOKENS:["0"]},{TYPE:"var",NAME:"WOMAP_ZENUP",TOKENS:["0"]},{TYPE:"var",NAME:"WOMAP_ZENDOWN",TOKENS:["0"]},{TYPE:"var",NAME:"WOMAP_BLEND",TOKENS:["0"]},{TYPE:"var",NAME:"MTEX_NEGATIVE",TOKENS:["0"]},{TYPE:"txt",TOKENS:["vec3","KL","(","vec3","km",",","vec3","kn",",","float","aL",",","float","kM",")","{","float","ko","=","aL","*","kM",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLENDTYPE","MIX",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return", "kp","(","kn",",","km",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","ADD",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kq","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SUBTRACT",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kr","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","MULTIPLY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt", TOKENS:["return","kt","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SCREEN",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","ku","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","OVERLAY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kv","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","DIFFERENCE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["return","kw","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","DIVIDE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kx","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","DARKEN",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","ky","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","LIGHTEN",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kz","(","km",",","kn",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","HUE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kD","(","kn",",","km",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SATURATION",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kE","(","kn",",","km",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","VALUE",{TYPE:"equal_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kF","(","kn",",","km",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","COLOR",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kG","(","kn",",","km",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SOFT_LIGHT",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kI","(","kn",",","km",",","ko",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","LINEAR_LIGHT", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kJ","(","kn",",","km",",","ko",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","vec3","(","1.0",",","0.0",",","1.0",")",";","}","float","KM","(","float","kK",",","float","kL",",","float","aL",",","float","kM",")","{","vec3","km","=","vec3","(","kK",")",",","kn","=","vec3","(","kL",")",";","float","ko","=","aL","*","kM",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BLENDTYPE","MIX",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["return","kp","(","kn",",","km",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","ADD",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kq","(","km",",","kn",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SUBTRACT",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kr","(","km",",","kn",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","MULTIPLY", {TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kN","(","kK",",","kL",",","ko",",","kM",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SCREEN",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kO","(","kK",",","kL",",","ko",",","kM",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","OVERLAY",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kP","(","kK",",","kL",",","ko",",","kM",")",";"]}]}}, {TYPE:"elif",EXPRESSION:["BLENDTYPE","DIFFERENCE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kw","(","km",",","kn",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","DIVIDE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kx","(","km",",","kn",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","DARKEN",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","ky", "(","km",",","kn",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","LIGHTEN",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kz","(","km",",","kn",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","SOFT_LIGHT",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kI","(","kn",",","km",",","ko",")",".","x",";"]}]}},{TYPE:"elif",EXPRESSION:["BLENDTYPE","LINEAR_LIGHT",{TYPE:"equal_expr",PLACES:2}], GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["return","kJ","(","kn",",","km",",","ko",")",".","x",";"]}]}}]},{TYPE:"txt",TOKENS:["return","0.0",";","}","vec3","eF","(","vec3","eB",",","vec3","eC",",","vec4","eE",",","float","eA",",","vec3","eD",")","{","float","KN","=","1.0",";","KN","=","eE",".","a",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MTEX_RGBTOINT"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KN","=","gj","(","eE",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MTEX_NEGATIVE"], GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MTEX_RGBTOINT",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eE","=","vec4","(","vec3","(","1.0",")","-","eE",".","rgb",",","eE",".","a",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KN","=","1.0","-","KN",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_HORIZ","WOMAP_ZENUP","WOMAP_ZENDOWN",{TYPE:"logical_or_expr",PLACES:3}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond", PARTS:[{TYPE:"if",EXPRESSION:["MTEX_RGBTOINT"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eE","=","vec4","(","u_sky_tex_color",",","1.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KN","=","eE",".","a",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_HORIZ"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["eB","=","KL","(","eE",".","rgb",",","eB",",","KN",",","u_sky_tex_fac","[","1","]",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_ZENUP", "WOMAP_ZENDOWN",{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","KO","=","0.0",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYREAL"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["if","(","dot","(","eD",",","vec3","(","0.0",",","0.0",",","1.0",")",")",">=","0.0",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_ZENUP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KO","=","u_sky_tex_fac","[","2","]",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:[";"]}]}}]},{TYPE:"txt",TOKENS:["}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_ZENDOWN"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["else","KO","=","u_sky_tex_fac","[","3","]",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_ZENUP"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KO","=","u_sky_tex_fac","[","2","]",";"]}]}},{TYPE:"elif",EXPRESSION:["WOMAP_ZENDOWN"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KO", "=","u_sky_tex_fac","[","3","]",";"]}]}}]}]}}]},{TYPE:"txt",TOKENS:["if","(","KO","!=","0.0",")","eC","=","KL","(","eE",".","rgb",",","eC",",","KN",",","KO",")",";"]}]}}]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WOMAP_BLEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MTEX_RGBTOINT",{TYPE:"logic_negative_expr",PLACES:1}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["KN","=","dot","(","eE",".","rgb",",","vec3","(","0.2126",",","0.7152",",","0.0722",")",")",";"]}]}}]}, {TYPE:"txt",TOKENS:["eA","=","KM","(","u_sky_tex_dvar",",","eA",",","KN",",","u_sky_tex_fac","[","0","]",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WO_SKYBLEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","bw","=","mix","(","eB",",","eC",",","eA",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","bw","=","eB",";"]}]}}]},{TYPE:"txt",TOKENS:["return","bw",";","}"]}]}}]}]},exports["include/std.glsl"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef", NAME:"STD_ENUMS_GLSL",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"STD_ENUMS_GLSL",TOKENS:[""]},{TYPE:"var",NAME:"CONSTANTS_HACK",TOKENS:["0"]},{TYPE:"define",NAME:"TEXTURE_COORDS_NONE",TOKENS:["0"]},{TYPE:"define",NAME:"TEXTURE_COORDS_UV_ORCO",TOKENS:["1"]},{TYPE:"define",NAME:"TEXTURE_COORDS_NORMAL",TOKENS:["2"]},{TYPE:"define",NAME:"TEXTURE_BLEND_TYPE_MIX",TOKENS:["1"]},{TYPE:"define",NAME:"TEXTURE_BLEND_TYPE_MULTIPLY",TOKENS:["2"]},{TYPE:"define",NAME:"SHADOW_SRC_NONE",TOKENS:["1"]},{TYPE:"define", NAME:"SHADOW_SRC_DEPTH",TOKENS:["2"]},{TYPE:"define",NAME:"SHADOW_SRC_MASK",TOKENS:["3"]},{TYPE:"define",NAME:"SHADOW_DST_NONE",TOKENS:["1"]},{TYPE:"define",NAME:"SHADOW_DST_DEPTH",TOKENS:["2"]},{TYPE:"define",NAME:"SHADOW_DST_MASK",TOKENS:["3"]},{TYPE:"define",NAME:"NO_SHADOWS",TOKENS:["1"]},{TYPE:"define",NAME:"SHADOW_CASTING",TOKENS:["2"]},{TYPE:"define",NAME:"SHADOW_MASK_GENERATION",TOKENS:["3"]},{TYPE:"define",NAME:"SHADOW_MAPPING_OPAQUE",TOKENS:["4"]},{TYPE:"define",NAME:"SHADOW_MAPPING_BLEND", TOKENS:["5"]},{TYPE:"define",NAME:"POISSON_X_16",TOKENS:["4"]},{TYPE:"define",NAME:"POISSON_X_8",TOKENS:["2"]},{TYPE:"define",NAME:"POISSON_X_4",TOKENS:["1"]},{TYPE:"define",NAME:"NO_SOFT_SHADOWS",TOKENS:["0"]},{TYPE:"define",NAME:"SPECULAR_PHONG",TOKENS:["1"]},{TYPE:"define",NAME:"SPECULAR_COOKTORR",TOKENS:["2"]},{TYPE:"define",NAME:"SPECULAR_WARDISO",TOKENS:["3"]},{TYPE:"define",NAME:"SPECULAR_BLINN",TOKENS:["4"]},{TYPE:"define",NAME:"SPECULAR_TOON",TOKENS:["5"]},{TYPE:"define",NAME:"DIFFUSE_LAMBERT", TOKENS:["1"]},{TYPE:"define",NAME:"DIFFUSE_OREN_NAYAR",TOKENS:["2"]},{TYPE:"define",NAME:"DIFFUSE_FRESNEL",TOKENS:["3"]},{TYPE:"define",NAME:"DIFFUSE_MINNAERT",TOKENS:["4"]},{TYPE:"define",NAME:"DIFFUSE_TOON",TOKENS:["5"]},{TYPE:"define",NAME:"MIX",TOKENS:["0"]},{TYPE:"define",NAME:"ADD",TOKENS:["1"]},{TYPE:"define",NAME:"SUBTRACT",TOKENS:["2"]},{TYPE:"define",NAME:"MULTIPLY",TOKENS:["3"]},{TYPE:"define",NAME:"SCREEN",TOKENS:["4"]},{TYPE:"define",NAME:"OVERLAY",TOKENS:["5"]},{TYPE:"define",NAME:"DIFFERENCE", TOKENS:["6"]},{TYPE:"define",NAME:"DIVIDE",TOKENS:["7"]},{TYPE:"define",NAME:"DARKEN",TOKENS:["8"]},{TYPE:"define",NAME:"LIGHTEN",TOKENS:["9"]},{TYPE:"define",NAME:"HUE",TOKENS:["10"]},{TYPE:"define",NAME:"SATURATION",TOKENS:["11"]},{TYPE:"define",NAME:"VALUE",TOKENS:["12"]},{TYPE:"define",NAME:"COLOR",TOKENS:["13"]},{TYPE:"define",NAME:"SOFT_LIGHT",TOKENS:["14"]},{TYPE:"define",NAME:"LINEAR_LIGHT",TOKENS:["15"]},{TYPE:"define",NAME:"REFL_NONE",TOKENS:["0"]},{TYPE:"define",NAME:"REFL_MIRRORMAP",TOKENS:["1"]}, {TYPE:"define",NAME:"REFL_PLANE",TOKENS:["2"]},{TYPE:"define",NAME:"REFL_CUBE",TOKENS:["3"]},{TYPE:"define",NAME:"REFL_PBR_SIMPLE",TOKENS:["4"]},{TYPE:"define",NAME:"REFL_PBR_STANDARD",TOKENS:["5"]},{TYPE:"define",NAME:"INVERSE_QUADRATIC",TOKENS:["0"]},{TYPE:"define",NAME:"LINEAR",TOKENS:["1"]},{TYPE:"define",NAME:"QUADRATIC",TOKENS:["2"]},{TYPE:"define",NAME:"HEMI",TOKENS:["1"]},{TYPE:"define",NAME:"SPOT",TOKENS:["2"]},{TYPE:"define",NAME:"POINT",TOKENS:["3"]},{TYPE:"define",NAME:"SUN",TOKENS:["4"]}, {TYPE:"define",NAME:"DOF_SIMPLE",TOKENS:["0"]},{TYPE:"define",NAME:"DOF_BOKEH",TOKENS:["1"]},{TYPE:"define",NAME:"COC_ALL",TOKENS:["0"]},{TYPE:"define",NAME:"COC_FOREGROUND",TOKENS:["1"]},{TYPE:"define",NAME:"COC_COMBINE",TOKENS:["2"]},{TYPE:"define",NAME:"VT_WORLD_TO_WORLD",TOKENS:["0"]},{TYPE:"define",NAME:"VT_WORLD_TO_OBJECT",TOKENS:["1"]},{TYPE:"define",NAME:"VT_WORLD_TO_CAMERA",TOKENS:["2"]},{TYPE:"define",NAME:"VT_OBJECT_TO_WORLD",TOKENS:["3"]},{TYPE:"define",NAME:"VT_OBJECT_TO_OBJECT",TOKENS:["4"]}, {TYPE:"define",NAME:"VT_OBJECT_TO_CAMERA",TOKENS:["5"]},{TYPE:"define",NAME:"VT_CAMERA_TO_WORLD",TOKENS:["6"]},{TYPE:"define",NAME:"VT_CAMERA_TO_OBJECT",TOKENS:["7"]},{TYPE:"define",NAME:"VT_CAMERA_TO_CAMERA",TOKENS:["8"]},{TYPE:"define",NAME:"VT_POINT",TOKENS:["0"]},{TYPE:"define",NAME:"VT_VECTOR",TOKENS:["1"]},{TYPE:"define",NAME:"VT_NORMAL",TOKENS:["2"]},{TYPE:"define",NAME:"NM_TANGENT",TOKENS:["0"]},{TYPE:"define",NAME:"NM_OBJECT",TOKENS:["1"]},{TYPE:"define",NAME:"NM_WORLD",TOKENS:["2"]},{TYPE:"define", NAME:"NM_BLENDER_OBJECT",TOKENS:["3"]},{TYPE:"define",NAME:"NM_BLENDER_WORLD",TOKENS:["4"]},{TYPE:"define",NAME:"BILLBOARD_ALIGN_VIEW",TOKENS:["1"]},{TYPE:"define",NAME:"BILLBOARD_ALIGN_XY",TOKENS:["2"]},{TYPE:"define",NAME:"BILLBOARD_ALIGN_YZ",TOKENS:["3"]},{TYPE:"define",NAME:"BILLBOARD_ALIGN_ZX",TOKENS:["4"]},{TYPE:"define",NAME:"POST_EFFECT_NONE",TOKENS:["1"]},{TYPE:"define",NAME:"POST_EFFECT_GRAYSCALE",TOKENS:["2"]},{TYPE:"define",NAME:"POST_EFFECT_BLUR",TOKENS:["3"]},{TYPE:"define",NAME:"POST_EFFECT_GLOW_BLUR", TOKENS:["4"]},{TYPE:"define",NAME:"POST_EFFECT_DOF_BLUR",TOKENS:["5"]},{TYPE:"define",NAME:"POST_EFFECT_ALPHA_BLUR",TOKENS:["6"]},{TYPE:"define",NAME:"POST_EFFECT_EXTEND",TOKENS:["7"]},{TYPE:"define",NAME:"FLIP_CUBEMAP_COORDS",TOKENS:["8"]},{TYPE:"define",NAME:"BLUR_PASS_1",TOKENS:["1"]},{TYPE:"define",NAME:"BLUR_PASS_2",TOKENS:["2"]},{TYPE:"define",NAME:"BLUR_PASS_3",TOKENS:["3"]},{TYPE:"define",NAME:"BLUR_PASS_4",TOKENS:["4"]},{TYPE:"define",NAME:"BLUR_PASS_5",TOKENS:["5"]},{TYPE:"define",NAME:"DV_NONE", TOKENS:["0"]},{TYPE:"define",NAME:"DV_OPAQUE_WIREFRAME",TOKENS:["1"]},{TYPE:"define",NAME:"DV_TRANSPARENT_WIREFRAME",TOKENS:["2"]},{TYPE:"define",NAME:"DV_FRONT_BACK_VIEW",TOKENS:["3"]},{TYPE:"define",NAME:"DV_BOUNDINGS",TOKENS:["4"]},{TYPE:"define",NAME:"DV_CLUSTERS_VIEW",TOKENS:["5"]},{TYPE:"define",NAME:"DV_BATCHES_VIEW",TOKENS:["6"]},{TYPE:"define",NAME:"DV_RENDER_TIME",TOKENS:["7"]},{TYPE:"define",NAME:"SSAO_QUALITY_8",TOKENS:["1"]},{TYPE:"define",NAME:"SSAO_QUALITY_16",TOKENS:["2"]},{TYPE:"define", NAME:"SSAO_QUALITY_24",TOKENS:["3"]},{TYPE:"define",NAME:"SSAO_QUALITY_32",TOKENS:["4"]},{TYPE:"define",NAME:"AA_METHOD_FXAA_LIGHT",TOKENS:["1"]},{TYPE:"define",NAME:"AA_METHOD_FXAA_QUALITY",TOKENS:["2"]},{TYPE:"define",NAME:"AA_QUALITY_LOW",TOKENS:["0"]},{TYPE:"define",NAME:"AA_QUALITY_MEDIUM",TOKENS:["1"]},{TYPE:"define",NAME:"AA_QUALITY_HIGH",TOKENS:["2"]},{TYPE:"define",NAME:"SMAA_RESOLVE",TOKENS:["25"]},{TYPE:"define",NAME:"SMAA_EDGE_DETECTION",TOKENS:["24"]},{TYPE:"define",NAME:"SMAA_BLENDING_WEIGHT_CALCULATION", TOKENS:["23"]},{TYPE:"define",NAME:"SMAA_NEIGHBORHOOD_BLENDING",TOKENS:["26"]},{TYPE:"define",NAME:"AA_METHOD_SMAA_LOW",TOKENS:["1"]},{TYPE:"define",NAME:"AA_METHOD_SMAA_MEDIUM",TOKENS:["2"]},{TYPE:"define",NAME:"AA_METHOD_SMAA_HIGH",TOKENS:["3"]},{TYPE:"define",NAME:"AA_METHOD_SMAA_ULTRA",TOKENS:["4"]},{TYPE:"define",NAME:"REFL_PASS_NONE",TOKENS:["0"]},{TYPE:"define",NAME:"REFL_PASS_PLANE",TOKENS:["1"]},{TYPE:"define",NAME:"REFL_PASS_CUBE",TOKENS:["2"]},{TYPE:"define",NAME:"SRGB_NONE",TOKENS:["0"]}, {TYPE:"define",NAME:"SRGB_SIMPLE",TOKENS:["1"]},{TYPE:"define",NAME:"SRGB_PROPER",TOKENS:["2"]},{TYPE:"define",NAME:"CAM_TYPE_ORTHO",TOKENS:["0"]},{TYPE:"define",NAME:"CAM_TYPE_PERSP",TOKENS:["1"]},{TYPE:"define",NAME:"M_PI",TOKENS:["3.14159265359"]},{TYPE:"define",NAME:"M_PI_4",TOKENS:["0.785398163"]},{TYPE:"define",NAME:"INV_PI",TOKENS:["0.318309886"]},{TYPE:"define",NAME:"UP_VECTOR",TOKENS:["vec3","(","0.0",",","0.0",",","1.0",")"]},{TYPE:"define",NAME:"RIGHT_VECTOR",TOKENS:["vec3","(","1.0",",", "0.0",",","0.0",")"]},{TYPE:"define",NAME:"TOWARD_VECTOR",TOKENS:["vec3","(","0.0",",","-","1.0",",","0.0",")"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["CONSTANTS_HACK"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","_0_0","=","0.0",";","float","_0_5","=","0.5",";","float","_1_0","=","1.0",";","float","_255_0","=","255.0",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"_0_0",TOKENS:["0.0"]},{TYPE:"define",NAME:"_0_5",TOKENS:["0.5"]},{TYPE:"define",NAME:"_1_0",TOKENS:["1.0"]}, {TYPE:"define",NAME:"_255_0",TOKENS:["255.0"]}]}}]}]}}]}]},exports["include/to_world.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"TO_WORLD_GLSLV",GROUP:{TYPE:"grp",PARTS:[{TYPE:"define",NAME:"TO_WORLD_GLSLV",TOKENS:[""]},{TYPE:"include",FILE:"math.glslv"},{TYPE:"var",NAME:"BILLBOARD_ALIGN",TOKENS:["BILLBOARD_ALIGN_VIEW"]},{TYPE:"var",NAME:"BILLBOARD_SPHERICAL",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD_RANDOM",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"var", NAME:"BILLBOARD_JITTERED",TOKENS:["0"]},{TYPE:"var",NAME:"BILLBOARD_PRES_GLOB_ORIENTATION",TOKENS:["0"]},{TYPE:"var",NAME:"STATIC_BATCH",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"define",NAME:"MAX_BILLBOARD_ANGLE",TOKENS:["M_PI_4"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_SPHERICAL","BILLBOARD",{TYPE:"logic_negative_expr",PLACES:1},"BILLBOARD_ALIGN","BILLBOARD_ALIGN_VIEW",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr", PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","bn","(","vec3","KP",",","mat3","N",")","{","vec4","KQ","=","ry","(","N",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","KR","=","X","(","RIGHT_VECTOR",",","-","M_PI","/","2.0",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","KR","=","X","(","RIGHT_VECTOR",",","M_PI","/","2.0",")",";"]}]}}]}, {TYPE:"txt",TOKENS:["KQ","=","rc","(","KR",",","KQ",")",";","KQ","=","kV","(","KQ",")",";","mat3","bo","=","aY","(",")",";","bo","=","aZ","(","KP",",","bo",")",";","bo","=","bc","(","KQ",",","bo",")",";","return","bo",";","}"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","KT","(","vec3","lL",",","vec3","KP",")","{","vec3","KS","=","lL","-","KP",";","KS",".","z","=","0.0",";","KS","=","normalize","(","KS",")",";","vec4","KQ","=","ri","(","KS",",","TOWARD_VECTOR",")",";","mat3", "bo","=","aY","(",")",";","bo","=","aZ","(","KP",",","bo",")",";","bo","=","bc","(","KQ",",","bo",")",";","return","bo",";","}"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_JITTERED"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","at","(","in","vec3","KU",",","float","KV",",","float","KW",",","float","KX",",","vec3","bf",",","mat3","Z",")","{","float","IV","=","fract","(","length","(","bf",")","/","0.17",")",";","float","KY","=","KX","+","IV","/","10.0",";","float","KZ","=", "IV",";","if","(","KX","!=","0.0",")","KZ","/=","KX",";","KU","*=","1.0","+","0.5","*","sin","(","KV",")",";","float","K_","=","length","(","KU",")","*","KW","*","sin","(","2.0","*","3.14","*","KV","*","KY","+","KZ",")",";","vec4","La","=","X","(","TOWARD_VECTOR",",","K_",")",";","vec4","Lb","=","ry","(","Z",")",";","Lb","=","rc","(","Lb",",","La",")",";","Z","=","bc","(","Lb",",","Z",")",";","return","Z",";","}"]}]}}]},{TYPE:"txt",TOKENS:["mat3","as","(","in","vec3","lL",",","in","vec3","aq",",", "in","mat3","N",",","in","mat3","Z",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_SPHERICAL","BILLBOARD",{TYPE:"logic_negative_expr",PLACES:1},"BILLBOARD_ALIGN","BILLBOARD_ALIGN_VIEW",{TYPE:"equal_expr",PLACES:2},{TYPE:"logical_and_expr",PLACES:2},{TYPE:"logical_or_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","l_","=","bn","(","aq",",","N",")",";"]}]}},{TYPE:"elif",EXPRESSION:["BILLBOARD_RANDOM"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["float","IV","=", "fract","(","(","aq",".","x","*","1.43","-","aq",".","z","*","0.123","+","aq",".","y","*","6.1",")",")",";","float","Lc","=","2.0","*","M_PI","*","IV",";","vec4","Ld","=","ry","(","N",")",";","float","Le","=","asin","(","2.0","*","(","Ld",".","x","*","Ld",".","y","-","Ld",".","z","*","Ld",".","w",")",")",";","float","hy","=","Le","-","Lc",";","if","(","hy","<","0.0",")","hy","=","2.0","*","M_PI","+","hy",";","float","Lf","=","Lc",";","if","(","hy","<=","MAX_BILLBOARD_ANGLE",")","Lf","+=","hy",";", "else","if","(","hy","<=","M_PI","-","MAX_BILLBOARD_ANGLE",")","Lf","+=","MAX_BILLBOARD_ANGLE","*","(","2.0","*","hy","-","M_PI",")","/","(","2.0","*","MAX_BILLBOARD_ANGLE","-","M_PI",")",";","else","if","(","hy","<=","M_PI","+","MAX_BILLBOARD_ANGLE",")","Lf","+=","hy","-","M_PI",";","else","if","(","hy","<=","2.0","*","M_PI","-","MAX_BILLBOARD_ANGLE",")","Lf","+=","MAX_BILLBOARD_ANGLE","*","(","2.0","*","hy","-","M_PI",")","/","(","2.0","*","MAX_BILLBOARD_ANGLE","-","M_PI",")","+","M_PI",";","else", "Lf","+=","hy","-","2.0","*","M_PI",";","vec4","Lg","=","X","(","UP_VECTOR",",","Lf",")",";","mat3","l_","=","aY","(",")",";","l_","=","aZ","(","aq",",","l_",")",";","l_","=","bc","(","Lg",",","l_",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["mat3","l_","=","KT","(","lL",",","aq",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BILLBOARD_PRES_GLOB_ORIENTATION","STATIC_BATCH",{TYPE:"logic_negative_expr",PLACES:1},{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp", PARTS:[{TYPE:"txt",TOKENS:["Z","=","aZ","(","vec3","(","0.0",")",",","Z",")",";","l_","=","bd","(","l_",",","Z",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Lh","=","rA","(","l_",")",";","vec3","Li","=","rA","(","Z",")",";","l_","=","a_","(","Lh","*","Li",",","l_",")",";"]}]}}]},{TYPE:"txt",TOKENS:["return","l_",";","}","au","av","(","in","vec3","fr",",","in","vec3","Lj",",","in","vec3","Lk",",","in","vec3","Ll",",","in","vec3","Lm",",","in","vec3","Ln",",","in", "mat3","Z",")","{","fr","=","ap","(","Z",",","fr",")",";","Lj","=","ap","(","Z",",","Lj",")",";","Lk","=","_","(","Z",",","Lk",")",";","Ll","=","_","(","Z",",","Ll",")",";","Lm","=","_","(","Z",",","Lm",")",";","Ln","=","bI","(","Z",",","Ln",")",";","return","ma","(","au","(","fr",",","Lj",",","Lk",",","Ll",",","Lm",",","Ln",",","vec3","(","0.0",")",")",")",";","}"]}]}}]}]},exports["include/wind_bending.glslv"]={TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"ifndef",NAME:"WIND_BENDING_GLSLV",GROUP:{TYPE:"grp", PARTS:[{TYPE:"define",NAME:"WIND_BENDING_GLSLV",TOKENS:[""]},{TYPE:"var",NAME:"WIND_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"MAIN_BEND_COL",TOKENS:["0"]},{TYPE:"var",NAME:"DETAIL_BEND",TOKENS:["0"]},{TYPE:"var",NAME:"BEND_CENTER_ONLY",TOKENS:["0"]},{TYPE:"var",NAME:"REFLECTION_PASS",TOKENS:["REFL_PASS_NONE"]},{TYPE:"var",NAME:"BILLBOARD",TOKENS:["0"]},{TYPE:"include",FILE:"std.glsl"},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["WIND_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["void","LA","(", "inout","vec3","bt",",","in","vec3","Lo",",","in","float","Lp",",","in","float","Lq",",","in","float","fy",",","in","vec3","KU",",","in","float","Lr",",","in","mat4","b_",")","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2},"BILLBOARD",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Ls","=","(","b_","*","vec4","(","bt",",","1.0",")",")",".","xyz",";","vec3","Lt","=","(","b_","*","vec4","(","Lo", ",","1.0",")",")",".","xyz",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Ls","=","bt",";","vec3","Lt","=","Lo",";"]}]}}]},{TYPE:"txt",TOKENS:["float","dD","=","length","(","Lt",")",";","float","Lu","=","Lq","*","(","1.0","+","0.1","*","fract","(","dD",")",")",";","float","Lv","=","Lp","*","Lr","*","(","1.0","+","sin","(","2.0","*","3.14","*","fy","*","Lu","+","dD",")",")",";","float","Lw","=","(","Ls",".","z","-","Lt",".","z",")","*","abs","(","Lv",")",";","Lw","+=", "1.0",";","Lw","*=","Lw",";","Lw","=","Lw","*","Lw","-","Lw",";","vec3","Lx","=","Ls",";","Lx",".","xy","+=","KU",".","xy","*","Lw","*","sign","(","Lv",")",";","vec3","Ly","=","Lx","-","Lt",";","if","(","all","(","equal","(","Ly",",","vec3","(","0.0",")",")",")",")","bt","=","Lo",";","else","{"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2},"BILLBOARD",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["Ly", "=","(","b_","*","vec4","(","Ly",",","0.0",")",")",".","xyz",";"]}]}}]},{TYPE:"txt",TOKENS:["float","Lz","=","length","(","Ls","-","Lt",")",";","bt","=","Lo","+","normalize","(","Ly",")","*","Lz",";","}","}"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DETAIL_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec4","LB","(","vec4","x",")","{","return","x","*","x","*","(","3.0","-","2.0","*","x",")",";","}","vec4","LC","(","vec4","x",")","{","return","abs","(","fract","(","x","+","0.5",")","*", "2.0","-","1.0",")",";","}","vec4","LD","(","vec4","x",")","{","return","LB","(","LC","(","x",")",")",";","}","void","LP","(","inout","vec3","bt",",","in","float","fy",",","in","vec3","U",",","in","vec3","KU",",","in","vec3","Lo",",","in","float","LE",",","in","float","LF",",","in","float","LG",",","in","vec3","LH",",","in","mat4","b_",")","{","float","LI",";","float","LJ",";","float","LK",";","vec2","LL",";","vec4","LM",";","vec2","LN",";","vec3","LO",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS", "REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2},"BILLBOARD",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Ls","=","(","b_","*","vec4","(","bt",",","1.0",")",")",".","xyz",";","vec3","Lt","=","(","b_","*","vec4","(","Lo",",","1.0",")",")",".","xyz",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","Ls","=","bt",";","vec3","Lt","=","Lo",";"]}]}}]},{TYPE:"txt",TOKENS:["LI","=","dot","(","Lt",",","vec3","(","1.0",")",")",";","LJ","=","LI", "+","LH",".","g",";","LK","=","dot","(","Ls",",","vec3","(","LH",".","g",")",")",";","LL","=","(","fy","+","vec2","(","LK",",","LJ",")",")",";","LM","=","(","(","fract","(","(","LL",".","xxyy","*","vec4","(","1.975",",","0.793",",","0.375",",","0.193",")",")",")","*","2.0",")","-","1.0",")","*","length","(","KU",")","*","LE",";","LM","=","LD","(","LM",")",";","LN","=","LM",".","xz","+","LM",".","yw",";","LN",".","y","=","0.5","-","LN",".","y",";","LO","=","LN",".","xxy","*","LH",".","rrb","*","vec3", "(","LF","*","U",".","x",",","LF","*","U",".","y",",","LG",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2},"BILLBOARD",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["LO","=","(","b_","*","vec4","(","LO",",","0.0",")",")",".","xyz",";"]}]}}]},{TYPE:"txt",TOKENS:["bt","+=","LO",";","}"]}]}}]},{TYPE:"txt",TOKENS:["void","ax","(","inout","vec3","O",",","inout","vec3","ao",",","in","vec3","U",",","in", "mat4","b_",")","{","vec3","LQ","=","u_wind","*","1.0","+","0.7","*","sin","(","u_time",")",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BEND_CENTER_ONLY"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","LR","=","ao",";","vec3","LS","=","a_emitter_center",";"]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["REFLECTION_PASS","REFL_PASS_PLANE",{TYPE:"equal_expr",PLACES:2},"BILLBOARD",{TYPE:"logical_and_expr",PLACES:2}],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["LS","=","(","b_","*","vec4", "(","LS",",","1.0",")",")",".","xyz",";"]}]}}]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["vec3","LR","=","O",";","vec3","LS","=","ao",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["MAIN_BEND_COL"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["DETAIL_BEND"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["LP","(","LR",",","u_time",",","U",",","LQ",",","LS",",","au_detail_bending_freq",",","au_detail_bending_amp",",","au_branch_bending_amp",",","a_bending_col_detail", ",","b_",")",";"]}]}}]},{TYPE:"txt",TOKENS:["LA","(","LR",",","LS",",","au_wind_bending_amp",",","au_wind_bending_freq",",","u_time",",","LQ",",","a_bending_col_main",",","b_",")",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["LA","(","LR",",","LS",",","au_wind_bending_amp",",","au_wind_bending_freq",",","u_time",",","LQ",",","1.0",",","b_",")",";"]}]}}]},{TYPE:"cond",PARTS:[{TYPE:"if",EXPRESSION:["BEND_CENTER_ONLY"],GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","+=","LR", "-","ao",";","ao","=","LR",";"]}]}},{TYPE:"else",GROUP:{TYPE:"grp",PARTS:[{TYPE:"txt",TOKENS:["O","=","LR",";","ao","=","LS",";"]}]}}]},{TYPE:"txt",TOKENS:["}"]}]}}]}]}}]}]}}},function(module,__webpack_exports__,__webpack_require__){Object.defineProperty(__webpack_exports__,"__esModule",{value:true});__webpack_require__.d(__webpack_exports__,"parser",function(){return parser});var gpp_parser;gpp_parser=function(){function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype= parent.prototype;child.prototype=new ctor}function peg$SyntaxError(message,expected,found,offset,line,column){this.message=message;this.expected=expected;this.found=found;this.offset=offset;this.line=line;this.column=column;this.name="SyntaxError"}peg$subclass(peg$SyntaxError,Error);function peg$parse(input){var options=arguments.length>1?arguments[1]:{},parser=this,peg$FAILED={},peg$startRuleFunctions={start:peg$parsestart},peg$startRuleFunction=peg$parsestart,peg$c0=function(group){return group}, peg$c1=function(parts){return{TYPE:"grp",PARTS:parts!==null?parts:[]}},peg$c2=function(head,tail){var result=[head];for(var i=0;i=":var op={TYPE:"ge_expr",PLACES:2};result.push.apply(result,tail[i][3]);result.push(op);break;case "<":var op={TYPE:"l_expr",PLACES:2};result.push.apply(result,tail[i][3]);result.push(op);break;case ">":var op={TYPE:"g_expr",PLACES:2};result.push.apply(result, tail[i][3]);result.push(op);break}return result},peg$c113=function(head,tail){var result=head;for(var i=0;i>":var op={TYPE:"right_shift_expr",PLACES:2};result.push.apply(result,tail[i][3]);result.push(op);break}return result},peg$c114=function(head,tail){var result=head;for(var i=0;i>",peg$c160={type:"literal",value:">>",description:'">>"'},peg$c161="<=",peg$c162={type:"literal",value:"<=",description:'"<="'},peg$c163=">=",peg$c164={type:"literal",value:">=", description:'">="'},peg$c165="<",peg$c166={type:"literal",value:"<",description:'"<"'},peg$c167=">",peg$c168={type:"literal",value:">",description:'">"'},peg$c169="==",peg$c170={type:"literal",value:"==",description:'"=="'},peg$c171="!=",peg$c172={type:"literal",value:"!=",description:'"!="'},peg$c173="&",peg$c174={type:"literal",value:"&",description:'"&"'},peg$c175=function(){return"&"},peg$c176="^",peg$c177={type:"literal",value:"^",description:'"^"'},peg$c178=function(){return"^"},peg$c179="|", peg$c180={type:"literal",value:"|",description:'"|"'},peg$c181=function(){return"|"},peg$c182="&&",peg$c183={type:"literal",value:"&&",description:'"&&"'},peg$c184=function(){return"&&"},peg$c185="||",peg$c186={type:"literal",value:"||",description:'"||"'},peg$c187=function(){return"||"},peg$c188='"',peg$c189={type:"literal",value:'"',description:'"\\""'},peg$c190=function(chars){var line="";for(var i=0;i>=",peg$c287={type:"literal",value:">>=",description:'">>="'},peg$c288="{",peg$c289={type:"literal",value:"{", description:'"{"'},peg$c290="}",peg$c291={type:"literal",value:"}",description:'"}"'},peg$c292="[",peg$c293={type:"literal",value:"[",description:'"["'},peg$c294="]",peg$c295={type:"literal",value:"]",description:'"]"'},peg$c296=";",peg$c297={type:"literal",value:";",description:'";"'},peg$c298=function(head,tail){var result=[head];for(var i=0;ipos){peg$cachedPos=0;peg$cachedPosDetails={line:1,column:1,seenCR:false}}advance(peg$cachedPosDetails, peg$cachedPos,pos);peg$cachedPos=pos}return peg$cachedPosDetails}function peg$fail(expected){if(peg$currPospeg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected)}function peg$buildException(message,expected,pos){function cleanupExpected(expected){var i=1;expected.sort(function(a,b){if(a.descriptionb.description)return 1;else return 0});while(i1?expectedDescs.slice(0,-1).join(", ")+" or "+expectedDescs[expected.length-1]:expectedDescs[0];foundDesc=found?'"'+stringEscape(found)+'"':"end of input";return"Expected "+expectedDesc+" but "+foundDesc+" found."}var posDetails=peg$computePosDetails(pos), found=pospeg$currPos){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0)peg$fail(peg$c318)}return s0}function peg$parseEOF(){var s0,s1;s0=peg$currPos;peg$silentFails++;if(input.length>peg$currPos){s1=input.charAt(peg$currPos);peg$currPos++}else{s1= peg$FAILED;if(peg$silentFails===0)peg$fail(peg$c318)}peg$silentFails--;if(s1===peg$FAILED)s0=void 0;else{peg$currPos=s0;s0=peg$FAILED}return s0}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length)return peg$result;else{if(peg$result!==peg$FAILED&&peg$currPos>>32-s,b)}function ff(a,b,c,d,x,s,t){return cmn(b&c|~b&d,a,b,x,s,t)}function gg(a,b,c,d,x,s,t){return cmn(b& d|c&~d,a,b,x,s,t)}function hh(a,b,c,d,x,s,t){return cmn(b^c^d,a,b,x,s,t)}function ii(a,b,c,d,x,s,t){return cmn(c^(b|~d),a,b,x,s,t)}function md51(s){var n=s.length,state=[1732584193,-271733879,-1732584194,271733878],i;for(i=64;i<=s.length;i+=64)md5cycle(state,md5blk(s.substring(i-64,i)));s=s.substring(i-64);var tail=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(i=0;i>2]|=s.charCodeAt(i)<<(i%4<<3);tail[i>>2]|=128<<(i%4<<3);if(i>55){md5cycle(state,tail);for(i=0;i<16;i++)tail[i]=0}tail[14]= n*8;md5cycle(state,tail);return state}function md5blk(s){var md5blks=[],i;for(i=0;i<64;i+=4)md5blks[i>>2]=s.charCodeAt(i)+(s.charCodeAt(i+1)<<8)+(s.charCodeAt(i+2)<<16)+(s.charCodeAt(i+3)<<24);return md5blks}var hex_chr="0123456789abcdef".split("");function rhex(n){var s="",j=0;for(;j<4;j++)s+=hex_chr[n>>j*8+4&15]+hex_chr[n>>j*8&15];return s}function hex(x){for(var i=0;i0)world["fog_settings"]["depth"]=1/world["b4w_fog_density"]}if(!("render_sky"in world["b4w_sky_settings"])){report("world",world,"render_sky");world["b4w_sky_settings"]["render_sky"]=false}var texture_slots=world["texture_slots"];for(var j=0;j>|$)/i)[0];m_print.warn('Property "'+String(param_name)+'" is '+param_data.report_type+' for "'+param_data.type+'". To fix this, reexport '+bpy_data["b4w_filepath_blend"])}};function check_strip_props(animation_data){var nla_tracks=animation_data["nla_tracks"];if(nla_tracks)for(var j=0;j>"+type;if(!(param_id in _params_reported))_params_reported[param_id]={storage:[],report_type:"undefined",type:type};_params_reported[param_id].storage.push(bpy_datablock["name"])}function report_missing_datablock(type,file_path_blend){if(!REPORT_COMPATIBILITY_ISSUES){_unreported_compat_issues= true;return}m_print.warn("WARNING "+"Datablock "+type+' is missing, reexport "'+file_path_blend+'" scene')}function report_deprecated(type,bpy_datablock,deprecated_param){if(!REPORT_COMPATIBILITY_ISSUES){_unreported_compat_issues=true;return}var param_id=deprecated_param+">>"+type;if(!(param_id in _params_reported))_params_reported[param_id]={storage:[],report_type:"deprecated",type:type};_params_reported[param_id].storage.push(bpy_datablock["name"])}function report_modifier(type,bpy_obj,file_path_blend){if(!REPORT_COMPATIBILITY_ISSUES){_unreported_compat_issues= true;return}m_print.error("WARNING "+"Incomplete modifier "+String(type)+" for "+'"'+bpy_obj["name"]+'"'+', reexport "'+file_path_blend+'" scene')}function report_raw(msg){if(!REPORT_COMPATIBILITY_ISSUES){_unreported_compat_issues=true;return}m_print.warn(msg)}function check_uniform_scale(bpy_obj){var scale=bpy_obj["scale"];var eps=.005;if(scale[0]==0&&scale[1]==0&&scale[2]==0)return true;var delta1=Math.abs((scale[0]-scale[1])/scale[0]);var delta2=Math.abs((scale[1]-scale[2])/scale[1]);return delta1< eps&&delta2 slen){point[0]=tangent_b[0];point[1]=tangent_b[1];point[2]=tangent_b[2];__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["scale"](point,loc_spline_len-slen,point);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["add"](trans,point,trans)}__WEBPACK_IMPORTED_MODULE_5__libs_gl_matrix_mat4_js__["fromRotationTranslation"](quat,trans,matrix);if(spline.is_3d){var tilt=point[3];__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_quat_js__["setAxisAngle"](tangent_a,tilt,qtilt);__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["transformQuat"](loc, qtilt,loc)}loc[deform_index]=0;__WEBPACK_IMPORTED_MODULE_10__libs_gl_matrix_vec3_js__["transformMat4"](loc,matrix,loc);position[3*j]=loc[0];position[3*j+1]=loc[1];position[3*j+2]=loc[2];var cur_tbn=__WEBPACK_IMPORTED_MODULE_8__tbn_js__["e"](tbn,j,_tbn_tmp);__WEBPACK_IMPORTED_MODULE_8__tbn_js__["j"](cur_tbn,quat,cur_tbn);__WEBPACK_IMPORTED_MODULE_8__tbn_js__["n"](tbn,cur_tbn,j)}}}function deform_axis_index(deform_axis){switch(deform_axis){case "POS_X":case "NEG_X":return 0;case "POS_Y":case "NEG_Y":return 1; case "POS_Z":case "NEG_Z":return 2;default:m_assert.panic("Wrong deform axis value "+deform_axis)}}function mesh_copy(mesh,new_name){if(!new_name)new_name=mesh["name"]+"_COPY";var materials=mesh["materials"];var submeshes=mesh["submeshes"];mesh["materials"]=null;mesh["submeshes"]=null;var mesh_new=__WEBPACK_IMPORTED_MODULE_9__util_js__["O"](mesh);mesh["materials"]=materials;mesh["submeshes"]=submeshes;mesh_new["name"]=new_name;mesh_new["materials"]=mesh["materials"].slice(0);mesh_new["submeshes"]= [];for(var i=0;i1){var part_len0=prop0.length/part_count;var part_len1=prop1.length/part_count;var joined_prop=new Float32Array(prop0.length+prop1.length);var offset=0;for(var j=0;j1)for(var k=1;k=0){if("variable1"in snode)snode["variables"]["id0"]=[false,snode["variable1"]];if("variable2"in snode)snode["variables"]["id1"]=[false,snode["variable2"]];if("variabled"in snode)snode["variables"]["vd"]=[false,snode["variabled"]]}for(var l in snode["links"])if(!l.startsWith("id"))delete snode["links"][l];var cu_names=snode["common_usage_names"];var var_names=snode["variables"]; switch(snode["type"]){case "SELECT":for(var k=0;k1)props_array.push([prop,props_dict[prop]]);props_array.sort(function(a,b){var a_len=__WEBPACK_IMPORTED_MODULE_5__util_js__["_8"](a[1]);var b_len=__WEBPACK_IMPORTED_MODULE_5__util_js__["_8"](b[1]);if(b_len!=a_len)return b_len-a_len;return a1) | Property name");for(var i=0;irot_offset&&delts[0]>rot_offset)cur_rotate_ratio=m_util.sign(cur_rotate_ratio)*auto_rotate_ratio;else if(delts[1]=Math.abs(angle_phi)){_is_camera_stop_rotating=false;m_time.clear_animation(cur_animator_phi);fin_cb();return}m_cam.rotate_camera(cam_obj,delta_phi-e,0);delta_phi=e});var delta_theta=0;var cur_animator_theta=m_time.animate(0,angle_theta, time,function(e){if(_is_camera_stop_rotating||Math.abs(e)>=Math.abs(angle_theta)){_is_camera_stop_rotating=false;m_time.clear_animation(cur_animator_theta);fin_cb();return}m_cam.rotate_camera(cam_obj,0,delta_theta-e);delta_theta=e})};exports.stop_cam_moving=function(){_is_camera_stop_moving=true};exports.stop_cam_rotating=function(){_is_camera_stop_rotating=true};exports.is_moving=function(){return _is_camera_moving};exports.is_rotating=function(){return _is_camera_rotating}}var camera_anim_factory= Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("camera_anim",Camera_anim);__webpack_exports__["a"]=camera_anim_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__extern_camera_js__=__webpack_require__(33);var __WEBPACK_IMPORTED_MODULE_2__extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_3__extern_physics_js__=__webpack_require__(54);var __WEBPACK_IMPORTED_MODULE_4__extern_scenes_js__= __webpack_require__(30);var __WEBPACK_IMPORTED_MODULE_5__extern_util_js__=__webpack_require__(26);var __WEBPACK_IMPORTED_MODULE_6__extern_main_js__=__webpack_require__(61);var __WEBPACK_IMPORTED_MODULE_7__extern_container_js__=__webpack_require__(40);var __WEBPACK_IMPORTED_MODULE_8__extern_input_js__=__webpack_require__(49);var __WEBPACK_IMPORTED_MODULE_9__extern_screen_js__=__webpack_require__(50);var __WEBPACK_IMPORTED_MODULE_10__extern_transform_js__=__webpack_require__(41);var __WEBPACK_IMPORTED_MODULE_11__extern_constraints_js__= __webpack_require__(67);var __WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_13__hmd_js__=__webpack_require__(81);var __WEBPACK_IMPORTED_MODULE_14__intern_print_js__=__webpack_require__(1);function FPS(ns,exports){var m_cam=Object(__WEBPACK_IMPORTED_MODULE_1__extern_camera_js__["a"])(ns);var m_ctl=Object(__WEBPACK_IMPORTED_MODULE_2__extern_controls_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_3__extern_physics_js__["a"])(ns); var m_scs=Object(__WEBPACK_IMPORTED_MODULE_4__extern_scenes_js__["a"])(ns);var m_util=Object(__WEBPACK_IMPORTED_MODULE_5__extern_util_js__["a"])(ns);var m_main=Object(__WEBPACK_IMPORTED_MODULE_6__extern_main_js__["a"])(ns);var m_cont=Object(__WEBPACK_IMPORTED_MODULE_7__extern_container_js__["a"])(ns);var m_input=Object(__WEBPACK_IMPORTED_MODULE_8__extern_input_js__["a"])(ns);var m_screen=Object(__WEBPACK_IMPORTED_MODULE_9__extern_screen_js__["a"])(ns);var m_trans=Object(__WEBPACK_IMPORTED_MODULE_10__extern_transform_js__["a"])(ns); var m_const=Object(__WEBPACK_IMPORTED_MODULE_11__extern_constraints_js__["a"])(ns);var m_hmd=Object(__WEBPACK_IMPORTED_MODULE_13__hmd_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_14__intern_print_js__["a"])(ns);var AT_PRESSED=1;var AT_RELEASED=2;var AT_CONTINUOUS=3;var CS_STAY=0;var CS_WALK=1;var CS_RUN=2;var CS_FLY=3;var CS_CLIMB=4;var MOBILE_FORWARD_BTN_ID="B4W_DEFAULT_BTN_1";var MOBILE_BACKWARD_BTN_ID="B4W_DEFAULT_BTN_2";var FORWARD_SVG="url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyBpZD0ic3ZnMzQwMCIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTQuMTExbW0iIHdpZHRoPSIxNC4xMTFtbSIgdmVyc2lvbj0iMS4xIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHZpZXdCb3g9IjAgMCA0OS45OTk5OTggNDkuOTk5OTk5Ij4gPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTM0MDUiPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIi8+PGRjOnRpdGxlLz48L2NjOldvcms+PC9yZGY6UkRGPiA8L21ldGFkYXRhPiA8ZyBpZD0ibGF5ZXIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0xMDAyLjQpIj48cmVjdCBpZD0icmVjdDI0MTI2IiBvcGFjaXR5PSIwLjU0MyIgZmlsbC1vcGFjaXR5PSIuODM2MTEiIGhlaWdodD0iNTAiIHdpZHRoPSI1MCIgeT0iMTAwMi40IiB4PSIwIiBmaWxsPSIjZmZmIi8+PHBhdGggaWQ9InBhdGgyNDEyOCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0ibTM5LjE0MiAxMDMzLjUtMTQuMTQyLTE0LjE0Mi0xNC4xNDIgMTQuMTQyIiBzdHJva2U9IiM2ZTZlNmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIi8+IDwvZz48L3N2Zz4=);"; var DRAG_TOUCH_DELTA_MULT=4;var DRAG_MOUSE_DELTA_MULT=2;var CAM_SMOOTH_CHARACTER_COEFF=.2;var AXIS_THRESHOLD=.05;var ROT_STEP=2.5;var MIN_VERT_ANG=(-Math.PI+.1)/2;var MAX_VERT_ANG=(Math.PI-.1)/2;var MULT_SCALE=2E5;var GMPD_BTNS_OFFSET=300;var GMPD_AXIS_OFFSET=326;var _move_delta=new Float32Array(2);var _smooth_factor=1;var _fps_camera_mult=4E-4;var _manifold_counter=0;var _character_sm=null;var _plock_sensor=null;var _plock_cb={enable_cb:null,disable_cb:null};var _rotation_cb=function(){};var _curr_gamepad_id= 0;var _state_counter=4;var _is_freezed=false;var _vec2_tmp=new Float32Array(2);var _vec3_tmp=new Float32Array(3);var _vec3_tmp2=new Float32Array(3);function default_rotation_cb(character,rot_x,rot_y){var camera=m_scs.get_active_camera();m_cam.rotate_camera(camera,rot_x,rot_y);var angles=m_cam.get_camera_angles_char(camera,_vec2_tmp);m_phy.set_character_rotation_h(character,angles[0]);m_phy.set_character_vert_move_dir_angle(character,angles[1])}function smooth_cb(obj,id,pulse,rot_callback){if(Math.abs(_move_delta[0])> .01||Math.abs(_move_delta[1])>.01){var elapsed=m_ctl.get_sensor_value(obj,id,0);var rot_x=m_util.smooth(_move_delta[0],0,elapsed,smooth_coeff());var rot_y=m_util.smooth(_move_delta[1],0,elapsed,smooth_coeff());_move_delta[0]-=rot_x;_move_delta[1]-=rot_y;rot_callback(obj,-rot_x*_fps_camera_mult,-rot_y*_fps_camera_mult)}}function set_smooth_factor(value){_smooth_factor=value}function smooth_coeff(){return CAM_SMOOTH_CHARACTER_COEFF*_smooth_factor}function create_mobile_controls(character,parent_elem){var forward_btn= document.createElement("div");forward_btn.style.cssText="position: absolute;"+"left: 10px;"+"bottom: 70px;"+"width: 53px;"+"height: 53px;"+"background-image: "+FORWARD_SVG;forward_btn.setAttribute("id",MOBILE_FORWARD_BTN_ID);var backwards_btn=document.createElement("div");backwards_btn.style.cssText="position: absolute;"+"left: 10px;"+"bottom: 10px;"+"width: 53px;"+"height: 53px;"+"background-image: "+FORWARD_SVG+"transform: rotate(180deg);"+"transform-origin: center;";backwards_btn.setAttribute("id", MOBILE_BACKWARD_BTN_ID);parent_elem.appendChild(forward_btn);parent_elem.appendChild(backwards_btn)}function check_pointerlock(elem){var request_plock=elem.requestPointerLock||elem.webkitRequestPointerLock||elem.mozRequestPointerLock;return typeof request_plock==="function"}function rotate_cam_by_axis(obj,camobj,id,elapsed){var h_axis=m_ctl.get_sensor_value(obj,id,1);var v_axis=m_ctl.get_sensor_value(obj,id,2);var rot_step_value=elapsed*ROT_STEP;var vert_axis_val=Math.abs(v_axis)0){var payload=m_ctl.get_sensor_payload(obj,id,0);_rotation_cb(obj,-payload.coords[0]*_fps_camera_mult,-payload.coords[1]* _fps_camera_mult)}};m_ctl.create_sensor_manifold(character,"FPS_PLOCK",m_ctl.CT_CONTINUOUS,[plock_mouse_sen,plock_sen],fps_plock_logic_func,fps_plock_sensors_cb);var fps_act_logic_func=function(s){return s[0]};var fps_act_sensor_cb=function(obj,id,pulse){if(pulse>0){if(_plock_cb.enable_cb)_plock_cb.enable_cb(elem)}else if(_plock_cb.disable_cb)_plock_cb.disable_cb(elem)};m_ctl.create_sensor_manifold(null,"FPS_ACTIVATE_PLOCK",m_ctl.CT_TRIGGER,[plock_sen],fps_act_logic_func,fps_act_sensor_cb)}else{if(m_main.detect_mobile()){var move_sen= m_ctl.create_touch_move_sensor("XY",elem);var click_sen=m_ctl.create_touch_click_sensor(elem);var drag_mult=DRAG_TOUCH_DELTA_MULT}else{var move_sen=m_ctl.create_mouse_move_sensor("XY",elem);var click_sen=m_ctl.create_mouse_click_sensor(elem);var drag_mult=DRAG_MOUSE_DELTA_MULT;var camera=m_scs.get_active_camera();var cam_rot_sensor_cb=function(obj,id,pulse){if(pulse>0){var elapsed=m_ctl.get_sensor_value(obj,id,0);rotate_cam_by_axis(obj,camera,id,elapsed)}};var logic_func=function(s){return Math.abs(s[1])> AXIS_THRESHOLD||Math.abs(s[2])>AXIS_THRESHOLD};var e_s=m_ctl.create_elapsed_sensor();var h_axis=m_ctl.create_gamepad_axis_sensor(m_input.GMPD_AXIS_2);var v_axis=m_ctl.create_gamepad_axis_sensor(m_input.GMPD_AXIS_3);m_ctl.create_sensor_manifold(character,"FPS_CAM_ROT",m_ctl.CT_CONTINUOUS,[e_s,h_axis,v_axis],logic_func,cam_rot_sensor_cb)}var move_x=0;var move_y=0;var press_logic_func=function(s){return s[0]};var press_sensor_cb=function(obj,id,pulse){if(pulse==1){var payload=m_ctl.get_sensor_payload(obj, id,0);var coords=payload.coords;move_x=coords[0];move_y=coords[1]}};m_ctl.create_sensor_manifold(null,"FPS_DRAG_PRESS",m_ctl.CT_SHOT,[click_sen],press_logic_func,press_sensor_cb);var move_logic_func=function(s){return s[0]&&s[1]};var move_sensor_cb=function(obj,id,pulse){if(pulse==1){var payload=m_ctl.get_sensor_payload(obj,id,0);var coords=payload.coords;_move_delta[0]+=(coords[0]-move_x)*drag_mult;_move_delta[1]+=(coords[1]-move_y)*drag_mult;move_x=coords[0];move_y=coords[1]}};m_ctl.create_sensor_manifold(null, "FPS_DRAG_MOVE",m_ctl.CT_CONTINUOUS,[move_sen,click_sen],move_logic_func,move_sensor_cb);var elapsed=m_ctl.create_elapsed_sensor();m_ctl.create_sensor_manifold(character,"FPS_SMOOTH_DRAG",m_ctl.CT_CONTINUOUS,[elapsed],null,smooth_cb,_rotation_cb)}}function set_characters_camera(character,lock_camera){var cam_obj=m_scs.get_active_camera();if(lock_camera){var cam_trans=m_trans.get_translation(cam_obj,_vec3_tmp);var char_trans=m_trans.get_translation(character,_vec3_tmp2);__WEBPACK_IMPORTED_MODULE_12__libs_gl_matrix_vec3_js__["subtract"](cam_trans, char_trans,cam_trans);m_const.append_stiff_trans(cam_obj,character,cam_trans)}var angles=m_cam.get_camera_angles_char(cam_obj,_vec2_tmp);m_phy.set_character_rotation_h(character,angles[0]);m_phy.set_character_vert_move_dir_angle(character,angles[1])}var _enable_vr_cb=null;var _disable_vr_cb=null;exports.append_switch_vr_cbs=function(enable_cb,disable_cb){_enable_vr_cb=enable_cb;_disable_vr_cb=_disable_vr_cb};function register_hmd(elem,character){m_input.add_click_listener(elem,function(){m_screen.request_fullscreen_hmd(elem, function(){disable_rotation(elem,character);m_hmd.enable_hmd(m_hmd.HMD_ALL_AXES_MOUSE_NONE);create_character_vr_rotate_sensor(character);if(_enable_vr_cb)_enable_vr_cb()},function(){remove_character_vr_rotate_sensor(character);m_hmd.disable_hmd();enable_rotation(elem,character);if(_disable_vr_cb)_disable_vr_cb()})})}function create_character_vr_rotate_sensor(character){var e_s=m_ctl.create_elapsed_sensor();var camobj=m_scs.get_active_camera();var sensor_cb=function(obj,id,pulse){var hor_angle=m_cam.get_camera_angles_char(camobj, _vec2_tmp)[0];m_phy.set_character_rotation_h(obj,hor_angle)};m_ctl.create_sensor_manifold(character,"FPS_CHARECTER_VR_ROT",m_ctl.CT_CONTINUOUS,[e_s],null,sensor_cb)}function remove_character_vr_rotate_sensor(character){m_ctl.remove_sensor_manifold(character,"FPS_CHARECTER_VR_ROT")}function check_vr_support(){var support=m_hmd.check_browser_support()&&!m_main.detect_mobile();var device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);if(device)support=support&&m_input.get_value_param(device, m_input.HMD_WEBVR_TYPE)&m_input.HMD_WEBVR1;return support}function enable_camera_rotation(elem,character){if(check_vr_support())register_hmd(elem,character);enable_rotation(elem,character)}function enable_movements(elem,character,motion_cb,settings){if(m_main.detect_mobile()){var parent_elem=elem.parentElement?elem.parentElement:elem;create_mobile_controls(character,parent_elem)}var sm=init_character_states(character);var move_state={left:0,right:0,forw:0,back:0};var movestyle=-1;var move_dir_cd= settings.move_dir_cd;var check_character_look=function(){if(_is_freezed){move_state.left=0;move_state.right=0;move_state.forw=0;move_state.back=0;return false}return true};var set_char_state=function(for_back,right_left){var curr_state=get_state_machine_state(sm).id;if(!for_back&&!right_left&&curr_state!=CS_CLIMB)state_machine_switch_state(sm,CS_STAY);else if(curr_state==CS_STAY)if(movestyle>0)state_machine_switch_state(sm,CS_RUN);else state_machine_switch_state(sm,CS_WALK)};var move_forward_cb=function(value){if(!check_character_look())return; var for_back_pr=move_state.forw+move_state.back;move_state.forw=value;var for_back=move_state.forw+move_state.back;var right_left=move_state.left+move_state.right;m_phy.set_character_move_dir(character,for_back,right_left);if(motion_cb)motion_cb(for_back,right_left);set_char_state(for_back,right_left);if(move_dir_cd&&for_back_pr!=for_back)move_dir_cd(for_back,right_left,0)};var move_backward_cb=function(value){if(!check_character_look())return;value=value>0?1:value;value=value<0?-1:value;var for_back_pr= move_state.forw+move_state.back;move_state.back=-value;var for_back=move_state.forw+move_state.back;var right_left=move_state.left+move_state.right;m_phy.set_character_move_dir(character,for_back,right_left);if(motion_cb)motion_cb(for_back,right_left);set_char_state(for_back,right_left);if(move_dir_cd&&for_back_pr!=for_back)move_dir_cd(for_back,right_left,0)};var move_right_cb=function(value){if(!check_character_look())return;var curr_state=get_state_machine_state(sm).id;if(curr_state==CS_CLIMB)value= 0;value=value>0?1:value;value=value<0?-1:value;var right_left_pr=move_state.left+move_state.right;move_state.right=-value;var for_back=move_state.forw+move_state.back;var right_left=move_state.left+move_state.right;m_phy.set_character_move_dir(character,for_back,right_left);if(motion_cb)motion_cb(for_back,right_left);set_char_state(for_back,right_left);if(move_dir_cd&&right_left_pr!=right_left)move_dir_cd(for_back,right_left,0)};var move_left_cb=function(value){if(!check_character_look())return;var curr_state= get_state_machine_state(sm).id;if(curr_state==CS_CLIMB)value=0;var right_left_pr=move_state.left+move_state.right;move_state.left=value;var for_back=move_state.forw+move_state.back;var right_left=move_state.left+move_state.right;m_phy.set_character_move_dir(character,for_back,right_left);if(motion_cb)motion_cb(for_back,right_left);set_char_state(for_back,right_left);if(move_dir_cd&&right_left_pr!=right_left)move_dir_cd(for_back,right_left,0)};var jump_cb=function(value){if(!check_character_look())return; if(value>0){m_phy.character_jump(character);if(move_dir_cd)move_dir_cd(move_state.forw+move_state.back,move_state.left+move_state.right,1)}};var change_movestyle=function(value){movestyle=value;if(Math.abs(move_state.forw+move_state.back)+Math.abs(move_state.left+move_state.right)){if(value>0)state_machine_switch_state(sm,CS_RUN);else state_machine_switch_state(sm,CS_WALK);if(move_dir_cd)move_dir_cd(move_state.forw+move_state.back,move_state.left+move_state.right,0)}else state_machine_switch_state(sm, CS_STAY)};var change_flystyle=function(value){if(value>0){var state=get_state_machine_state(_character_sm).id;if(state==CS_WALK||state==CS_STAY)state_machine_switch_state(sm,CS_FLY);else state_machine_switch_state(sm,CS_WALK)}};var forward_sens_arr=settings.forward_sens_arr;var backward_sens_arr=settings.backward_sens_arr;var right_sens_arr=settings.right_sens_arr;var left_sens_arr=settings.left_sens_arr;var jump_sens_arr=settings.jump_sens_arr;var run_sens_arr=settings.run_sens_arr;var fly_sens_arr= settings.fly_sens_arr;bind_action(AT_PRESSED,forward_sens_arr,move_forward_cb);bind_action(AT_PRESSED,backward_sens_arr,move_backward_cb);bind_action(AT_PRESSED,right_sens_arr,move_right_cb);bind_action(AT_PRESSED,left_sens_arr,move_left_cb);bind_action(AT_PRESSED,jump_sens_arr,jump_cb);bind_action(AT_CONTINUOUS,[m_input.GMPD_AXIS_0],move_right_cb);bind_action(AT_CONTINUOUS,[m_input.GMPD_AXIS_1],move_backward_cb);bind_action(AT_PRESSED,run_sens_arr,change_movestyle);bind_action(AT_PRESSED,fly_sens_arr, change_flystyle)}function get_state_machine(){if(!_character_sm)_character_sm={nodes:[],current_node:null,lock:false,last_state:null};return _character_sm}function state_machine_add_state(state_machine,id,allowed_ids,call_switch,call_before_switch,call_after_switch){state_machine.nodes.push({id:id,allowed_ids:allowed_ids,call_switch:call_switch,call_before_switch:call_before_switch,call_after_switch:call_after_switch})}function check_state_machine_validation(state_machine){var names=[];for(var i= 0;i=0)return false;else names.push(id)}for(var i=0;i=0){var before=true;if(cur_state.call_before_switch)before=cur_state.call_before_switch(old_state_id,new_state_id);if(before){set_state_machine_start_node(state_machine,new_state_id);if(cur_state.call_switch)cur_state.call_switch(old_state_id, new_state_id);if(cur_state.call_after_switch)cur_state.call_after_switch(old_state_id,new_state_id);return true}}return false}function init_character_states(character){var sm=get_state_machine();var change_state_cb=function(old_state_id,new_state_id){switch(new_state_id){case CS_STAY:case CS_WALK:m_phy.set_character_move_type(character,m_phy.CM_WALK);break;case CS_RUN:m_phy.set_character_move_type(character,m_phy.CM_RUN);break;case CS_FLY:m_phy.set_character_move_type(character,m_phy.CM_FLY);break; case CS_CLIMB:m_phy.set_character_move_type(character,m_phy.CM_CLIMB);break}};state_machine_add_state(sm,CS_STAY,[CS_WALK,CS_FLY,CS_RUN,CS_CLIMB],change_state_cb,null,null);state_machine_add_state(sm,CS_WALK,[CS_RUN,CS_FLY,CS_CLIMB,CS_STAY],change_state_cb,null,null);state_machine_add_state(sm,CS_RUN,[CS_WALK,CS_FLY,CS_CLIMB,CS_STAY],change_state_cb,null,null);state_machine_add_state(sm,CS_FLY,[CS_WALK],change_state_cb,null,null);state_machine_add_state(sm,CS_CLIMB,[CS_WALK,CS_RUN,CS_STAY],change_state_cb, null,null);check_state_machine_validation(sm);set_state_machine_start_node(sm,CS_STAY);return _character_sm}function remove_devices_controls(){for(var i=0;i<_manifold_counter;i++)m_ctl.remove_sensor_manifold(null,"FPS_USER_CONTROL_ACTION_"+i.toString())}function remove_plock_controls(character,elem){if(check_pointerlock(elem)&&!m_main.detect_mobile()){if(_plock_cb.disable_cb)_plock_cb.disable_cb(elem);m_ctl.remove_sensor_manifold(character,"FPS_PLOCK");m_ctl.remove_sensor_manifold(null,"FPS_ACTIVATE_PLOCK")}} function remove_drag_controls(character,elem){if(!check_pointerlock(elem)||m_main.detect_mobile()){m_ctl.remove_sensor_manifold(character,"FPS_CAM_ROT");m_ctl.remove_sensor_manifold(character,"FPS_DRAG_PRESS");m_ctl.remove_sensor_manifold(character,"FPS_DRAG_MOVE");m_ctl.remove_sensor_manifold(character,"FPS_SMOOTH_DRAG")}}function remove_hmd_controls(character){if(check_vr_support())m_ctl.remove_sensor_manifold(character,"FPS_CHARECTER_VR_ROT")}function remove_mobile_controls(character,elem){if(m_main.detect_mobile()){var forward_btn= document.getElementById(MOBILE_FORWARD_BTN_ID);var backward_btn=document.getElementById(MOBILE_BACKWARD_BTN_ID);if(forward_btn)elem.removeChild(forward_btn);if(backward_btn)elem.removeChild(backward_btn)}}function set_curr_gamepad_id(new_id){_curr_gamepad_id=new_id}exports.CS_STAY=CS_STAY;exports.CS_WALK=CS_WALK;exports.CS_RUN=CS_RUN;exports.CS_FLY=CS_FLY;exports.CS_CLIMB=CS_CLIMB;exports.AT_PRESSED=AT_PRESSED;exports.AT_RELEASED=AT_RELEASED;exports.AT_CONTINUOUS=AT_CONTINUOUS;exports.bind_action= bind_action;function bind_action(action_type,action_controls,action_cb){if(!action_controls.length)return;var sensors=[];for(var j=0;j0)action_cb(1);else action_cb(0)};break;case AT_RELEASED:type=m_ctl.CT_TRIGGER;logic_func=function(s){for(var i=0;iAXIS_THRESHOLD)return true;return false};manifold_cb=function(obj, id,pulse,sens_num){if(pulse>0)for(var i=0;iAXIS_THRESHOLD){action_cb(value);return}}else action_cb(0)};break}var action_id="FPS_USER_CONTROL_ACTION_"+_manifold_counter.toString();var sensors_number=sensors.length;m_ctl.create_sensor_manifold(null,action_id,type,sensors,logic_func,manifold_cb,sensors_number);_manifold_counter++}exports.enable_fps_controls=function(options){options=options||{lock_camera:true};var character= options.character||m_scs.get_first_character();if(!character)return;var elem=options.element||m_cont.get_canvas();var motion_cb=options.motion_cb||null;set_curr_gamepad_id(options.gamepad_id||0);var forward_sens_arr=options.forward_sens||[m_ctl.KEY_W,m_input.GMPD_BUTTON_12];var backward_sens_arr=options.backward_sens||[m_ctl.KEY_S,m_input.GMPD_BUTTON_13];var right_sens_arr=options.right_sens||[m_ctl.KEY_D,m_input.GMPD_BUTTON_15];var left_sens_arr=options.left_sens||[m_ctl.KEY_A,m_input.GMPD_BUTTON_14]; var jump_sens_arr=options.jump_sens||[m_ctl.KEY_SPACE,m_input.GMPD_BUTTON_1];var run_sens_arr=options.run_sens||[m_ctl.KEY_SHIFT,m_input.GMPD_BUTTON_7];var fly_sens_arr=options.fly_sens||[];if(m_main.detect_mobile()){forward_sens_arr.push(MOBILE_FORWARD_BTN_ID);backward_sens_arr.push(MOBILE_BACKWARD_BTN_ID)}var move_dir_cd=options.move_dir_cd||null;var configs={forward_sens_arr:forward_sens_arr,backward_sens_arr:backward_sens_arr,right_sens_arr:right_sens_arr,left_sens_arr:left_sens_arr,jump_sens_arr:jump_sens_arr, run_sens_arr:run_sens_arr,fly_sens_arr:fly_sens_arr,move_dir_cd:move_dir_cd};_rotation_cb=options.rotation_cb||default_rotation_cb;var lock_camera=typeof options.lock_camera!="undefined"?options.lock_camera:true;set_characters_camera(character,lock_camera);enable_camera_rotation(elem,character);enable_movements(elem,character,motion_cb,configs)};exports.disable_fps_controls=function(character,elem){character=character||m_scs.get_first_character();elem=elem||m_cont.get_container();if(!character)return; remove_devices_controls();remove_plock_controls(character,elem);remove_drag_controls(character,elem);remove_hmd_controls(character);remove_mobile_controls(character,elem)};exports.set_state_change_cb=function(state_id,callback){var sm=_character_sm;set_state_machine_node_after_cb(sm,state_id,callback)};exports.set_cam_smooth_factor=function(value){m_ctl.set_plock_smooth_factor(value);set_smooth_factor(value)};exports.get_cam_smooth_factor=function(){return _smooth_factor};exports.set_cam_sensitivity= set_cam_sensitivity;function set_cam_sensitivity(value){_fps_camera_mult=value/MULT_SCALE}exports.get_cam_sensitivity=get_cam_sensitivity;function get_cam_sensitivity(){return _fps_camera_mult*MULT_SCALE}exports.set_plock_enable_cb=function(callback){_plock_cb.enable_cb=callback};exports.set_plock_disable_cb=function(callback){_plock_cb.disable_cb=callback};exports.get_character_state=function(){return get_state_machine_state(_character_sm).id};exports.add_new_state=function(){return _state_counter++}; exports.add_state=function(new_state,enabled_transitions,change_state_cb){var sm=get_state_machine();state_machine_add_state(sm,new_state,enabled_transitions,change_state_cb,null,null);if(!check_state_machine_validation(sm))m_print.error("Incorrect state machine.")};exports.switch_state=function(state){var sm=get_state_machine();state_machine_switch_state(sm,state)};exports.lock_character=function(){var sm=get_state_machine();sm.lock=true};exports.unlock_character=function(){var sm=get_state_machine(); sm.lock=false};exports.is_character_locked=function(){var sm=get_state_machine();return sm.lock};exports.set_rotation_cb=function(rotation_cb){if(!rotation_cb)_rotation_cb=default_rotation_cb;else _rotation_cb=rotation_cb};exports.freeze_movements=function(){_is_freezed=true};exports.unfreeze_movements=function(){_is_freezed=false}}var fps_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("fps",FPS);__webpack_exports__["a"]=fps_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__= __webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__extern_container_js__=__webpack_require__(40);var __WEBPACK_IMPORTED_MODULE_2__extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_3__extern_input_js__=__webpack_require__(49);var __WEBPACK_IMPORTED_MODULE_4__storage_js__=__webpack_require__(69);function GP_config(ns,exports){var m_cont=Object(__WEBPACK_IMPORTED_MODULE_1__extern_container_js__["a"])(ns);var m_ctrl=Object(__WEBPACK_IMPORTED_MODULE_2__extern_controls_js__["a"])(ns); var m_input=Object(__WEBPACK_IMPORTED_MODULE_3__extern_input_js__["a"])(ns);var m_storage=Object(__WEBPACK_IMPORTED_MODULE_4__storage_js__["a"])(ns);var SVG_BASE64="url('data:image/svg+xml;base64,";var BLUE_COLOR="#5276cf";var BLUE_COLOR_REGEXP=new RegExp(BLUE_COLOR,"g");var RED_COLOR="#ff0000";var GREEN_COLOR="#00ff00";var GREY_COLOR="#e6e6e6";var SELECT_BTN_CAPTION="Click on the buttons & arrows to setup your controller";var PRESS_BTN_CAPTION="Now press the button on the device";var MOVE_AXIS_CAPTION= "Now move the axis on the device";var MAIN_DEVICE_CAPTION="Select a device";var AXIS_STEP=20;var GMPD_DFLT_STNGS={};GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_12]=m_input.GMPD_BUTTON_12;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_13]=m_input.GMPD_BUTTON_13;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_15]=m_input.GMPD_BUTTON_15;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_14]=m_input.GMPD_BUTTON_14;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_3]=m_input.GMPD_BUTTON_3;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_0]=m_input.GMPD_BUTTON_0;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_1]= m_input.GMPD_BUTTON_1;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_2]=m_input.GMPD_BUTTON_2;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_5]=m_input.GMPD_BUTTON_5;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_7]=m_input.GMPD_BUTTON_7;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_4]=m_input.GMPD_BUTTON_4;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_6]=m_input.GMPD_BUTTON_6;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_8]=m_input.GMPD_BUTTON_8;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_9]=m_input.GMPD_BUTTON_9;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_10]=m_input.GMPD_BUTTON_10; GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_11]=m_input.GMPD_BUTTON_11;GMPD_DFLT_STNGS[m_input.GMPD_BUTTON_16]=m_input.GMPD_BUTTON_16;var VIEWER_MODE=0;var BTN_EDIT_MODE=1;var AXIS_EDIT_MODE=2;var gamepad_svg=' image/svg+xml '; var dpad_svg='image/svg+xml'; var dpad_up_svg='image/svg+xml'; var dpad_right_svg='image/svg+xml'; var dpad_down_svg='image/svg+xml'; var dpad_left_svg='image/svg+xml'; var face_btn_svg='image/svg+xml'; var analog_btn_svg='image/svg+xml'; var start_btn_svg='image/svg+xml'; var trigger_btn_svg='image/svg+xml'; var bumper_left_svg='image/svg+xml'; var bumper_right_svg='image/svg+xml'; var main_svg='image/svg+xml'; var axis_setting_svg='image/svg+xml'; var wheel_svg='image/svg+xml'; var wheel_btn='image/svg+xml'; var wheel_right_svg='image/svg+xml'; var wheel_left_svg='image/svg+xml'; var pedal_svg='image/svg+xml'; var wheel_settings_svg='image/svg+xml'; var gearbox_hor_svg='image/svg+xml'; var gearbox_vert_svg='image/svg+xml'; var _svg=[];var _selected_gamepad_num=-1;var _selected_btn=null;var _mode=VIEWER_MODE;var _main_element=null;var _device_elem=null;var _gamepad_elem=null;var _type_wheel_elem=null;var _type_pad_elem=null;var _device_id_label=null;var _tmp_gamepads=[];var _elems=[];var _axis_elems=[];var _axis_settings_elems=[];var _is_pad_mode=true;var _axes_prev_val={};_axes_prev_val[m_input.GMPD_AXIS_0]=-2;_axes_prev_val[m_input.GMPD_AXIS_1]=-2;_axes_prev_val[m_input.GMPD_AXIS_2]=-2;_axes_prev_val[m_input.GMPD_AXIS_3]= -2;_axes_prev_val[m_input.GMPD_AXIS_4]=-2;_axes_prev_val[m_input.GMPD_AXIS_5]=-2;_axes_prev_val[m_input.GMPD_AXIS_6]=-2;_axes_prev_val[m_input.GMPD_AXIS_7]=-2;_axes_prev_val[m_input.GMPD_AXIS_8]=-2;_axes_prev_val[m_input.GMPD_AXIS_9]=-2;_axes_prev_val[m_input.GMPD_AXIS_10]=-2;_axes_prev_val[m_input.GMPD_AXIS_11]=-2;exports.show=function(){var main_div=document.createElement("div");_main_element=main_div;main_div.style.cssText="position: absolute;"+"width: 720px;"+"height: 750px;"+"top: 50%;"+"left: 50%;"+ "-moz-transform: translateY(-50%) translateX(-50%);"+"-ms-transform: translateY(-50%) translateX(-50%);"+"-webkit-transform: translateY(-50%) translateX(-50%);"+"transform: translateY(-50%) translateX(-50%);"+"background-color: black;"+"border: 4px solid white;"+"border-radius: 35px;"+"box-shadow: 0px 0px 20px 0px rgba(50, 50, 50, 1);";m_cont.insert_to_container(main_div,"LAST");create_pad_interface(main_div);var gamepad_data_cnt=document.createElement("div");gamepad_data_cnt.style.cssText="position: absolute;"+ "width: 637px;"+"top: 0px;"+"font-family: sans-serif;"+"text-align: center;"+"margin-top: 40px;"+"-moz-transform: translateX(-50%);"+"-ms-transform: translateX(-50%);"+"-webkit-transform: translateX(-50%);"+"transform: translateX(-50%);"+"left: 50%;";var main_label=document.createElement("div");main_label.innerHTML=MAIN_DEVICE_CAPTION;main_label.style.cssText="color: #fff;"+"display: inline-block;";gamepad_data_cnt.appendChild(main_label);for(var j=0;j<4;j++){var sensors=create_sensors(j);var logic_func= function(){return true};var sensor_cb=function(obj,id,pulse){if(id!=_selected_gamepad_num)return;for(var i=0;i<_elems.length;i++){var elem=_elems[i];set_btn_state(elem,m_ctrl.get_sensor_value(obj,id,i),i)}};m_ctrl.create_sensor_manifold(null,j,m_ctrl.CT_CONTINUOUS,sensors,logic_func,sensor_cb)}var gamepads=get_gamepads();if(gamepads.length>0)_selected_gamepad_num=0;var gamepads_data=[];var gamepads_data_container=document.createElement("div");gamepads_data_container.style.cssText="margin-top: 20px;"; for(var i=0;i<4;i++){var gamepad_data_elem=create_device_icon_elem(i);if(i==_selected_gamepad_num){gamepad_data_elem.style.backgroundColor="green";_gamepad_elem=gamepad_data_elem}set_gmpd_config(i);gamepads_data_container.appendChild(gamepad_data_elem);gamepad_data_elem.setAttribute("data-device_type","PAD");gamepads_data.push(gamepad_data_elem);var click_cb=function(e){var gamepads=get_gamepads();var elem=e.target;for(var j=0;j_axis_settings_elems.length*2)return;var x=m_ctrl.get_sensor_value(obj,id,num);var y=m_ctrl.get_sensor_value(obj,id,num+1);if(_axes_prev_val[num]>-2){var delta_x=x-_axes_prev_val[num];var delta_y=y-_axes_prev_val[num+1];var elem=_axis_settings_elems[Math.floor(num/2)];var svg_id=elem.getAttribute("data-svgid");if(_mode==VIEWER_MODE)if(delta_x||delta_y)elem.style.backgroundImage=SVG_BASE64+btoa(_svg[svg_id].replace(GREY_COLOR,GREEN_COLOR))+"')";else elem.style.backgroundImage=SVG_BASE64+ btoa(_svg[svg_id])+"')";else if(_mode==AXIS_EDIT_MODE){var moved_axis=m_input.get_moved_gmpd_axis(_selected_gamepad_num);if(moved_axis>=0){if(moved_axis%2!=0)moved_axis--;_mode=VIEWER_MODE;elem.style.backgroundImage=SVG_BASE64+btoa(_svg[svg_id])+"')";var sel_axis=parseFloat(_selected_btn.getAttribute("data-key"));m_input.set_gamepad_key(_selected_gamepad_num,sel_axis,moved_axis);m_input.set_gamepad_key(_selected_gamepad_num,sel_axis+1,moved_axis+1);_selected_btn=null;document.getElementById("action_label").textContent= SELECT_BTN_CAPTION}}}_axes_prev_val[num]=x;_axes_prev_val[num+1]=y}function change_single_axis_setting_color(obj,id,num){if(num>=_axis_settings_elems.length)return;var val=m_ctrl.get_sensor_value(obj,id,num);if(_axes_prev_val[num]>-2){var delta_val=val-_axes_prev_val[num];var elem=_axis_settings_elems[num];var svg_id=elem.getAttribute("data-svgid");if(_mode==VIEWER_MODE)if(delta_val)elem.style.backgroundImage=SVG_BASE64+btoa(_svg[svg_id].replace(GREY_COLOR,GREEN_COLOR))+"')";else elem.style.backgroundImage= SVG_BASE64+btoa(_svg[svg_id])+"')";else if(_mode==AXIS_EDIT_MODE){var moved_axis=m_input.get_moved_gmpd_axis(_selected_gamepad_num);if(moved_axis>=0){_mode=VIEWER_MODE;elem.style.backgroundImage=SVG_BASE64+btoa(_svg[svg_id])+"')";var sel_axis=parseFloat(_selected_btn.getAttribute("data-key"));m_input.set_gamepad_key(_selected_gamepad_num,sel_axis,moved_axis);_selected_btn=null;document.getElementById("action_label").textContent=SELECT_BTN_CAPTION}}}_axes_prev_val[num]=val}function set_btn_state(elem, pressed,num){if(_mode==VIEWER_MODE){if(pressed&&elem.getAttribute("data-colorstate")=="B"){var svg=_svg[num];elem.style.backgroundImage=SVG_BASE64+btoa(svg.replace(BLUE_COLOR_REGEXP,GREEN_COLOR))+"')";elem.setAttribute("data-colorstate","G")}if(!pressed&&elem.getAttribute("data-colorstate")!="B"){var svg=_svg[num];elem.style.backgroundImage=SVG_BASE64+btoa(svg)+"')";elem.setAttribute("data-colorstate","B")}}else{var pressed_btn_key=m_input.get_pressed_gmpd_btn(_selected_gamepad_num);if(pressed_btn_key>= 0&&_selected_btn&&_mode==BTN_EDIT_MODE){var red_btn_val=_selected_btn.getAttribute("data-key");m_input.set_gamepad_key(_selected_gamepad_num,red_btn_val,pressed_btn_key);save_config_to_local_mem(red_btn_val,pressed_btn_key);_selected_btn=null;document.getElementById("action_label").textContent=SELECT_BTN_CAPTION;_mode=VIEWER_MODE}}}exports.hide=function(){_mode=VIEWER_MODE;_selected_gamepad_num=-1;_gamepad_elem=null;_selected_btn=null;_type_wheel_elem=null;_type_pad_elem=null;_axis_elems.length=0; _elems.length=0;_axis_settings_elems.length=0;var main_container=m_cont.get_container();main_container.removeChild(_main_element);_main_element=null;m_ctrl.remove_sensor_manifold(null,"UPDATE_GAMEPAD_DATA");for(var i=0;i<4;i++){m_ctrl.remove_sensor_manifold(null,i);m_ctrl.remove_sensor_manifold(null,"AXES"+i)}window.removeEventListener("resize",zoom_main_div)};function get_gamepads(){_tmp_gamepads.length=0;var gamepads=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads: [];for(var i=0;i400||width<=750&&width>400)_main_element.style.zoom="0.5";else if(width<=400||height<=400)_main_element.style.zoom="0.3";else _main_element.style.zoom="1"}}var gp_config_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("gp_conf", GP_config);__webpack_exports__["a"]=gp_config_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__extern_camera_js__=__webpack_require__(33);var __WEBPACK_IMPORTED_MODULE_2__extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_3__extern_scenes_js__=__webpack_require__(30);var __WEBPACK_IMPORTED_MODULE_4__extern_transform_js__=__webpack_require__(41);var __WEBPACK_IMPORTED_MODULE_5__extern_util_js__= __webpack_require__(26);var __WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec3_js__=__webpack_require__(3);function Gyroscope(ns,exports){var m_cam=Object(__WEBPACK_IMPORTED_MODULE_1__extern_camera_js__["a"])(ns);var m_ctl=Object(__WEBPACK_IMPORTED_MODULE_2__extern_controls_js__["a"])(ns);var m_scenes=Object(__WEBPACK_IMPORTED_MODULE_3__extern_scenes_js__["a"])(ns);var m_trans=Object(__WEBPACK_IMPORTED_MODULE_4__extern_transform_js__["a"])(ns);var m_util=Object(__WEBPACK_IMPORTED_MODULE_5__extern_util_js__["a"])(ns); var _begin_angles=new Float32Array(3);var _curr_angles=new Float32Array(3);var _vec3_tmp=__WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec3_js__["create"]();var VERTICAL_BETA_ANGLE_THRESHOLD_UP=m_util.deg_to_rad(110);var VERTICAL_BETA_ANGLE_THRESHOLD_DOWN=m_util.deg_to_rad(70);var VERTICAL_GAMMA_ANGLE_THRESHOLD_UP=m_util.deg_to_rad(70);var VERTICAL_GAMMA_ANGLE_THRESHOLD_DOWN=-m_util.deg_to_rad(70);exports.enable_camera_rotation=function(){var cam_obj=m_scenes.get_active_camera();create_camera_rotation_sensors(cam_obj)}; function create_camera_rotation_sensors(obj){var g_a_sensor=m_ctl.create_gyro_angles_sensor();var g_q_sensor=m_ctl.create_gyro_quat_sensor();var save_angles=true;var cam_rotate_cb=function(obj,id,pulse){if(pulse>0)if(m_cam.is_eye_camera(obj)){var hmd_quat=m_ctl.get_sensor_payload(obj,id,1);var up_axis=__WEBPACK_IMPORTED_MODULE_6__libs_gl_matrix_vec3_js__["transformQuat"](m_util.AXIS_MY,hmd_quat,_vec3_tmp);m_cam.set_vertical_axis(obj,up_axis);m_trans.set_rotation_v(obj,hmd_quat)}else{_curr_angles= m_ctl.get_sensor_payload(obj,id,0);if(save_angles){_begin_angles[0]=_curr_angles[0];_begin_angles[1]=_curr_angles[1];_begin_angles[2]=_curr_angles[2];save_angles=false}var delta_beta=0;var delta_gamma=0;if(window.orientation==0){delta_beta=_curr_angles[1]-_begin_angles[1];delta_gamma=_curr_angles[0]-_begin_angles[0];if(_curr_angles[1]>VERTICAL_BETA_ANGLE_THRESHOLD_DOWN&&_curr_angles[1]Math.PI/2||delta_beta<-Math.PI/2)delta_beta=0;if(_curr_angles[1]>-VERTICAL_BETA_ANGLE_THRESHOLD_UP&&_curr_angles[1]<-VERTICAL_BETA_ANGLE_THRESHOLD_DOWN)delta_gamma=0}if(window.orientation==-90){delta_beta=_curr_angles[0]-_begin_angles[0];if(delta_beta>Math.PI/2||delta_beta<-Math.PI/2)delta_beta=0;delta_gamma=_begin_angles[1]-_curr_angles[1];if(_curr_angles[0]>VERTICAL_GAMMA_ANGLE_THRESHOLD_UP||_curr_angles[0]< VERTICAL_GAMMA_ANGLE_THRESHOLD_DOWN)delta_gamma=0}if(window.orientation==90){delta_beta=_begin_angles[0]-_curr_angles[0];if(delta_beta>Math.PI/2||delta_beta<-Math.PI/2)delta_beta=0;delta_gamma=_curr_angles[1]-_begin_angles[1];if(_curr_angles[0]>VERTICAL_GAMMA_ANGLE_THRESHOLD_UP||_curr_angles[0]UPDATE_DELAY){last_update_time=time;update_params()}}m_ctl.create_sensor_manifold(null,"UPDATE_HMD_RENDERING",m_ctl.CT_CONTINUOUS,[time],null,update_params)};function create_profiles_select(){var hmd_conf_str= m_storage.get("hmd_conf","b4w");var hmd_conf_data=JSON.parse(hmd_conf_str?hmd_conf_str:"{}");var cur_profile=hmd_conf_data["profile"]||"custom";var select_cont=document.createElement("div");var label=document.createElement("label");label.innerHTML="Profile: ";label.className="text_label";label.style.cssText="background-color: #323232;"+"border: 2px solid rgba(98, 98, 98, .2);"+"border-radius: 2px;"+"width: 120px;"+"height: 30px;"+"display: block;"+"float: left;"+"font-size: 16px;"+"font-weight: normal;"+ "color: #fff;"+"cursor: pointer;"+"text-decoration: none;"+"text-align: left;"+"padding-left: 8px;"+"line-height: 28px;"+"margin-bottom: 4px;"+"box-shadow: 0px 0px 4px 0px rgba(98, 98, 98, .8);";select_cont.appendChild(label);var select=document.createElement("select");select_cont.appendChild(select);select.style.cssText="background-color: #323232;"+"border: 2px solid rgba(98, 98, 98, .2);"+"border-radius: 2px;"+"height: 30px;"+"display: block;"+"font-size: 16px;"+"font-weight: normal;"+"color: #fff;"+ "cursor: pointer;"+"text-decoration: none;"+"text-align: left;"+"padding-left: 8px;"+"line-height: 28px;"+"margin-bottom: 4px;"+"box-shadow: 0px 0px 4px 0px rgba(98, 98, 98, .8);";var device=m_input.get_device_by_type_element(m_input.DEVICE_HMD);if(device)for(var i in _viewer_profiles)if(_viewer_profiles[i].type==P_COMMON||m_input.get_value_param(device,m_input.HMD_WEBVR_TYPE)&(m_input.HMD_NON_WEBVR|m_input.HMD_WEBVR_MOBILE)&&_viewer_profiles[i].type==P_MOBILE){var option=document.createElement("option"); option.value=i;option.text=_viewer_profiles[i].name;select.appendChild(option)}select.value=cur_profile;if(m_util.is_ie11())select.onchange=change_select_cb;else select.oninput=change_select_cb;return select_cont}function change_select_cb(e){var profile=e.target.value;var profile_data=_viewer_profiles[profile];for(var name in _param_values)if(name in profile_data){var slider=document.getElementById(name+"_slider");if(slider){slider.disabled=profile!=="custom";slider.value=profile_data[name]}var number= document.getElementById(name+"_number");if(number){number.disabled=profile!=="custom";number.value=profile_data[name]}_param_values[name]=profile_data[name]}}exports.hide=hide;function hide(){m_ctl.remove_sensor_manifold(null,"UPDATE_HMD_RENDERING");restore_params();update_params();if(!_is_shown)return;_is_shown=false;remove_dom_tree()}exports.reset=reset;function reset(){restore_params(true);update_params();update_dom_tree()}exports.update=function(){restore_params();update_params()};function update_dom_tree(){for(var i in _param_values){var slider= document.getElementById(i+"_slider");if(slider)slider.value=_param_values[i];var number=document.getElementById(i+"_number");if(number)number.value=_param_values[i]}}function remove_dom_tree(){var container=m_cont.get_container();container.removeChild(_hmd_dialog);document.head.removeChild(_style);_hmd_dialog=null;_hmd_list=null;_style=null}function get_screen_width(){return Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio}function get_screen_height(){return Math.min(window.screen.width, window.screen.height)*window.devicePixelRatio}function check_rule(rule,ua,screenWidth,screenHeight){return rule["ua"]&&ua.indexOf(rule["ua"])>=0||!rule["ua"]&&rule["res"]&&rule["res"][0]&&rule["res"][1]&&Math.min(screenWidth,screenHeight)==Math.min(rule["res"][0],rule["res"][1])&&Math.max(screenWidth,screenHeight)==Math.max(rule["res"][0],rule["res"][1])}function find_device_index(dpdb,user_agent,width,height){if(dpdb["format"]!=1||!dpdb["devices"]||!dpdb["devices"].length){m_print.error("DPDB isn't correct."); return-1}for(var i=0;ib.id.toUpperCase())return 1;else return 0})}function gen_freq_arr(steps){var FMIN=20;var FMAX=2E4;var freq_arr=new Float32Array(steps);var freq_base=FMAX/FMIN;var freq_pow=0;for(var i=0;i0)_active_strip--;var strip_range=active_strip_range();for(var i=strip_range[0];i<=strip_range[1];i++)update_strip_params(_mixer_strips[i])} function update_strip_params(strip){if(!strip.speaker)return;strip.params.length=0;var pparams=m_sfx.get_positional_params(strip.speaker);if(pparams){strip.params.push(["DIST_REF",pparams["dist_ref"],0,1E3,1E4,false]);strip.params.push(["ATTENUATION",pparams["attenuation"],0,50,1E3,false]);strip.params.push(["DIST_MAX",pparams["dist_max"],0,1E4,1E4,false])}var fparams=m_sfx.get_filter_params(strip.speaker);if(fparams){strip.params.push(["EQ_FREQ",fparams["freq"],20,2E4,100,true]);strip.params.push(["EQ_Q", fparams["Q"],0,10,100,false]);strip.params.push(["EQ_GAIN",fparams["gain"],-70,30,100,false])}strip.params.push(["VOLUME",m_sfx.get_volume(strip.speaker),0,1,50,false]);m_util.clamp(strip.active_param,0,strip.params.length-1)}function switch_param(dir){var strip=_mixer_strips[_active_strip];if(!strip)return;if(dir==1&&strip.active_param0)strip.active_param--}function param_inc_dec(dir){var strip=_mixer_strips[_active_strip]; if(!strip)return;var param=strip.params[strip.active_param];if(param[5])param[1]*=Math.pow(param[3]/param[2],dir/param[4]);else param[1]+=dir*((param[3]-param[2])/param[4]);param[1]=m_util.clamp(param[1],param[2],param[3]);switch(param[0]){case "VOLUME":if(strip.id!="MASTER")m_sfx.set_volume(strip.speaker,param[1]);else m_sfx.set_volume(null,param[1]);break;case "DIST_REF":var pparams=m_sfx.get_positional_params(strip.speaker);pparams["dist_ref"]=param[1];m_sfx.set_positional_params(strip.speaker, pparams);break;case "ATTENUATION":var pparams=m_sfx.get_positional_params(strip.speaker);pparams["attenuation"]=param[1];m_sfx.set_positional_params(strip.speaker,pparams);break;case "DIST_MAX":var pparams=m_sfx.get_positional_params(strip.speaker);pparams["dist_max"]=param[1];m_sfx.set_positional_params(strip.speaker,pparams);break;case "EQ_FREQ":var fparams=m_sfx.get_filter_params(strip.speaker);fparams["freq"]=param[1];m_sfx.set_filter_params(strip.speaker,fparams);break;case "EQ_Q":var fparams= m_sfx.get_filter_params(strip.speaker);fparams["Q"]=param[1];m_sfx.set_filter_params(strip.speaker,fparams);break;case "EQ_GAIN":var fparams=m_sfx.get_filter_params(strip.speaker);fparams["gain"]=param[1];m_sfx.set_filter_params(strip.speaker,fparams);break;case "THRESHOLD":var cparams=m_sfx.get_compressor_params();cparams["threshold"]=param[1];m_sfx.set_compressor_params(cparams);break;case "KNEE":var cparams=m_sfx.get_compressor_params();cparams["knee"]=param[1];m_sfx.set_compressor_params(cparams); break;case "RATIO":var cparams=m_sfx.get_compressor_params();cparams["ratio"]=param[1];m_sfx.set_compressor_params(cparams);break;case "ATTACK":var cparams=m_sfx.get_compressor_params();cparams["attack"]=param[1];m_sfx.set_compressor_params(cparams);break;case "RELEASE":var cparams=m_sfx.get_compressor_params();cparams["release"]=param[1];m_sfx.set_compressor_params(cparams);break;default:m_print.error("Unknown strip param");break}}function switch_mute(){var strip=_mixer_strips[_active_strip];if(!strip)return; if(strip.mute>=0)flip_strip_mute(strip)}function flip_strip_mute(strip){var id=strip.id;if(id!="MASTER")if(strip.mute==0){strip.mute=1;m_sfx.mute(strip.speaker,true);if(strip.solo==1){strip.solo=0;if(!is_other_solo(strip))unmute_other(strip)}}else{strip.mute=0;if(!is_other_solo(strip))m_sfx.mute(strip.speaker,false)}else if(strip.mute==0){strip.mute=1;m_sfx.mute(null,true)}else{strip.mute=0;m_sfx.mute(null,false)}}function is_other_solo(strip){for(var i=0;i<_mixer_strips.length;i++){var strip_i=_mixer_strips[i]; if(strip_i!=strip&&strip_i.solo==1)return true}return false}function mute_other(strip){for(var i=0;i<_mixer_strips.length;i++){var strip_i=_mixer_strips[i];if(strip_i!=strip&&strip_i.mute==0&&strip_i.solo==0)m_sfx.mute(strip_i.speaker,true)}}function unmute_other(strip){for(var i=0;i<_mixer_strips.length;i++){var strip_i=_mixer_strips[i];if(strip_i!=strip&&strip_i.mute==0&&strip_i.solo==0)m_sfx.mute(strip_i.speaker,false)}}function switch_solo(){var strip=_mixer_strips[_active_strip];if(!strip)return; if(strip.solo>=0)flip_strip_solo(strip)}function flip_strip_solo(strip){if(strip.solo==0){strip.solo=1;m_sfx.mute(strip.speaker,false);if(strip.mute==1)strip.mute=0;mute_other(strip)}else{strip.solo=0;if(is_other_solo(strip))m_sfx.mute(strip.speaker,true);else unmute_other(strip)}}function draw(){if(!_mixer_strips[_active_strip])return;var strip_range=active_strip_range();for(var i=strip_range[0];i<=strip_range[1];i++){var strip=_mixer_strips[i];m_screen.draw_mixer_strip(strip.id,i==_active_strip, i%8,strip.params,strip.active_param,strip.mute,strip.solo);if(strip.speaker&&m_sfx.get_filter_params(strip.speaker)){m_sfx.get_filter_freq_response(strip.speaker,_filter_freq_arr,_filter_mag_arr,_filter_phase_arr);for(var j=0;j<_filter_mag_arr.length;j++){var mag=_filter_mag_arr[j];_filter_mag_arr[j]=20*Math.log(mag)/Math.LN10}m_screen.plot_array("EQ",i%8,_filter_mag_arr,20,2E4,-10,10)}}}function active_strip_range(){if(_mixer_strips.length==0)return[0,-1];var strip_low=Math.floor(_active_strip/8)* 8;var strip_high=strip_low+7;strip_low=m_util.clamp(strip_low,0,_mixer_strips.length-1);strip_high=m_util.clamp(strip_high,0,_mixer_strips.length-1);return[strip_low,strip_high]}}var mixer_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("mixer",Mixer);__webpack_exports__["a"]=mixer_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__extern_camera_js__=__webpack_require__(33); var __WEBPACK_IMPORTED_MODULE_2__extern_container_js__=__webpack_require__(40);var __WEBPACK_IMPORTED_MODULE_3__extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_4__extern_physics_js__=__webpack_require__(54);var __WEBPACK_IMPORTED_MODULE_5__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_6__extern_scenes_js__=__webpack_require__(30);var __WEBPACK_IMPORTED_MODULE_7__extern_util_js__=__webpack_require__(26);var __WEBPACK_IMPORTED_MODULE_8__extern_main_js__= __webpack_require__(61);function Mouse(ns,exports){var m_cam=Object(__WEBPACK_IMPORTED_MODULE_1__extern_camera_js__["a"])(ns);var m_cont=Object(__WEBPACK_IMPORTED_MODULE_2__extern_container_js__["a"])(ns);var m_ctl=Object(__WEBPACK_IMPORTED_MODULE_3__extern_controls_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_4__extern_physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_5__intern_print_js__["a"])(ns);var m_scs=Object(__WEBPACK_IMPORTED_MODULE_6__extern_scenes_js__["a"])(ns); var m_util=Object(__WEBPACK_IMPORTED_MODULE_7__extern_util_js__["a"])(ns);var m_main=Object(__WEBPACK_IMPORTED_MODULE_8__extern_main_js__["a"])(ns);var FPS_MOUSE_MULT=4E-4;var DRAG_MOUSE_DELTA_MULT=2;var _smooth_factor=1;var CAM_SMOOTH_CHARACTER_MOUSE=.1;var CAM_SMOOTH_CHARACTER_TOUCH=.2;var PLS_NONE=0;var PLS_POINTERLOCK=1;var PLS_DRAG=2;var _mouse_x=0;var _mouse_y=0;var _mouse_delta=new Float32Array(2);var _vec2_tmp=new Float32Array(2);var _use_mouse_control_cb=null;var _chosen_object=null;var _plock_state= PLS_NONE;var _hover_offset=false;var _drag_offset=false;exports.request_pointerlock=function(elem,enabled_cb,disabled_cb,mouse_move_cb,use_mouse_control_cb,rotation_cb){if(_plock_state==PLS_POINTERLOCK)return;_plock_state=PLS_POINTERLOCK;enabled_cb=enabled_cb||function(){};disabled_cb=disabled_cb||function(){};rotation_cb=rotation_cb||default_rotation_cb;use_mouse_control_cb=use_mouse_control_cb||function(){return true};mouse_move_cb=mouse_move_cb||function(e){if(use_mouse_control_cb()){if(typeof e.movementX== "number"){var mx=e.movementX;var my=e.movementY}else if(typeof e.webkitMovementX=="number"){var mx=e.webkitMovementX;var my=e.webkitMovementY}else if(typeof e.mozMovementX=="number"){var mx=e.mozMovementX;var my=e.mozMovementY}else{var mx=0;var my=0}_mouse_delta[0]+=mx;_mouse_delta[1]+=my}};function on_pointerlock_change(){if(document.pointerLockElement===elem||document.webkitPointerLockElement===elem||document.mozPointerLockElement===elem){exit_mouse_drag(elem);elem.addEventListener("mousemove", mouse_move_cb,false);var camera=m_scs.get_active_camera();if(!m_ctl.check_sensor_manifold(camera,"SMOOTH_PL")){var elapsed=m_ctl.create_elapsed_sensor();m_ctl.create_sensor_manifold(camera,"SMOOTH_PL",m_ctl.CT_CONTINUOUS,[elapsed],null,smooth_cb,rotation_cb)}enabled_cb()}else{elem.removeEventListener("mousemove",mouse_move_cb,false);_plock_state=PLS_NONE;document.removeEventListener("pointerlockchange",on_pointerlock_change,false);document.removeEventListener("webkitpointerlockchange",on_pointerlock_change, false);document.removeEventListener("mozpointerlockchange",on_pointerlock_change,false);disabled_cb()}}document.addEventListener("pointerlockchange",on_pointerlock_change,false);document.addEventListener("webkitpointerlockchange",on_pointerlock_change,false);document.addEventListener("mozpointerlockchange",on_pointerlock_change,false);var request_plock=elem.requestPointerLock||elem.webkitRequestPointerLock||elem.mozRequestPointerLock;if(typeof request_plock==="function")request_plock.apply(elem); else m_print.error("Pointer lock is not available")};exports.exit_pointerlock=exit_pointerlock;function exit_pointerlock(){if(_plock_state==PLS_POINTERLOCK)_plock_state=PLS_NONE;var exit_plock=document.exitPointerLock||document.webkitExitPointerLock||document.mozExitPointerLock;if(typeof exit_plock==="function")exit_plock.apply(document);m_ctl.remove_sensor_manifold(m_scs.get_active_camera(),"SMOOTH_PL")}exports.check_pointerlock=function(elem){var request_plock=elem.requestPointerLock||elem.webkitRequestPointerLock|| elem.mozRequestPointerLock;if(typeof request_plock==="function")return true;else return false};exports.request_mouse_drag=request_mouse_drag;function request_mouse_drag(elem,use_mouse_control_cb,rotation_cb,relative_canvas){if(_plock_state==PLS_DRAG)return;_plock_state=PLS_DRAG;exit_pointerlock();_use_mouse_control_cb=use_mouse_control_cb||function(){return true};rotation_cb=rotation_cb||default_rotation_cb;_drag_offset=Boolean(relative_canvas);elem.addEventListener("mousedown",drag_mouse_down_cb, false);elem.addEventListener("mouseup",drag_mouse_up_cb,false);var camera=m_scs.get_active_camera();if(!m_ctl.check_sensor_manifold(camera,"SMOOTH_DRAG")){var elapsed=m_ctl.create_elapsed_sensor();m_ctl.create_sensor_manifold(camera,"SMOOTH_DRAG",m_ctl.CT_CONTINUOUS,[elapsed],null,smooth_cb,rotation_cb)}}exports.exit_mouse_drag=exit_mouse_drag;function exit_mouse_drag(elem){if(_plock_state==PLS_DRAG)_plock_state=PLS_NONE;elem.removeEventListener("mousedown",drag_mouse_down_cb,false);elem.removeEventListener("mouseup", drag_mouse_up_cb,false);elem.removeEventListener("mousemove",drag_mouse_move_cb,false);m_ctl.remove_sensor_manifold(m_scs.get_active_camera(),"SMOOTH_DRAG")}function drag_mouse_move_cb(e){if(_use_mouse_control_cb()){if(_drag_offset)var coords=m_cont.get_coords_target_space(e,_vec2_tmp);else{var coords=_vec2_tmp;coords[0]=e.clientX;coords[1]=e.clientY}_mouse_delta[0]+=(coords[0]-_mouse_x)*DRAG_MOUSE_DELTA_MULT;_mouse_delta[1]+=(coords[1]-_mouse_y)*DRAG_MOUSE_DELTA_MULT;_mouse_x=coords[0];_mouse_y= coords[1]}e.preventDefault()}function drag_mouse_down_cb(e){if(_drag_offset)var coords=m_cont.get_coords_target_space(e,_vec2_tmp);else{var coords=_vec2_tmp;coords[0]=e.clientX;coords[1]=e.clientY}_mouse_x=coords[0];_mouse_y=coords[1];e.currentTarget.addEventListener("mousemove",drag_mouse_move_cb,false);e.preventDefault()}function drag_mouse_up_cb(e){e.currentTarget.removeEventListener("mousemove",drag_mouse_move_cb,false);e.preventDefault()}function smooth_cb(obj,id,pulse,rot_callback){if(Math.abs(_mouse_delta[0])> .01||Math.abs(_mouse_delta[1])>.01){var elapsed=m_ctl.get_sensor_value(obj,id,0);var rot_x=m_util.smooth(_mouse_delta[0],0,elapsed,smooth_coeff_mouse());var rot_y=m_util.smooth(_mouse_delta[1],0,elapsed,smooth_coeff_mouse());_mouse_delta[0]-=rot_x;_mouse_delta[1]-=rot_y;rot_callback(-rot_x*FPS_MOUSE_MULT,-rot_y*FPS_MOUSE_MULT)}}function default_rotation_cb(rot_x,rot_y){var character=m_scs.get_first_character();var camera=m_scs.get_active_camera();m_cam.rotate_camera(camera,rot_x,rot_y);if(character){var angles= m_cam.get_camera_angles_char(camera,_vec2_tmp);m_phy.set_character_rotation_h(character,angles[0]);m_phy.set_character_vert_move_dir_angle(character,angles[1])}}exports.enable_mouse_hover_outline=enable_mouse_hover_outline;function enable_mouse_hover_outline(relative_canvas){_hover_offset=Boolean(relative_canvas);if(!m_main.detect_mobile()){var main_canvas=m_cont.get_canvas();main_canvas.addEventListener("mousemove",objects_outline)}}exports.disable_mouse_hover_outline=disable_mouse_hover_outline; function disable_mouse_hover_outline(){if(!m_main.detect_mobile()){var main_canvas=m_cont.get_canvas();main_canvas.removeEventListener("mousemove",objects_outline);if(_chosen_object)m_scs.set_outline_intensity(_chosen_object,0)}}function objects_outline(e){if(_hover_offset){var c_coord=m_cont.get_coords_target_space(e,false,_vec2_tmp);var obj=m_scs.pick_object(c_coord[0],c_coord[1])}else var obj=m_scs.pick_object(e.clientX,e.clientY);if(obj){if(m_scs.outlining_is_enabled(obj))m_scs.set_outline_intensity(obj, 1);if(m_scs.outlining_is_enabled(_chosen_object)&&obj!=_chosen_object)m_scs.set_outline_intensity(_chosen_object,0)}else if(m_scs.outlining_is_enabled(_chosen_object))m_scs.set_outline_intensity(_chosen_object,0);_chosen_object=obj}exports.get_coords_x=get_coords_x;function get_coords_x(event,use_target_touches,relative_canvas){if(relative_canvas)return m_cont.get_coords_target_space(event,use_target_touches,_vec2_tmp)[0];if("clientX"in event)return event.clientX;if(event.type=="touchend")var touches= event.changedTouches;else var touches=use_target_touches?event.targetTouches:event.touches;if(touches&&touches[0]&&"clientX"in touches[0])return touches[0].clientX;return-1}exports.get_coords_y=get_coords_y;function get_coords_y(event,use_target_touches,relative_canvas){if(relative_canvas)return m_cont.get_coords_target_space(event,use_target_touches,_vec2_tmp)[1];if("clientY"in event)return event.clientY;if(event.type=="touchend")var touches=event.changedTouches;else var touches=use_target_touches? event.targetTouches:event.touches;if(touches&&touches[0]&&"clientY"in touches[0])return touches[0].clientY;return-1}function smooth_coeff_mouse(){return CAM_SMOOTH_CHARACTER_MOUSE*_smooth_factor}function smooth_coeff_touch(){return CAM_SMOOTH_CHARACTER_TOUCH*_smooth_factor}exports.set_plock_smooth_factor=function(value){_smooth_factor=value};exports.get_plock_smooth_factor=function(){return _smooth_factor}}var mouse_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("mouse",Mouse); __webpack_exports__["a"]=mouse_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__extern_animation_js__=__webpack_require__(83);var __WEBPACK_IMPORTED_MODULE_2__extern_controls_js__=__webpack_require__(24);var __WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__=__webpack_require__(8);var __WEBPACK_IMPORTED_MODULE_4__extern_scenes_js__=__webpack_require__(30);var __WEBPACK_IMPORTED_MODULE_5__extern_time_js__= __webpack_require__(68);var __WEBPACK_IMPORTED_MODULE_6__extern_transform_js__=__webpack_require__(41);var __WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__=__webpack_require__(3);var __WEBPACK_IMPORTED_MODULE_8__extern_physics_js__=__webpack_require__(54);var __WEBPACK_IMPORTED_MODULE_9__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_10__extern_util_js__=__webpack_require__(26);function NPC_AI(ns,exports){var m_anim=Object(__WEBPACK_IMPORTED_MODULE_1__extern_animation_js__["a"])(ns); var m_ctl=Object(__WEBPACK_IMPORTED_MODULE_2__extern_controls_js__["a"])(ns);var m_scs=Object(__WEBPACK_IMPORTED_MODULE_4__extern_scenes_js__["a"])(ns);var m_time=Object(__WEBPACK_IMPORTED_MODULE_5__extern_time_js__["a"])(ns);var m_trans=Object(__WEBPACK_IMPORTED_MODULE_6__extern_transform_js__["a"])(ns);var m_phy=Object(__WEBPACK_IMPORTED_MODULE_8__extern_physics_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_9__intern_print_js__["a"])(ns);var m_util=Object(__WEBPACK_IMPORTED_MODULE_10__extern_util_js__["a"])(ns); var _ev_tracks=[];var _vec3_tmp=new Float32Array(3);var _vec3_tmp_2=new Float32Array(3);var _vec3_tmp_3=new Float32Array(3);var _vec3_tmp_4=new Float32Array(3);var _quat4_tmp=new Float32Array(4);var _quat4_tmp_2=new Float32Array(4);var _quat4_tmp_3=new Float32Array(4);var NT_WALKING=exports.NT_WALKING=10;var NT_FLYING=exports.NT_FLYING=20;var NT_SWIMMING=exports.NT_SWIMMING=30;var MS_IDLE=10;var MS_MOVING=20;exports.new_event_track=function(graph){var track=init_event_track();if(typeof graph.obj!= "object"){m_print.error("Can't create event track. Wrong object.");return}if(typeof graph.rig!="object"){m_print.error("Can't create event track. Wrong rig object.");return}if(typeof graph.collider!="object"||!m_phy.has_physics(graph.collider)){m_print.error("Can't create event track. Wrong collider object.");return}track.obj=graph.obj;track.collider=graph.collider;track.rig=graph.rig;m_trans.get_translation(graph.collider,track.base_pos);if(typeof graph.actions=="object")track.actions=graph.actions; if(typeof graph.random=="boolean")track.random=graph.random;if(typeof graph.type=="number")track.type=graph.type;if(typeof graph.speed=="number")track.speed=graph.speed;if(typeof graph.rot_speed=="number")track.rot_speed=graph.rot_speed;if(typeof graph.max_height=="number")track.max_height=graph.max_height;if(typeof graph.min_height=="number")track.min_height=graph.min_height;if(!track.random){for(var i=0;ivert_delta)vert_correction=vert_delta;else if(vert_correction<-vert_delta)vert_correction=-vert_delta}ev_track.vert_correction=vert_correction; break;case NT_FLYING:case NT_SWIMMING:if(ev_track.vert_cor_water)vert_correction=ev_track.vert_cor_water;else if(ev_track.vert_correction){vert_correction=ev_track.vert_correction;if(ev_track.type==NT_SWIMMING)vert_correction*=elapsed}if(ev_track.random&&ev_track.reached){if(ev_track.type==NT_SWIMMING){ev_track.speed=Math.random()+.1;var magnitude=ev_track.max_depth-ev_track.min_depth}else var magnitude=ev_track.max_height-ev_track.min_height;destination[0]=Math.random()*10-5+base_pos[0];destination[1]= Math.random()*10-5+base_pos[1];destination[2]=cur_height-(Math.random()*magnitude-.5*magnitude);ev_track.reached=false}break}if(vert_correction)destination[2]=cur_height+vert_correction;anim_translation(elapsed,ev_track)}function move_destination_if_too_close(ev_track,dest,cur_loc){var cur_rot_q=_quat4_tmp_2;var cur_hor_dir=_vec3_tmp_3;var speed=ev_track.speed;var rot_speed=ev_track.rot_speed;m_trans.get_rotation(ev_track.collider,cur_rot_q);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["transformQuat"](m_util.AXIS_MY, cur_rot_q,cur_hor_dir);cur_hor_dir[2]=0;__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["normalize"](cur_hor_dir,cur_hor_dir);var sin_half_rot_angle=Math.sin(rot_speed/2);var walk_radius=.5*speed/sin_half_rot_angle;var dist=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["dist"](dest,cur_loc);if(dist<2*walk_radius)__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["scaleAndAdd"](dest,cur_hor_dir,2*walk_radius-dist,dest)}function anim_translation(elapsed,ev_track){var cur_loc=_vec3_tmp; var cur_dir=_vec3_tmp_2;var new_hor_dir=_vec3_tmp_3;var new_rot_q=_quat4_tmp_3;var rig=ev_track.rig;var collider=ev_track.collider;var dest=ev_track.destination;var speed=ev_track.speed;var actions=ev_track.actions;var cur_anim=m_anim.get_current_anim_name(rig);if(m_anim.is_play(rig)&&actions.idle&&actions.idle.indexOf(cur_anim)!=-1)return;m_trans.get_translation(collider,cur_loc);var delta_x=dest[0]-cur_loc[0];var delta_z=dest[1]-cur_loc[1];var left_to_pass=Math.sqrt(delta_x*delta_x+delta_z*delta_z); if(left_to_pass>2*speed*elapsed){ev_track.state=MS_MOVING;m_util.horizontal_direction(dest,cur_loc,new_hor_dir);dest_anim_correction(ev_track,dest,left_to_pass,new_hor_dir);hor_rot(ev_track,cur_dir,elapsed,new_rot_q,new_hor_dir);vert_rot(ev_track,cur_dir,elapsed,new_rot_q);m_trans.set_rotation_v(collider,new_rot_q);trans_obj(elapsed,new_rot_q,ev_track,cur_loc,dest)}else if(ev_track.type==NT_WALKING)if(!actions.move){ev_track.state=MS_IDLE;ev_track.reached=true}else if(cur_anim&&actions.move.indexOf(cur_anim)!= -1&&m_anim.is_play(rig))ev_track.state=MS_MOVING;else{ev_track.state=MS_IDLE;ev_track.reached=true}else if(ev_track.type==NT_SWIMMING||ev_track.type==NT_FLYING)ev_track.reached=true;if(need_proper_animation(ev_track))apply_animation(ev_track)}function hor_rot(ev_track,cur_dir,elapsed,new_rot_q,new_hor_dir){var cur_rot_q=_quat4_tmp_2;var cur_hor_dir=_vec3_tmp_4;m_trans.get_rotation(ev_track.collider,cur_rot_q);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["transformQuat"](m_util.AXIS_MY,cur_rot_q, cur_dir);cur_hor_dir[0]=cur_dir[0];cur_hor_dir[1]=cur_dir[1];cur_hor_dir[2]=0;__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["normalize"](cur_hor_dir,cur_hor_dir);var vec_dot=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["dot"](cur_hor_dir,new_hor_dir);var angle_to_turn=Math.acos(vec_dot);var angle_ratio=Math.abs(angle_to_turn)/Math.PI;var slerp=elapsed/angle_ratio*ev_track.rot_speed*ev_track.rotation_mult;__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["rotationTo"](cur_hor_dir, new_hor_dir,new_rot_q);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["rotationTo"](m_util.AXIS_MY,cur_hor_dir,cur_rot_q);if(Math.abs(vec_dot)>=1){__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["copy"](cur_rot_q,new_rot_q);return}__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](new_rot_q,cur_rot_q,new_rot_q);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["slerp"](cur_rot_q,new_rot_q,Math.min(slerp,1),new_rot_q)}function vert_rot(ev_track,cur_dir,elapsed,new_rot_q){if(ev_track.type== NT_FLYING)return;elapsed=Math.max(elapsed,1/60);var new_vert_q=_quat4_tmp;var cur_vert_q=_quat4_tmp_2;var cur_vert_angle=Math.asin(-cur_dir[2]);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["setAxisAngle"](m_util.AXIS_X,-cur_vert_angle,cur_vert_q);var delta_hor_dist=ev_track.speed*elapsed;var delta_vert_dist=ev_track.vert_correction;var new_vert_angle=Math.atan(delta_vert_dist/delta_hor_dist);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["setAxisAngle"](m_util.AXIS_X,-new_vert_angle, new_vert_q);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["slerp"](cur_vert_q,new_vert_q,elapsed,new_vert_q);__WEBPACK_IMPORTED_MODULE_3__libs_gl_matrix_quat_js__["multiply"](new_rot_q,new_vert_q,new_rot_q)}function trans_obj(elapsed,new_rot_q,ev_track,cur_loc,dest){var new_dir=_vec3_tmp_3;var new_loc=_vec3_tmp_4;var def_dir=m_util.AXIS_MY;m_util.quat_to_dir(new_rot_q,def_dir,new_dir);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["scale"](new_dir,ev_track.speed*elapsed,new_loc);__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["add"](new_loc, cur_loc,new_loc);if(ev_track.type!=NT_WALKING)new_loc[2]=(dest[2]-cur_loc[2])*elapsed*.1+cur_loc[2];else new_loc[2]=dest[2];m_trans.set_translation_v(ev_track.collider,new_loc)}exports.enable_animation=function(){if(!_ev_tracks.length)return;create_sensors();var elapsed_cb=function(obj,id,pulse){if(pulse==1){var elapsed=m_ctl.get_sensor_value(obj,id,0);for(var i=0;i<_ev_tracks.length;i++)process_event_track(_ev_tracks[i],elapsed)}};var elapsed_sensor=m_ctl.create_elapsed_sensor();m_ctl.create_sensor_manifold(_ev_tracks[0].collider, "ELAPSED",m_ctl.CT_CONTINUOUS,[elapsed_sensor],function(s){return s[0]},elapsed_cb)};exports.disable_animation=function(){if(_ev_tracks.length<=0)return;for(var i=0;i<_ev_tracks.length;i++){var ev=_ev_tracks[i];if(m_ctl.check_sensor_manifolds(ev.collider))m_ctl.remove_sensor_manifold(ev.collider);if(m_anim.is_play(ev.rig))m_anim.stop(ev.rig)}};function elapsed_cb(obj,id,pulse){if(pulse==1)for(var i=0;i<_ev_tracks.length;i++){var elapsed=m_ctl.get_sensor_value(obj,id,0);process_event_track(_ev_tracks[i], elapsed)}}function process_event_track(ev_track,elapsed){if(!m_scs.is_visible(ev_track.obj))return;if(ev_track.random)run_track(elapsed,ev_track);else{var focus_time=m_time.get_timeline();for(var j=0;jev.max_height)ev.vert_correction=-10;else ev.vert_correction=0;break;case NT_WALKING:var payload=m_ctl.get_sensor_payload(obj,id,0);ev.ground_level=payload.hit_pos[2];break;case NT_SWIMMING:var payload=m_ctl.get_sensor_payload(obj,id,0);if(id=="CLOSE_GROUND"){ev.vert_correction=payload.hit_fract*100-1;if(ev.vert_correction<.1)ev.vert_correction=.05;else ev.vert_correction=0}else if(id=="CLOSE_WATER"){ev.vert_cor_water=payload.hit_fract*100;if(ev.vert_cor_water< ev.min_depth)ev.vert_cor_water=-.02;else if(ev.vert_cor_water>ev.max_depth)ev.vert_cor_water=.02;else ev.vert_cor_water=0}break}else ev.vert_correction=0}function flying_npc_hit_fract(obj,id){for(var i=0;i<3;i++){var hit_pos=m_ctl.get_sensor_payload(obj,id,i).hit_fract;if(hit_pos)return hit_pos}}function create_sensors(){for(var i=0;i<_ev_tracks.length;i++){var ev_track=_ev_tracks[i];create_track_ray_sensors(ev_track);create_track_collision_sensors(ev_track);if(m_anim.get_current_anim_name(ev_track.rig))m_anim.play(ev_track.rig)}} function create_track_ray_sensors(ev_track){var ZERO_POINT=__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["create"]();var collider=ev_track.collider;switch(ev_track.type){case NT_FLYING:var near_ground_sens=m_ctl.create_ray_sensor(collider,ZERO_POINT,[0,0,-100],"TERRAIN",true,true);var near_stone_sens=m_ctl.create_ray_sensor(collider,ZERO_POINT,[0,0,-100],"STONE",true,true);var near_water_sens=m_ctl.create_ray_sensor(collider,ZERO_POINT,[0,0,-100],"WATER",true,true);var ground_sens_arr=[near_ground_sens, near_stone_sens,near_water_sens];m_ctl.create_sensor_manifold(collider,"CLOSE_GROUND",m_ctl.CT_CONTINUOUS,ground_sens_arr,function(s){return s[0]||s[1]||s[2]},ground_cb,ev_track);break;case NT_WALKING:var near_ground_sens=m_ctl.create_ray_sensor(collider,[0,0,1],[0,0,-99],"TERRAIN",true,true);var ground_sens_arr=[near_ground_sens];m_ctl.create_sensor_manifold(collider,"CLOSE_GROUND",m_ctl.CT_CONTINUOUS,ground_sens_arr,null,ground_cb,ev_track);break;case NT_SWIMMING:var near_ground_sens=m_ctl.create_ray_sensor(collider, [0,0,1],[0,0,-99],"TERRAIN",true,true);var near_water_sens=m_ctl.create_ray_sensor(collider,ZERO_POINT,[0,0,100],"WATER",true,true);var ground_sens_arr=[near_ground_sens];var water_sens_arr=[near_water_sens];m_ctl.create_sensor_manifold(collider,"CLOSE_WATER",m_ctl.CT_CONTINUOUS,water_sens_arr,null,ground_cb,ev_track);m_ctl.create_sensor_manifold(collider,"CLOSE_GROUND",m_ctl.CT_CONTINUOUS,ground_sens_arr,null,ground_cb,ev_track);break}}function create_track_collision_sensors(ev_track){var collider= ev_track.collider;if(ev_track.type!=NT_WALKING)return;var need_payload=false;var collision_sensor=m_ctl.create_collision_sensor(collider,"CONSTRUCTION",need_payload);function collision_cb(obj,id,pulse){if(pulse==1){__WEBPACK_IMPORTED_MODULE_7__libs_gl_matrix_vec3_js__["copy"](ev_track.base_pos,ev_track.destination);ev_track.rotation_mult=4}else ev_track.rotation_mult=1}m_ctl.create_sensor_manifold(collider,"CONSTRUCTION_COLL",m_ctl.CT_CONTINUOUS,[collision_sensor],null,collision_cb)}function need_proper_animation(ev_track){var obj= ev_track.rig;if(!m_anim.is_play(obj))return true;var cur_anim=m_anim.get_current_anim_name(obj);if(!cur_anim)return true;var actions=ev_track.actions;switch(ev_track.state){case MS_IDLE:if(!actions.idle)return false;if(actions.idle.indexOf(cur_anim)==-1)return true;break;case MS_MOVING:if(!actions.move)return false;if(actions.move.indexOf(cur_anim)!=-1)return false;if(actions.move_start&&actions.move_start.indexOf(cur_anim)!=-1)return false;if(actions.move_blends&&actions.move_blends.indexOf(cur_anim)!= -1)return false;break;default:return false}return true}function apply_animation(ev_track){var obj=ev_track.rig;if(m_anim.is_play(obj))return;var anim_to_play=null;switch(ev_track.state){case MS_IDLE:anim_to_play=get_idle_animation(ev_track);break;case MS_MOVING:anim_to_play=get_move_animation(ev_track);break}if(anim_to_play){m_anim.apply(obj,anim_to_play);m_anim.set_behavior(obj,m_anim.AB_FINISH_RESET);m_anim.set_frame(obj,0);m_anim.play(obj)}}function get_idle_animation(ev_track){var actions=ev_track.actions; if(!actions.idle)return null;return m_util.random_from_array(actions.idle)}function get_move_animation(ev_track){var cur_anim=m_anim.get_current_anim_name(ev_track.rig);var actions=ev_track.actions;if(need_move_blend_animation(ev_track,cur_anim))return get_proper_move_blend_animation(ev_track,cur_anim);if(need_move_animation(ev_track,cur_anim))return get_proper_move_animation(ev_track,cur_anim);if(need_move_start_animation(ev_track,cur_anim))return m_util.random_from_array(actions.move_start);return null} function need_move_animation(ev_track,cur_anim){var actions=ev_track.actions;if(!actions.move)return false;if(actions.move.indexOf(cur_anim)!=-1)return true;if(!(actions.move_blends||actions.move_start))return true;if(!actions.move_start&&!cur_anim)return true;if(actions.move_blends&&actions.move_blends.indexOf(cur_anim)!=-1)return true;if(actions.move_start&&actions.move_start.indexOf(cur_anim)!=-1)return true;return false}function need_move_blend_animation(ev_track,cur_anim){var actions=ev_track.actions; if(!actions.move_blends)return false;if(actions.move_blends.indexOf(cur_anim)!=-1)return false;if(actions.move&&actions.move.indexOf(cur_anim)!=-1){var identifier=Math.random();return identifier>.33}return false}function need_move_start_animation(ev_track,cur_anim){var actions=ev_track.actions;if(!actions.move_start)return false;if(actions.move_start.indexOf(cur_anim)!=-1)return false;if(actions.move&&actions.move.indexOf(cur_anim)==-1)return true;return false}function get_proper_move_blend_animation(ev_track, cur_anim){var actions=ev_track.actions;var ind=actions.move.indexOf(cur_anim);return actions.move_blends[ind]}function get_proper_move_animation(ev_track,cur_anim){var actions=ev_track.actions;if(!actions.move_blends)return m_util.random_from_array(actions.move);var move_blend_anim_ind=actions.move_blends.indexOf(cur_anim);if(move_blend_anim_ind!=-1){var ind=move_blend_anim_ind+1;ind=ind180)angle_hor-=360;var angle_vert=__WEBPACK_IMPORTED_MODULE_9__intern_util_js__["_39"](Math.atan2(cur_dir[2],Math.sqrt(cur_dir[0]*cur_dir[0]+cur_dir[1]*cur_dir[1])));var sun_params={};sun_params.hor_position=angle_hor;sun_params.vert_position=angle_vert;return sun_params}else return null} exports.set_sun_params=set_sun_params;function set_sun_params(sun_params){var scene=m_scenes.get_active();var lamps=m_obj.get_scene_objs(scene,"LAMP",m_obj.DATA_ID_ALL);for(var i=0;i4&&_date.d<15){m_print.error("The dates 5 through 14 October, 1582, do not exist in the Gregorian system!"); return}};exports.set_max_sun_angle=function(angle){_max_sun_angle=Math.min(Math.max(angle,0),90)};exports.get_light_params=function(lamp_obj){if(m_obj_util.is_lamp(lamp_obj))var light=lamp_obj.light;else{m_print.error("get_light_params(): Wrong object");return null}var type=get_light_type(lamp_obj);if(type)switch(type){case "SPOT":var rslt={"light_type":type,"light_color":new Float32Array(3),"light_energy":light.energy,"light_spot_blend":light.spot_blend,"light_spot_size":light.spot_size,"light_distance":light.distance}; rslt["light_color"].set(light.color);break;case "POINT":var rslt={"light_type":type,"light_color":new Float32Array(3),"light_energy":light.energy,"light_distance":light.distance};rslt["light_color"].set(light.color);break;default:var rslt={"light_type":type,"light_color":new Float32Array(3),"light_energy":light.energy};rslt["light_color"].set(light.color);break}if(rslt)return rslt;else return null};exports.get_light_type=get_light_type;function get_light_type(lamp_obj){if(m_obj_util.is_lamp(lamp_obj))return lamp_obj.light.type; else m_print.error("get_light_type(): Wrong object");return""}exports.set_light_params=function(lamp_obj,light_params){if(m_obj_util.is_lamp(lamp_obj))var light=lamp_obj.light;else{m_print.error("set_light_params(): Wrong object");return}var scene=m_scenes.get_active();var need_update_shaders=false;if(typeof light_params.light_energy=="number")__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["d"](light,light_params.light_energy);if(typeof light_params.light_color=="object")__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["b"](light, light_params.light_color);if(typeof light_params.light_spot_blend=="number"){__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["e"](light,light_params.light_spot_blend);need_update_shaders=true}if(typeof light_params.light_spot_size=="number"){__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["f"](light,light_params.light_spot_size);need_update_shaders=true}if(typeof light_params.light_distance=="number"){__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["c"](light,light_params.light_distance);need_update_shaders= true}m_scenes.update_lamp_scene(lamp_obj,scene);if(need_update_shaders)m_scenes.update_all_mesh_shaders(scene)};exports.get_light_energy=function(lamp_obj){if(!m_obj_util.is_lamp(lamp_obj)){m_print.error("get_light_energy(): Wrong object");return 0}return lamp_obj.light.energy};exports.set_light_energy=function(lamp_obj,energy){if(!m_obj_util.is_lamp(lamp_obj)){m_print.error("set_light_energy(): Wrong object");return}var scene=m_scenes.get_active();__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["d"](lamp_obj.light, energy);m_scenes.update_lamp_scene(lamp_obj,scene)};exports.get_light_color=function(lamp_obj,dest){if(!m_obj_util.is_lamp(lamp_obj)){m_print.error("get_light_color(): Wrong object");return null}dest=dest||new Float32Array(3);dest.set(lamp_obj.light.color);return dest};exports.set_light_color=function(lamp_obj,color){if(!m_obj_util.is_lamp(lamp_obj)){m_print.error("set_light_color(): Wrong object");return}var scene=m_scenes.get_active();__WEBPACK_IMPORTED_MODULE_1__intern_lights_js__["b"](lamp_obj.light, color);m_scenes.update_lamp_scene(lamp_obj,scene)};function update_sun_position(time){var angle_hor=time<12?time*15:(time-24)*15;var angle_vert=-Math.cos(time/12*Math.PI)*_max_sun_angle;var sun_params={};sun_params.hor_position=angle_hor;sun_params.vert_position=angle_vert;set_sun_params(sun_params)}function get_sun_coordinates(jul_date,days){var n=jul_date-2451545;var l=280.46+.9856474*n;l=l%360;var g=357.528+.9856003*n;g=g%360;g=__WEBPACK_IMPORTED_MODULE_9__intern_util_js__["T"](g);var oblique= 23.439-4E-7*n;return oblique}function calendar_to_julian(date){var y=date.y;var m=date.m;var d=date.d;var jy,ja,jm;if(m>2){jy=y;jm=m+1}else{jy=y-1;jm=m+13}var intgr=Math.floor(Math.floor(365.25*jy)+Math.floor(30.6001*jm)+d+1720995);var gregcal=15+31*(10+12*1582);if(d+31*(m+12*y)>=gregcal){ja=Math.floor(.01*jy);intgr+=2-ja+Math.floor(.25*ja)}var jd0=intgr*1E5;var jd=Math.floor(jd0);if(jd0-jd>.5)++jd;return jd/1E5}}var lights_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("lights", Lights);__webpack_exports__["a"]=lights_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_logic_nodes_js__=__webpack_require__(60);function Logic_nodes(ns,exports){var m_logn=Object(__WEBPACK_IMPORTED_MODULE_1__intern_logic_nodes_js__["a"])(ns);exports.append_custom_callback=function(cb_id,cb){m_logn.append_custom_cb(cb_id,cb)};exports.remove_custom_callback=function(cb_id){m_logn.remove_custom_cb(cb_id)}; exports.run_entrypoint=function(scene_name,ep_name){m_logn.run_ep(scene_name,ep_name)}}var logic_nodes_factory=Object(__WEBPACK_IMPORTED_MODULE_0__util_register_js__["a"])("logic_nodes",Logic_nodes);__webpack_exports__["a"]=logic_nodes_factory},function(module,__webpack_exports__,__webpack_require__){var __WEBPACK_IMPORTED_MODULE_0__util_register_js__=__webpack_require__(0);var __WEBPACK_IMPORTED_MODULE_1__intern_batch_js__=__webpack_require__(16);var __WEBPACK_IMPORTED_MODULE_2__intern_config_js__= __webpack_require__(4);var __WEBPACK_IMPORTED_MODULE_3__intern_geometry_js__=__webpack_require__(20);var __WEBPACK_IMPORTED_MODULE_4__intern_objects_js__=__webpack_require__(12);var __WEBPACK_IMPORTED_MODULE_5__intern_obj_util_js__=__webpack_require__(9);var __WEBPACK_IMPORTED_MODULE_6__intern_print_js__=__webpack_require__(1);var __WEBPACK_IMPORTED_MODULE_7__intern_shaders_js__=__webpack_require__(34);var __WEBPACK_IMPORTED_MODULE_8__intern_util_js__=__webpack_require__(2);var __WEBPACK_IMPORTED_MODULE_9__intern_scenes_js__= __webpack_require__(10);function Material(ns,exports){var m_batch=Object(__WEBPACK_IMPORTED_MODULE_1__intern_batch_js__["a"])(ns);var m_cfg=Object(__WEBPACK_IMPORTED_MODULE_2__intern_config_js__["a"])(ns);var m_geom=Object(__WEBPACK_IMPORTED_MODULE_3__intern_geometry_js__["a"])(ns);var m_obj=Object(__WEBPACK_IMPORTED_MODULE_4__intern_objects_js__["a"])(ns);var m_obj_util=Object(__WEBPACK_IMPORTED_MODULE_5__intern_obj_util_js__["a"])(ns);var m_print=Object(__WEBPACK_IMPORTED_MODULE_6__intern_print_js__["a"])(ns); var m_shaders=Object(__WEBPACK_IMPORTED_MODULE_7__intern_shaders_js__["a"])(ns);var m_scenes=Object(__WEBPACK_IMPORTED_MODULE_9__intern_scenes_js__["a"])(ns);var cfg_def=m_cfg.defaults;exports.inherit_material=function(obj_from,mat_from_name,obj_to,mat_to_name){if(!m_geom.has_dyn_geom(obj_to)||!m_geom.has_dyn_geom(obj_from)){m_print.error('inherit_material(): both objects "'+obj_from.origin_name+'" and "'+obj_to.origin_name+'" must have the "Dynamic Geometry & Materials" flag enabled.');return}var bpy_mat_from_index= obj_from.mat_inheritance_data.original_mat_names.indexOf(mat_from_name);if(bpy_mat_from_index==-1){m_print.error('inherit_material(): material "'+mat_from_name+'" not found on the object "'+obj_from.origin_name+'".');return}var bpy_mat_to_index=obj_to.mat_inheritance_data.original_mat_names.indexOf(mat_to_name);if(bpy_mat_to_index==-1){m_print.error('inherit_material(): material "'+mat_to_name+'" not found on the object "'+obj_to.origin_name+'".');return}if(obj_to._bpy_obj["data"]["submeshes"][bpy_mat_to_index]["shade_tangs"].length== 0&&obj_from.materials[bpy_mat_from_index].use_tangent_shading)m_print.warn('The target material "'+mat_to_name+'" was exported '+'without tangent shading data. However, the "'+mat_from_name+'" material requires it. It\'s needed to enable the "Tangent Shading" '+"option on the target material for correct rendering.");m_obj.inherit_material(obj_from,mat_from_name,obj_to,mat_to_name)};exports.get_materials_names=function(obj){var mat_names=[];if(!m_obj_util.is_dynamic_mesh(obj)){m_print.error('get_materials_names(): Object "'+ obj.name+'" is not a dynamic MESH.');return mat_names}var scenes_data=obj.scenes_data;for(var i=0;i