{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/projects/preview/assets/img/btn.png","webpack:///./src/projects/showroom/assets/icon/icon_3_8.png","webpack:///./src/projects/preview/assets/img/logo.png","webpack:///./src/projects/showroom/assets/icon/icon_4_3.png","webpack:///./src/projects/preview/assets/img/share.png","webpack:///./src/projects/showroom/assets/icon/icon_3_10.png","webpack:///./src/projects/showroom/assets/icon/icon_2_3.png","webpack:///./src/projects/preview/assets/img/icon_qp_g.png","webpack:///./src/projects/showroom/assets/icon/icon_1_2_2.png","webpack:///./src/projects/showroom/assets/icon/icon_4_10.png","webpack:///./src/projects/showroom/assets/icon/icon_4_7.png","webpack:///./src/projects/showroom/assets/icon/icon_1_7.png","webpack:///./src/projects/showroom/assets/icon/icon_3_2_2.png","webpack:///./src/projects/preview/assets/img/download.png","webpack:///./src/projects/preview/assets/img/rule.png","webpack:///./src/projects/showroom/assets/icon/icon_4_6.png","webpack:///./src/projects/preview/assets/img/icon_yu_g.png","webpack:///./src/projects/dongsheng/assets/newImg/chatRoom/chat.png","webpack:///./src/projects/showroom/assets/icon/icon_1_5.png","webpack:///./src/projects/showroom/assets/icon/icon_3_4.png","webpack:///./src/projects/showroom/assets/icon/icon_1_1.png","webpack:///./src/projects/common/images/alpha.png","webpack:///./src/projects/showroom/assets/icon/icon_4_1.png","webpack:///./src/projects/preview/components/MainView.vue?10dd","webpack:///./src/projects/preview/components/mobileTest.vue?e89a","webpack:///./src/projects/preview/components/banner.vue?8c4a","webpack:///./src/projects/showroom/assets/icon/icon_1_4.png","webpack:///./src/projects/showroom/assets/icon/icon_2_10.png","webpack:///./src/projects/showroom/assets/img/bg-left.png","webpack:///./src/projects/showroom/assets/icon/icon_1_10.png","webpack:///./src/projects/preview/App.vue?0ca5","webpack:///./src/projects/preview/components/MainView.vue?751f","webpack:///./src/projects/preview/components/banner.vue?7d59","webpack:///src/projects/preview/components/banner.vue","webpack:///./src/projects/preview/components/banner.vue?1245","webpack:///./src/projects/preview/components/banner.vue","webpack:///./src/projects/preview/assets/api/request.js","webpack:///./src/projects/preview/assets/api/index.js","webpack:///./src/projects/showroom/components/playNew_repair.vue?17bf","webpack:///./src/projects/common/js/bus.js","webpack:///./src/projects/dongsheng/player.js","webpack:///src/projects/showroom/components/playNew_repair.vue","webpack:///./src/projects/showroom/components/playNew_repair.vue?d34e","webpack:///./src/projects/showroom/components/playNew_repair.vue","webpack:///./src/projects/preview/components/function.vue?c7cf","webpack:///src/projects/preview/components/function.vue","webpack:///./src/projects/preview/components/function.vue?b5e1","webpack:///./src/projects/preview/components/function.vue","webpack:///./src/projects/preview/components/login.vue?ca90","webpack:///./src/projects/preview/components/chat.vue?ff25","webpack:///src/projects/preview/components/chat.vue","webpack:///./src/projects/preview/components/chat.vue?cda8","webpack:///./src/projects/preview/components/chat.vue","webpack:///src/projects/preview/components/login.vue","webpack:///./src/projects/preview/components/login.vue?2edc","webpack:///./src/projects/preview/components/login.vue","webpack:///./src/projects/preview/components/login1.vue?b226","webpack:///src/projects/preview/components/login1.vue","webpack:///./src/projects/preview/components/login1.vue?7572","webpack:///./src/projects/preview/components/login1.vue","webpack:///./src/projects/preview/components/client.vue?0b99","webpack:///src/projects/preview/components/client.vue","webpack:///./src/projects/preview/components/client.vue?c438","webpack:///./src/projects/preview/components/client.vue","webpack:///src/projects/preview/components/MainView.vue","webpack:///./src/projects/preview/components/MainView.vue?a7f2","webpack:///./src/projects/preview/components/MainView.vue","webpack:///./src/projects/showroom/components/box.vue?6f1f","webpack:///src/projects/showroom/components/box.vue","webpack:///./src/projects/showroom/components/box.vue?5d50","webpack:///./src/projects/showroom/components/box.vue","webpack:///./src/projects/preview/components/handShake.vue?f95c","webpack:///src/projects/preview/components/handShake.vue","webpack:///./src/projects/preview/components/handShake.vue?a82c","webpack:///./src/projects/preview/components/handShake.vue","webpack:///./src/projects/preview/components/mobileTest.vue?e886","webpack:///src/projects/preview/components/mobileTest.vue","webpack:///./src/projects/preview/components/mobileTest.vue?44c8","webpack:///./src/projects/preview/components/mobileTest.vue","webpack:///src/projects/preview/App.vue","webpack:///./src/projects/preview/App.vue?c96b","webpack:///./src/projects/preview/App.vue","webpack:///./src/projects/preview/store/index.js","webpack:///./src/projects/common/js/OrbitControls.js","webpack:///./src/projects/common/js/animation.js","webpack:///./src/projects/common/js/o2_before.js","webpack:///./src/projects/showroom/assets/api/request.js","webpack:///./src/projects/common/js/showroom.js","webpack:///./src/projects/common/js/o2vrClient_repair.js","webpack:///./src/projects/common/js/o2Function.js","webpack:///./src/projects/common/js/chat.js","webpack:///./src/projects/preview/main.js","webpack:///./src/projects/showroom/assets/icon/icon_1_8.png","webpack:///./src/projects/preview/assets/img/role3.png","webpack:///./src/projects/showroom/assets/icon/icon_2_2_2.png","webpack:///./src/projects/wdf/assets/newImg/function/yuyinOpen.png","webpack:///./src/projects/showroom/assets/img/big.png","webpack:///./src/projects/showroom/assets/icon/icon_4_9.png","webpack:///./src/projects/preview/assets/img/role2.jpg","webpack:///./src/projects/preview/assets/img/addicon2.png","webpack:///./src/projects/preview/assets/img/icon_qp_k.png","webpack:///./src/projects/preview/App.vue?3f97","webpack:///./src/projects/showroom/assets/icon/icon_4_8.png","webpack:///./src/projects/preview/assets/img/icon_yu_k.png","webpack:///./src/projects/showroom/assets/icon/icon_2_7_2.png","webpack:///./src/projects/showroom/assets/icon/icon_4_7_2.png","webpack:///./src/projects/showroom/assets/icon/icon_1_2.png","webpack:///./src/projects/preview/components/client.vue?855c","webpack:///./src/projects/showroom/assets/icon/icon_3_6.png","webpack:///./src/projects/wdf/assets/newImg/function/close.png","webpack:///./src/projects/wdf/assets/右箭头.png","webpack:///./src/projects/preview/components/function.vue?a40d","webpack:///./src/projects/showroom/assets/icon/icon_1_6.png","webpack:///./src/projects/preview/components/login1.vue?43e9","webpack:///./src/projects/showroom/components/box.vue?ca27","webpack:///./src/projects/showroom/assets/img/bg-right.png","webpack:///./src/projects/showroom/assets/icon/icon_1_3.png","webpack:///./src/projects/wdf/assets/newImg/function/xiangjiClose.png","webpack:///./src/projects/showroom/assets/img/close.png","webpack:///./src/projects/wdf/assets/newImg/function/xiangjiOpen.png","webpack:///./src/projects/preview/assets/img/role1.jpg","webpack:///./src/projects/showroom/assets/icon/icon_2_9.png","webpack:///./src/projects/showroom/assets/icon/icon_3_2.png","webpack:///./src/projects/common/images/white.png","webpack:///./src/projects/preview/components/chat.vue?4856","webpack:///./src/projects/showroom/assets/icon/icon_2_8.png","webpack:///./src/projects/showroom/assets/icon/icon_2_6.png","webpack:///./src/projects/showroom/assets/icon/icon_1_9.png","webpack:///./src/projects/showroom/assets/icon/icon_3_7_2.png","webpack:///./src/projects/showroom/assets/icon/icon_3_9.png","webpack:///./src/projects/preview/components/handShake.vue?36bc","webpack:///./src/projects/preview/assets/img/reduce.png","webpack:///./src/projects/preview/assets/img/role4.png","webpack:///./src/projects/showroom/assets/icon/icon_3_1.png","webpack:///./src/projects/showroom/assets/icon/icon_4_2.png","webpack:///./src/projects/showroom/assets/icon/icon_3_3.png","webpack:///./src/projects/showroom/assets/icon/icon_4_2_2.png","webpack:///./src/projects/showroom/assets/icon/icon_2_2.png","webpack:///./src/projects/common/images/half_alpha.png","webpack:///./src/projects/wdf/assets/newImg/function/yuyinClose.png","webpack:///./src/projects/dongsheng/assets/newImg/chatRoom/close.png","webpack:///./src/projects/showroom/assets/icon/icon_4_4.png","webpack:///./src/projects/common/images/normalmap.jpg","webpack:///./src/projects/preview/components/login.vue?1642","webpack:///./src/projects/showroom/assets/img/small.png","webpack:///./src/projects/dongsheng/assets/newImg/chatRoom/group.png","webpack:///./src/projects/preview/assets/img/add.png","webpack:///./src/projects/showroom/assets/icon/icon_3_7.png","webpack:///./src/projects/showroom/assets/icon/icon_3_5.png","webpack:///./src/projects/showroom/assets/icon/icon_1_7_2.png","webpack:///./src/projects/preview/assets/img/role5.jpg","webpack:///./src/projects/preview/assets/img/addicon1.png","webpack:///./src/projects/showroom/assets/icon/icon_4_5.png","webpack:///./src/projects/showroom/assets/icon/icon_2_7.png","webpack:///./src/projects/showroom/assets/icon/icon_2_4.png","webpack:///./src/projects/dongsheng/assets/newImg/举手.png","webpack:///./src/projects/showroom/assets/icon/icon_2_5.png","webpack:///./src/projects/showroom/assets/img/re.png","webpack:///./src/projects/showroom/assets/icon/icon_2_1.png","webpack:///./src/projects/preview/assets/img/role6.jpg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","screen","flag","staticRenderFns","obj","floor_name","wall_name","vip","id","multi","ref","staticClass","banner","style","width","_v","_s","loading_msg","on","close","logo","preview","_e","sceneTitle","props","vflag","methods","setTimeout","created","document","o2vr","on_loading_msg","console","log","a","b","mounted","watch","val","showroom","utf8to16","component","url","params","Promise","resolve","reject","axios","then","res","catch","err","defaults","baseURL","headers","post","timeout","getScene","get_scene_interacts","get_solo_media","set_scene_thumbs","set_scene_comment","get_scene_user","rtc_timer","add_popular","search_time","update_time","qrcode","statistics","Vue","player","target","THREE","sex","auth","accInfo","dicBone","arrBone","mixer","modelIdx","isNPC","bodyMat","bodyColor","hairMat","hairColor","arrAccObj","boneInverses","onStateChg","o2","info","action","setPlayerInfo","setModel","initAcc","setHairColor","setBodyColor","namePanel","add_lable_to_char","handPanel","add_hand_to_char","visible","isTemp","scene","add","clipName","state","playClip","isChgModel","parseInt","undefined","arrStr","split","arrAccName","type","indexOf","modelUrl","arrPrebAcc","prebAcc","idx","setAcc","children","forEach","e","Number","arrObj","pos","rot","modelPreb","position","rotation","remove","cloneObj","addEventListener","curAction","lastAction","time","enabled","play","crossFadeTo","clips","skeletons","traverse","child","material","clone","transparent","set","x","y","z","preb","clonePreb","onModelLoad","promise","import_object_url","obj3","vertexColors","color","multiplyScalar","initPrebAcc","arr","resetPlayer","rgb","accs","hairType","hairIdx","hatType","acc","newAcc","cloneAcc","curIdx","newArr","skeleton","bones","item","bindMatrix","playerInfo","temp","bone","bonearr","getBoneArray","rootBone","isAcc","k","skinmesh","accMesh","geometry","dispose","vertices","normals","skinIndices","skinWeights","arrUV","arrUV2","matrices","matrix","combineMat","map","poses","attributes","array","applyMatrix4","arrNormal","normal","uv","bs","idxs","skinIndex","wgts","skinWeight","arrMatrix","boneMatrices","setAttribute","mesh","loop","clamp","clip","setState","clipAction","clampWhenFinished","canvas","createElement","height","drawingContext","getContext","fillStyle","globalAlpha","fillRect","font","textAlign","fillText","sprite","scale","depthWrite","handMat","depthTest","texLoader","load","handTexPath","tex","loadTempModel","tempModel","tempUrl","require","that","colli","last_click_time","touch_time","ws","last_pos_send","last_click_pos","bPaused","bEditMode","itemName","floor","player_name","ws_pos_cold_down","player_id","bLoginSuccess","viewHeight","moveSpd","_o2","char_urls","role_id","bKeyCtrl","bAutoMove","targetAutoMove","moveDir","mouse_down","onMouseDown","event","Date","now","onMouseMove","click_able_items","intersects","bind_id","highlight_object","showbox","res_list","Hyperlinks","body","cursor","matrixWorld","mtl_highlight","Base64","_keyStr","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","_utf8_encode","charCodeAt","isNaN","decode","replace","charAt","String","fromCharCode","_utf8_decode","string","utftext","c2","c3","send_position_to_server","bForce","str","send","stop_ctrl","bStop","cameraControls","old_pos","camera","old_eye","onItemClick","intersect","parent_root","parent","guide_view","active_guide","toView","bGuideActived","trigger_showbox","sb","move_to","point","old_audio_object","removeAudio","old_video_object","old_map","stop_video_tex","linkFlag","bPopUp","videoTex","voice","playAudio","getView","view","posPlayer","onMouseUp","dst","offset","offsetX","offsetY","sub","len","dst2","on_db_click","dnow","on_click","set_edit_type","editType","hot_area_parent","oldfar","maxDistance","bHot_area","hot","user_object","obj2","user_model","set_gizmo_object","set_gizmo_mode","aht","do_multi_sprite_click","ctrlKey","multi_seled","setRGB","guide_obj","add_player","num","toString","renew_all_uuid","players","players_object","base","update_player_position","id_player","posx","posy","posz","angle","remove_player","left_players","init","search_obj_by_name","blending","opacity","room","roleValue","char","viewFlag","setViewMode","stop_switch_camera","login","roomid","rid","$chat","add_video_stream_to_char","div","playerVideoPanels","frame_move_recall","offsetLeft","offsetTop","offsetParent","cam","matrixWorldInverse","projectionMatrix","parentNode","clientX","transform","move_player_position","time_passed","clip_name","fullDst","normalize","Math","abs","current","last_clip_name","cold_down","play_skeleton_clip","move_with_colli","org","colli_height","target2","raycaster","far","dir","intersectObjects","distance","radius","final","applyEuler","spit","cross","dot","intersects3","len_final","down_speed","raycaster2","down_length","set_edit_mode","bedit","beforeguide","prepare_run","set_camera_controls","init_play","received_msg","evt","cmd","param","bInitPlayers","Array","isArray","list","new_player_id","new_player_name","left","substr","arrMsg","cmd2","player_video","display","parms","m_begin_play_time","m_last_record_time","last_walk","bRecording","bRecordPlaying","record_frame_space","record_cameras","record_camera","play_record_camera","_load_camera_record","json","eye","get_record_json","trigger_area_item","bInside","type_trigger","enter_type","target_trigger","enter_target","title","timelines","check_hot_areas","hot_areas","wts","invert","hotobj","lentest","type_geo","frame_move","tm","passed","num_frame","lower","key2","lerp","alpha","target_angle","movedir","move","neweye","frame","onSwitchCameraFinish","xx","yy","zz","send_transfer_position_to_server","process_edit_key","selected_model","remove_model","remove_hot","bguid","guide","top","targetDistance","min","minDistance","switch_camera","onKeyDown","moveFlag","translate_camera","onKeyUp","container","switch_camera_finish","popular","mobile","viewList","staticStyle","_l","index","class","$event","scrollX","right","uitype","uiList","airFlag","roam","openComment","likeFlag","addFlag","addNum","thumbs","shareFlag","full","voiceFlag","modelFlag","roam1","shareFlag1","directives","rawName","expression","pic","downLoad","model","callback","$$v","textarea","toComments","comment1Flag","text","roomFlag","timmer","comment","thumbsFlag","commentFlag","checked","flag1975","guideFlag","bindQRCode","$refs","qrCode","location","href","colorDark","colorLight","correctLevel","see","launchFullscreen","element","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","documentElement","getNum","random","max","readTextFile","rawFile","XMLHttpRequest","overrideMimeType","open","file","onreadystatechange","readyState","status","responseText","image","Image","getBase64Image","img","ctx","drawImage","ext","src","substring","lastIndexOf","toLowerCase","dataURL","toDataURL","onload","base64","jsbridge","default","ready","bridge","JSON","parse","audioAutoPlay","audio","getElementById","onkeydown","query","setInterval","clearInterval","$nextTick","pause","boxFlag","activeimg","change","loginIn","chatFlag","chooseRoom","groupFlag","msgList","role","msg","playerList","onlyChat","keyFlag","cheatList","Bus","$emit","$message","error","found","filter","findIndex","to_footer","scrollTop","scrollHeight","el","keyCode","blur","$on","from","components","roleList","leftList","value1","adminFlag","loginFlag","room_id","videoFlag","abegintime","vbegintime","timmer1","atime","vtime","message","closeAudio","audioFlag","online","loginOut","$client","reload","videoTime","endtime","getTime","saveTime","audioTime","client","getRemoteMutedState","videoList","audioList","audioMuted","videoMuted","sid","begin_time","voice_time","video_time","destroyed","alert","box","getUserId","localFlag","suo","playValue","stopPropagation","sharename","shipinFlag","yuyinFlag","userId","hasAudio","hasVideo","screenFlag","qpFlag","imgFlag","two","jinyanflag","hostguest","shrinkFlag","placement","content","duration","innerHTML","stream","node","shadow","appendChild","Play","Function","Login","Login1","desc","O2","selObj","changeSence","secret","atob","guid","user","edit_info","pswFlag","psw","$notify","ratio","confirmButtonText","inputErrorMessage","beforeCreate","checkFlag","bottom","checkWidth","start","arguments","playerOptions","f","link","touch","flag1","vedio","vedioFlag","functionBox","moveobj","iframeFlag","playbackRates","autoplay","muted","preload","language","aspectRatio","fluid","sources","poster","notSupportedMessage","controlBar","timeDivider","durationDisplay","remainingTimeDisplay","fullscreenToggle","clientHeight","clientWidth","className","end","removeEventListener","changeBox","cssText","voice_res","CheckUrl","regstr","test","linkValue","handler","newValue","oldValue","clientY","touches","deep","preventDefault","newV","oldV","MainView","HandShake","Box","mobileTest","listen","orientation","w","beforeDestroy","use","Vuex","Store","KeyboardFlag","mutations","changeFlag","getInfo","actions","getters","_changeEvent","_startEvent","_endEvent","OrbitControls","domElement","warn","touchCount","arrTouch","Vector3","Infinity","minZoom","maxZoom","minPolarAngle","maxPolarAngle","PI","minAzimuthAngle","maxAzimuthAngle","enableDamping","dampingFactor","enableZoom","zoomSpeed","enableRotate","rotateSpeed","enablePan","panSpeed","screenSpacePanning","keyPanSpeed","autoRotate","autoRotateSpeed","keys","LEFT","UP","RIGHT","BOTTOM","mouseButtons","MOUSE","ROTATE","MIDDLE","DOLLY","PAN","ONE","TOUCH","TWO","DOLLY_PAN","target0","position0","zoom0","zoom","_domElementKeyEvents","getPolarAngle","spherical","phi","getAzimuthalAngle","theta","listenToKeyEvents","saveState","scope","copy","reset","updateProjectionMatrix","dispatchEvent","update","STATE","NONE","quat","Quaternion","setFromUnitVectors","up","quatInverse","lastPosition","lastQuaternion","twoPI","applyQuaternion","setFromVector3","rotateLeft","getAutoRotationAngle","sphericalDelta","isFinite","makeSafe","addScaledVector","panOffset","setFromSpherical","lookAt","zoomChanged","distanceToSquared","EPS","quaternion","onContextMenu","onPointerDown","onMouseWheel","onTouchStart","onTouchEnd","onTouchMove","ownerDocument","onPointerMove","onPointerUp","TOUCH_ROTATE","TOUCH_PAN","TOUCH_DOLLY_PAN","TOUCH_DOLLY_ROTATE","Spherical","rotateStart","Vector2","rotateEnd","rotateDelta","panStart","panEnd","panDelta","dollyStart","dollyEnd","dollyDelta","getZoomScale","pow","rotateUp","panLeft","v","objectMatrix","setFromMatrixColumn","panUp","crossVectors","pan","deltaX","deltaY","isPerspectiveCamera","tan","fov","isOrthographicCamera","dollyOut","dollyScale","dollyIn","handleMouseDownRotate","handleMouseDownDolly","handleMouseDownPan","handleMouseMoveRotate","subVectors","handleMouseMoveDolly","handleMouseMovePan","handleMouseUp","handleMouseWheel","handleKeyDown","needsUpdate","code","handleTouchStartRotate","pageX","pageY","count","handleTouchStartPan","handleTouchStartDolly","dx","dy","sqrt","handleTouchStartDollyPan","handleTouchStartDollyRotate","handleTouchMoveRotate","handleTouchMovePan","handleTouchMoveDolly","handleTouchMoveDollyPan","handleTouchMoveDollyRotate","handleTouchEnd","pointerType","mouseAction","focus","button","metaKey","shiftKey","DOLLY_ROTATE","passive","EventDispatcher","compareFunction","propertyName","tar","v1","v2","ani_object","jsonobj","to_json_object","newobj","from_json","ani_type","newtime","sort","objj","aniobj","objid","_x","_y","_z","_w","uv_offset","uv_repeat","ill_color","ease","repeat","uv_rotation","emissive","ill_power","emissiveIntensity","lightMapIntensity","aoMapIntensity","bSkeleton","bfound","ii","key1","bFound","exp","startQuaternion","slerp","color1","color2","g","uuid","objname","timeline","script","rate","bPlaying","oldtime","current_time","LoopType","total_time","old_loop","scripts","excute_script","objects","ao","record","aniobj2","autoPlay","export","syn_material","objidx","newkeys","old_time","o2animation","animation","tl","from_tl_json","search_obj_by_guid","search_object_by_guid","tl2","new_tls","SobelOperatorShader2","uniforms","tDiffuse","resolution","vertexShader","join","fragmentShader","camera_target2","camera_eye2","begin_eye2","camDir","getWorldDirection","begin_target2","camera_switch_count2","camera_switch_total2","targetPos","cameraPos","dis","distanceTo","lastDir","switch_camera2","bSwitchFinish","verz","dst1","begin_length","begin_quaterion","end_length","end_quaterion","objs","bLock","collect_visible_object","mouse","WIDTH","HEIGHT","setFromCamera","gizmo","depth","mtls","mtl","create_map_with_default","side","alphaTest","shininess","o2id","setHex","combine","reflectivity","normalScale","alphaMap","emissiveMap","normalMap","specularMap","aoMap","lightMap","specular","depth2","apply_skeleton_mtl","requestAnimationFrame","animate","time2","last_time","is_mobile","rendererStats","bShow","renderer","gif_anis","gifani","texture","current_frame","ceil","wrapS","wrapT","camera_switch_count","camera_target","camera_eye","eyelen2","quat2","eyedir","custom_render","render","div_bind","viewMatrix","viewProjectionMatrix","multiplyMatrices","round","enable_gizmo","saved_object","from_zip","meshid","map_white","o2_default","ga","map2","materials","envMap","create_envMap","castShadow","receiveShadow","matrixWorldNeedsUpdate","mat","xxx","all_files","load_mesh2","meshes","load_mesh_data","xy","uv2","fStep","bake_step","buffer","ix","iy","mdl_url","project_url","xhr","responseType","response","line","load_mesh_line","mdls","allRequest","model_obj","load_saved_object","all","obj1","intensity","f1","blob","Blob","URL","createObjectURL","load_skeleton_animate","load_skeleton_clip","near","mapSize","decay","bias","penumbra","target_uuid","UVTransformNode","masktex","mask","SwitchNode","TextureNode","planeGeo","groundMirror","ReflectorRTT","clipBias","textureWidth","textureHeight","mirror","ReflectorNode","map_normal","normalXY","normalXYFlip","MathNode","INVERT","offsetNormal","OperatorNode","FloatNode","SUB","XnormalScale","MUL","diffusemap","light_map","color_node","ColorNode","diffuseNode","lightmap","setUvTransform","_u","_sx","_sy","_rotation","groundMirrorMaterial","PhongNodeMaterial","environment","environmentAlpha","light","mirrorMesh","ua","navigator","userAgent","isIos","match","ver","panelMat","panelMesh","elements","load_mesh","search_obj_by_guid2","_process_after_load","exhibition","objects_ids","load_mesh_url","item_file","import_zip","zip","JSZip","on_unzipped","rt","from_json_export","bind_objects_export","loadAsync","counts","type_read","async","postEffect","create_render_pass","scene_id","abc","background","constructor","create_map","cubemap","load_common_scene","bind_objects","process_after_load","lengthComputable","percentComplete","loaded","total","aaa","cube","tree","import_root","evn","envmaps","urls2","urls","fnn","cubename","format","map_url","RGBFormat","RGBAFormat","unload_textures","image_loader","isJPEG","search","url2","raw_url","map_obj","map_alpha","half_alpha","map_red","absurl","mapurl","load_image_to_texture","maps","bDefaultRender","glow","bloomComposer","layers","finalComposer","aspect","setSize","effectSobel","devicePixelRatio","fxaaPass","pixelRatio","getPixelRatio","intarray","Uint32Array","num_faces","num_pos","num_nor","num_uv","num_uv2","limits1","Float32Array","posmin","posmax","posstep","normin","normax","norstep","uvmin","uvmax","uvstep","uv2min","uv2max","uv2step","ppos","pnor","puv","puv2","a1","Uint16Array","a2","a3","a4","pfaces","snor","ba","setIndex","computeBoundingBox","uvs","mdl","bb","bake_tex","cullMode","aoTex","map3","dif_color","earthDiv","_search_obj_by_name","skeleton_url","loader","FBXLoader","isMesh","clip_url","skeleton_obj","animations","AnimationAction","animate_skeleton","passTime","clock","getDelta","_tree","parent_name","mat0","multiply","_childs","child_guid","mat1","local","offsetinv","getInverse","premultiply","applyMatrix","msDiv","msText","msTexts","nLines","lastTime","webGLRenderer","assert","textContent","memory","programs","geometries","textures","calls","faces","cameras","sobel","fxaa","lut","film","outline","glow_strength","glow_threshold","glow_radius","aoIntensity","aoRadius","aoScale","camera_move_dir","same_texture_count","same_mesh_count","material_buffer","selection","EffectComposer","renderScene","RenderPass","addPass","bloomPass","UnrealBloomPass","threshold","strength","ShaderPass","FilmPass","FXAAShader","u","lutPass","LUTPass","lutPower","lutFile","LUTCubeLoader","OutlinePass","visibleEdgeColor","hiddenEdgeColor","edgeStrength","edgeGlow","edgeThickness","saoPass","SAOPass","saoIntensity","saoKernelRadius","saoScale","loaded_images","copy_maps","size","Uint8Array","stride","map_black","filpX","filpY","antialias","powerPreference","setPixelRatio","shadowMap","VIEW_ANGLE","ASPECT","NEAR","FAR","fpsControls","PointerLockControls","reset_scene","onWindowResize","video","imgData","video_stream_data","video_stream_data_list","videoPlayer","removeChild","create_renderer_stats","RendererStats","_area_hot_trigger","encode64","utf16to8","leave_type","leave_target","json_obj","decode64","_showbox","voiceid","urlPopType","sets","sr","resid","user_item_info","sbs","_collect_obj_showbox","user_item","Set","get_object_bind","to_json","collect_res","hots","hot_idx","hot_scale","lutName","models","mdl_item","binds","collect_model_bind","camera_record","object_id","add_exhibition_item","bChangeMap","get_model_exhibition_item","hot_urls","intersection","nor","face","on_add_hot_finish","viewstr","texture3D","all_objects","get_all_exhibition_items","generate_guide_bb","detach","set_fbx_mtl","dir2","dir_up","asin","change_bind_item_texture","saved","aht_saved","savedhot","apply_mode_bind","um","oldmode","gizmo_mode","setMode","newlst","left_list","TransformControls","ctrl","bCopyModel","curObj","attach","setSpace","oldbind_id","switch_lut","show_boxes","template","getUrl","SCREEN_WIDTH","SCREEN_HEIGHT","ppp","load_zip_scene","dist_appear","bPrepare","load_models","bind_items","load_camera_record","load_hots","load_hot_areas","load_lut","Audio","bEdit","POSITIVE_INFINITY","keyStr","base64test","exec","out","char2","char3","o2vrClient","config","sdkAppId","usersig","audioflag","videoflag","userid","roomId","startGetAudioLevel","setAnimationFrame","clearAnimationFrame","timer","cancelAnimationFrame","animeLoop","getAudioLevelTimer","publish","localStream","unmuteAudio","muteAudio","unpublish","unmuteVideo","muteVideo","userSig","sig","appid","TRTC","createClient","remoteStream","getId","subscribe","getCameras","createStream","initialize","leave","appname","o2Function","dir_prefix","OSS","credentials","region","accessKeyId","accessKeySecret","stsToken","securityToken","bucket","getMD5","md5","date","nameList","path","sliceupload","name2","put","page","options","progress","cpt","parallel","partSize","multipartUpload","token","sha1","toUpperCase","FileDragHover","FileDragLeave","Drop","drag","classList","fileList","DirectoryEntryList","dataTransfer","items","webkitGetAsEntry","getAsEntry","$alert","getFileTree","FileTree","flattenArray","div_x","getBoundingClientRect","div_x_width","div_y","div_y_height","dirReader","rel","rej","readEntries","fullPath","isFile","fileSync","resFile","isDirectory","createReader","readEntriesSync","entries","proItem","callBack","fileReader","FileReader","blobSlice","File","mozSlice","webkitSlice","chunkSize","chunks","currentChunk","spark","SparkMD5","loadNext","readAsBinaryString","appendBinary","chat","wsConnect","WebSocket","port","onopen","onmessage","sendid","reid","onclose","VideoPlayer","VueAudio","Showroom","productionTip","O2vr","ElementUI","$o2Function","store","h","App","$mount"],"mappings":"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IAA0B,0B,qBCA3CC,EAAOD,QAAU,84G,mBCAjBC,EAAOD,QAAU,80B,uBCAjBC,EAAOD,QAAU,IAA0B,wB,qBCA3CC,EAAOD,QAAU,02B,uBCAjBC,EAAOD,QAAU,IAA0B,0B,qBCA3CC,EAAOD,QAAU,IAA0B,6B,8CCA3CC,EAAOD,QAAU,slF,oCCAjB,W,qBCAAC,EAAOD,QAAU,03F,qBCAjBC,EAAOD,QAAU,0kE,qBCAjBC,EAAOD,QAAU,0+F,qBCAjBC,EAAOD,QAAU,ssG,mBCAjBC,EAAOD,QAAU,s3E,oCCAjB,W,qBCAAC,EAAOD,QAAU,07C,mBCAjBC,EAAOD,QAAU,0sB,8CCAjBC,EAAOD,QAAU,svF,6DCAjB,W,qBCAAC,EAAOD,QAAU,kmD,oCCAjB,W,oCCAA,W,qBCAAC,EAAOD,QAAU,IAA0B,6B,qBCA3CC,EAAOD,QAAU,sxE,qBCAjBC,EAAOD,QAAU,s5B,gDCAjBC,EAAOD,QAAU,IAA0B,0B,qBCA3CC,EAAOD,QAAU,k3B,qBCAjBC,EAAOD,QAAU,IAA0B,0B,mBCA3CC,EAAOD,QAAU,0uB,mBCAjBC,EAAOD,QAAU,89D,qBCAjBC,EAAOD,QAAU,IAA0B,0B,kCCA3C,W,mBCAAC,EAAOD,QAAU,0nG,mBCAjBC,EAAOD,QAAU,8uF,mBCAjBC,EAAOD,QAAU,kqC,mBCAjBC,EAAOD,QAAU,8+C,mBCAjBC,EAAOD,QAAU,s+B,kCCAjB,W,mBCAAC,EAAOD,QAAU,0pE,qBCAjBC,EAAOD,QAAU,IAA0B,0B,mBCA3CC,EAAOD,QAAU,0kD,0CCAjBC,EAAOD,QAAU,ktG,mBCAjBC,EAAOD,QAAU,k6D,mBCAjBC,EAAOD,QAAU,04G,mBCAjBC,EAAOD,QAAU,0tG,qBCAjBC,EAAOD,QAAU,IAA0B,+B,mBCA3CC,EAAOD,QAAU,03B,mBCAjBC,EAAOD,QAAU,kjB,oBCAjBC,EAAOD,QAAU,sxG,4CCAjBC,EAAOD,QAAU,IAA0B,8B,yDCA3C,W,qBCAAC,EAAOD,QAAU,IAA0B,0B,mBCA3CC,EAAOD,QAAU,syB,mBCAjBC,EAAOD,QAAU,8nE,mBCAjBC,EAAOD,QAAU,8iD,mBCAjBC,EAAOD,QAAU,8/D,mBCAjBC,EAAOD,QAAU,k9C,qBCAjBC,EAAOD,QAAU,IAA0B,0B,qBCA3CC,EAAOD,QAAU,IAA0B,6B,mBCA3CC,EAAOD,QAAU,0uG,mBCAjBC,EAAOD,QAAU,81F,mBCAjBC,EAAOD,QAAU,0vG,qBCAjBC,EAAOD,QAAU,IAA0B,uB,mBCA3CC,EAAOD,QAAU,8tG,qBCAjBC,EAAOD,QAAU,IAA0B,uB,0CCA3CC,EAAOD,QAAU,84F,qBCAjBC,EAAOD,QAAU,IAA0B","file":"js/index.88493547.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/btn.b2cb4ea7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABNVJREFUWEfFmH9MVWUYx7+PXOnyQ0OuClxMWlrLH6uVgxa6flhMSxGEsNSSotkkU9JylcosabpWsGUDlEvAxaFzOom5tTJcP93calit5mbqFokDhFq3y4+QeNv37py7w+Wcey8Mx9nOP/e+7/N+3ud93u/zPEcwhkcpNQXAbQAcAGI0Ez0AugBcFZF/RmtWwp2glJoDYBGAewDEAxgEMKS9NDNJe20A/gTwE4AWEbkczhohQZRSMwGsAbAAAHfdB+C/EMYjAERp3voFwHER6Qw2xxJEKcX/MgBkAvhXg1Dh7M4whjZiAUQC+EREzljNNwVRSnHiZgB3APjL4P5RcviH00PTAFwEcFBEBgINjQDRIIoAOAH8PdaVLebdymAGcEBEbhjHDAPRjmMLgNsBeMYZQjc3FQADuEJE/EcdCJINYKkW9TeJw2eW1/60iJzSF/GDKKV4FLsAdI9DTITaBK86YUpEpJ2DjSBbAcwC0Btopbb+yJ0Vh2pX9fX28QYMe3a+se3wumdyrxwody2sqnbnmhFsf7XwaEH+egaq8aEQXhGRSj+IUioZwE4A180MpS7OeM0MgmMzVyxr3v9u8dnu7u7IM199S6/6nvb267G1dQ2ZNwYHI5/fsLbp9W2bfzSxPQPAO9QYn0eUUnkA0jStGDF+4X1L9lj52m6395a9v7fuoSXp/k1cunQ5tuClovyExJmdf7S2zXoqd9WXFiBMFd+JSKMO8h4AXifK9qhAODg52dnadKLebbfbh3SI2Cmx3pPH6g4vXZa9JSc782sLkMm+YxHZJUqpBADcsaUEB/NI/LS4rsbjbpfD4RjQIaKio3uPuCsb+Fv6w8uLgoCQg+v7QJjINmgKanoCViCEqKn60D137hyvGQSNhQHC21NNkMcBPBlMwMxAgkHExMQM8pgI8uwLm7Jys1eeX521stUizqi2TQR5AgBhLGuIQJCY6ChvTfVHrgXz7vYEesLr7bFtLNy+1lVZdjQlZfYIKTCBYcB+QZDlWpYNC4QQZR/scy9+MLUrEIKLrMsvXN/Wdm12YsKMa0+vyfkmLm5qvzPJ2cPxFh7xg1DSmeotE5zuEREZKistcWU8+kh7MIjABYPoCIf6j+ZeAC8Gyy86iDMp8erpT098TPFanZe/Ub8dRk+Y7ToECKs9X7BOp+YD6LASLR2E7m7+rNHl8Xhse/eVpr+1Y+s5BuZzBS/nXrhwcb7V/BAgvL67dUHbr5V/IQVtT/GOurycrN+5aH9//6RQEBwXBIT1rfgETZN4Jqt0q5tjvDURERGDaan3t0x3xHu+/+H8/PaOTn9+GYNHGKhnReSkDpIEoNhKXYMlPavFjb+XvP1mrYmOcG096XUYy4BXAKSYJb4ad8NdVa76Fd6eHlZXYT+TbbaBB9IWtRwsL/3cZBJLCpYBFb58ow9QStEruye8MNJiJQvAYxNaKmog9NDNLp4pYCyeyy2LZw2GPQ3LRlZtE9NOGOLlFgCbALDfZYM12g4vMDbpaTZYvwE4FFaDZYDhZGZl5iH2u3zH8kQD4MZOiUizlYFwmnBKMJvweVqFP5omnBC/AjgmIlbZ18cWEsTgIXZ/LLD1zxJmNS4lm3UoP0v8DOCciFgVRMOcEzaIcZZSisLGYGbCHJcPNf8DYDwQu3y3MgUAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/logo.cd2097be.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/share.03c2753a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAj1JREFUWEftlT9oE1Ecx7+/uzQ0SYcIDlIQzsl6SnODmDRVVBTs6iBk6OAg6CLUqYuCu4h0KBTs6ODQ0ixCBEFBuTS4vFSa1OBQ8c9cQdNg7t5PLhgI4Zp3OS1kuFvf+35/n/d9v989woh8NCIciED6byJKJEpENZ2he8QwjPFkevIagHkCDAl+5jLWGtXyN1VRv/VhQWLm9MxF0qjATAUiTPSbMvCKpXy+r+2v7wqxFxQqEIg5ncuSpheY4RU/FsScGS0QlxhYrQv7hUqjBDEsK53i1Bf4nF5l3lln/rpdtY+r9ipBvDTguJ8pHl9kxh0ijKtMO/XBAozHzR/f1xLpySt1Yb8E4BykHQhy8sy5s7HY2PuOKfAQv9sVFRCDixJyqYWWSHHyNoMWvOtss3OhUa28CwUyZeUu6dBfd8UHAjF+grDaasvlmK7pOskFQLvZm54L9/KO2HzzX0D8gBAfm2uiWUxxIsvQvNPP+RU7FJAeoGJN2NfNTL5MRLlBvXPYILs1YZ84bc2yqoEjkP6ERiYRKZ2Z+lZlM9TUmKY5gfiRDQKu+hkwOEiP7AHy/rYoLw/qI+Wf1RObmfw8iJ4QcLTXTAHiMGOlSb8eBHn8AoF4xb03J4HkIw10q2d8fRNhRsmR8l7jQ3lHNU3d9cAgXYGZyZ4n6E9BNNWfCIM/uZLvftwql4IChAb5K4ydsvKLBFg1Yd8wM7NvAS7WqvbSoIftn3tk2NOF2T/01YQpEkQTgfSnFCUSJaKanD/8zh4yG/TiOgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAhRJREFUWEftlb9rFVEQhb8DFum0M2AKQUsF/Qs0XewsLG2sFBRUEBRMYTAQBcFYCAoWChYWgtrZGUijnaJlQMFGuxQWKQIj5zEL1/W97I8YCLIDr3h77+5898zMuWKXhHYJBwNIvRKDIoMiTdPZu0ciYj9wCbiQSZ4DdyT9bEo6br0zSALcSIAp4DWwAZwBNoFHfYBag0TEIcAAZwEDrAOnJL33CSPiMHAz1zsDNYJExAFgsUjwAtiT/w3jtYeSrMokoAVJ3jsx2oB8Bo4Ab4Fzkn5kwmPAfeAk8A24JelZlSkVWsqSfQGOS7JSY2NLkIg4CHwt3nQ/OOGnIuEc4IQG+5jl+wBcBq4A+3KvQby+LZCrwN7iw38ARURVqtvATDatn3mfoQw6K2lluyAuydOI8OnKk46AgF/AfPaNc70E7lqBiHDp3v1TkKIcdSDX3j97iQHWir07B1IDWs0psvSjRi5jRxWpJbLsSJodV///DsQT8B1YluTJ+SsiokmR67Z84Kgk+0n38fUbEfEKOJ0eYQ9506Y0EXEiJ8rNujKpdNW32jir/eBiGtV0HaiuSA3Atr6ckzS6AnorUkyIL7rzwLU0LbukPcTu6biXa1agAnjQdMe0VmTMOFYu6pvWN24ZHl/3w+PqEtxKhXKtsTSTPlTYustmtZ70AeitSNsTdt3XW5GuiZr2DyB1hQZFBkWapuY3ngrwI/iqgjoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABNlJREFUWEe1mH9MlHUcx98fRbjQ8EBlhf2ghS78ccSNaU2bc9MRI7nUNZwdJIzigEEZQnMn9gNrZbWFDcSkUfKj8QdSwCpjliDCMtopaYm0ATdyDqJOQSKr+7YPe+72cHLP89wB3+3Zbvd8vp/v6/l+Pt/Pjy/BhyGECAYQLT3hAMIAhEgqbgL4A8AQgF/4IaJxrepJi6AQIgrANgArAPwD4G8A/wL4D4BT0jEPwHwAAQCCACwA0AugiYh+VVtHEUQIcR+ApwGsAjAK4C81hR7v7wJwN4DLABqI6Jq3+V5BhBDrAaQC4O295SOAp/hCAGzWE0T0/XS6pgURQiQC4OdPyRQz5JiczqYKlUz1lafCO0CEEPEAkgCMyOw/GyCsg/1oCYBGIjolVzoFRAixGkD2HEG41nXBlBER+87kcIMIIZYCsEo+wSdD8+j60RZW39AcbTQaBp/ZYRrQMJHNxD5ziIh456eAPA9gpa+Oee36dV3SdnPu/csjBvsH7JHpaebG3OwM95cqQLED9xBRhRtECPEggEIAwxq+ZorI0WOVqz6rq9/c9m1z6Uv51s1Dw8P62hMfNWjUswzAYSIamDSNECIPwHI/4gQsOfnxExMTgZ98XNqUnVewdfzWuI5/awThOGMnolISQugAvAfgd42T3WIjIyOBiabdOakpu05lZ6b9vHPXnuTolSvsh96wdvqgi31zH4PEAUiRYobm+QxhyS0w3XDcCGk8WVOp0+mcj22M35tlSW96zpysGtJlC3FsqWKQNACPKJnl5cKiTVd6eiNdk8dGxxbdHB0LCV+2ZKjsyOG6qKiHx1rPdoTn5BVmRdx7z2DAggDOQwgL0ztesxac5vcKX8in5zKD5EtB5rY34TWxG181bUtoCQ3Vj7ecbo0NCgq8nfXCnu8S4re4c0dXly3szNmOB+Q62to7VzudznnNDbVVCiCB7BYM8qYUQTmTTjsYpPrT8pJHDWsc5jSLiYWqK8u/ULPjuc4flmZm7825ZGt/XUGWMzYxyIdSJPUq6y9IVXVd1NHjlYkdrV+XKIDwydXPKcjB4rfXX7hwKaqxvrpGBSSUQd6SCpxZN02G5cUEBqgoL7kj28rA2DTzGeQVAIsBKDqrPz6StNP8bJzR0HvQWnhexVkdDJIh5Riv9aW/PsJxJceS3pSiHFf4+PYwCFdiu5UCmj8gHPA2bTHtd+2kwo5wQKtlECZ6Vynh+QOy/0Dxhrb2TuO5M1/yqVQanPgKNCW9tcYnijY8vu588MLgCdvFbo7CiI0xXPGmva9/IKK/zx5ZdGBfzQ7TU3YFCk56vxHRERcIh+8Cb7vy/gdlMbaL3e4QrxbI9Iv1Y6nmZNu6uFjuc9R24x0isssrtEwA3L/MtGJX43S958LoKhEd5z/kINy5canICcqnUlHryjI5LhUXASgmosnyw7N4NgCwSLWJq4PzYx3FKa7i+RgRdbskp2snnpTay7lqJ7gQ+pyIvpHjemuwtkqtpmMWzcTm0EsQLZ57ptRyco/DlT37y0wdmB2Tm/MKeS+juiMuASEEd2XbOWxITuxPE85OaQNwkoi8Hmet1xIPSabivoeTo5ZrCa68rkqm6FPzeE0gsh3iS5m1AGKk8pKvHDhF8OCkyVcXfBz5NPxERHx5o2n8D8hR82IJ5RLCAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABT9JREFUWEe9mGtsk2UUx/9nWwt0bd91pds62Tpwg4kQFBOyCR80UaLJjBrDB28xXtBgQOQ2ILAhIAEnXsLMgiCQGIxGFBIlITF+EwQxQojKVnehGwMyStfayzsYZcec5l0ZW9v3Hcs839q+7/P8+j+X55yHMApjZgXAQwBmAXAAsACwaktEAagAggD+BHCWiEJGlye9B5nZBWAOgHkAPABuALgOIA6AAdzU1jABkPVyAEwEMAGAD8BpAOeI6FqmvTKCMHMegEUAHgAQ0wAG9OC137M0IBuAPwB8l0mhtCDMPBPA69qiAmEUYDinAOVqX+4jovOp/khKEGZeCOAZzd+D0hsUIu1j4jqJq8NE9PPwp0aAMPOTAGoABMagQjoaUccJ4CgRHRv60B0gzPwggDcB+McBYnBfgZEE+IKIJHYSlgRhZjeA9QAiQzJhrO5I9764SdL+AyK6PBxElJihgdw1QH9/nGKxSE4kEstRFPtNRbFLmqcyySYvEe1JgjCz1Ic1AHqNuiQelw3VbFXty1avqzm/HD/l7vR15QdD4dwe/9W83t5QntWaG9v/+a7DaWDERZMBbCWiKwnXMPNSAKVaZdRV40Jnl+XAl1/Pam1tvycaiVhiap+lsMB1zWazqW53YbDMUxJ0FxVGG3Y21hzYu+srj6dUKm4qk8rsI6ImYmb50DAaNTbWb6tq9/nc86urvJUzKgLl5WXhxC4DWfAHAhP/bj7vbGvtmPzryd9n64CIKvkAlgtINYDnNRBdNeSBVWvrFzAPZC2orvK1t3fk+3uD1ovd3a5YTLVEIzFLYZHrmtORHz7f7J2mAyLLCchBAZEgLTfqFnlz9bpNC86cOXefw5H3r9WWqxYWFIRmVJb3eKaUhKdPnxa25ebGe3tD5sVLVrxgAESqrldA1gGwA+g3JIcGEo/HszasX3lq0oQJt6xW663h73Z2dlleXfzOiwZAzADCArJdyxTDpVwUkY137th8PB38KECkprCANAG4alSNQdfogQSDQVP91g/nb9m09oRDUfT+pFNAGrVzxTCLniItLW02p9Nxw+VyJtx98tRpZ3XVPDm70lkC5H2t1OtRJxfRA9lYv626raPT3fjJ9qPbGz59WO3rM+/+bOdPaSiSrtENVr8/YP7m0JGKi92XHE6HI3rF32PPycoZyBQjK9fUPdLsbfUoii3a+PGOHwfVSQGTDNaM6ftPW5t19dpNT1ssFrW0pNjfdfGy62qPf/LcuXOa9UBaWlrL7Io9LMpkAEmmb9qCJgH37pq6hZ7SKf5Vy5ecURQlHggGTRvqtj5qt9rUhjRZk3DNBV+xKGHANcmClrbE+3zdk157a+lL+/c1HSybUtwnssrpumxF7eNFRUWhzXW10hiPsFEE6+0SL6sw89sAyoZX10AgaFq6oramwFkQeuXlRWdvMdOhQz/c3+HrLN7yXu2xmZWV0ruMxUSEDiLaPXj6SlNUB0Ba/juaZDlpGz7aNd/b0lZmMpviUz0ll1atXHai4t6p0lCPxUa2AZoqaRujaDSaHQ5HTUTETqej32w2yzwzVhvZGGkghQA2/I+tooBIUyT98e2eVYORcfKNcW6es7XOrImIZDRNWKpx4ikAT4zTOCEQkq6Zx4lBOmZ+DMCzAGSINlz6dYJGSrmMsEcMDVhDYMZj5NxDRN5UwEaH8LlaEMstgNEZeOgQfhbAt3c1hA+lZuYKAM8BmKbdCMjVhLgs1bWEuECuJORqogPA90TUqpfruvcjw4DEx6LObM3fqS5qJK7+AvAbEcnljSH7D/BETnURM1FtAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/rule.5d6eab60.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAV9JREFUOE+9lC1LBFEUhp8XDIYNFsFoMLpgMBgNChtsFoOCdkGDzeAKBougYBEEBS3bDIKIBkGjYHB/gEHQYDAYDMKRI3eWmdkZnCuLp13uOc99z9cVPTb1mEcp0Mz6gVlgEhgJDz8BN0BL0meRmEKgmTloHxgqyeAVWJXUyt93Ac1sBditWAqH7qV9M0AzmwKuKsISt4aky+SQBz4AY5HAtqR6F9DMRoHHSFjiXpfU9kNHoZnNAycpYBOYAcaBU6APmAPuQ6fXUr4LktwnA1wEjlJOw4AHLQP+mAOPQ8MOgR9FwZYk+V0G2AAu/pjytKTrPNAH+QUYiIR+AIPJoOe7vAF47WKsKWmzbGy8TrfAREXiHeDpdtawaFPWga0KwHPAu/teuil+YWbpbr8BXttaCHIl/jkcSDorerRIoafr67cN7Hg6ZuYj9CXp+TflZb9NTZJ3L9r+74ONlhYCvgHixWYVwbIRgQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABV9JREFUWEfNWEtMG0cYnpldr43BNl6b9fqRYGODAklfSpPcUslplaqQFiJOrVqo1KioEr20tIcc+5BaegLRqGqiSK3aU4VpI/pIxaPcqkRqlSYiARLAGD/Xa7AB2+vd2WpdOQ+wsVHdpHvc+eebb+ef+f7vXwj28NhsNq0s17QCFWwFEmYAgLQMgV6BgDJIAiDzgEBRkJNnIUzPBoPBrUrhYSWBDQ0OD6KoU1DGzZlsNpfNbGUlKSeKoiBhEWMFA5EIkSRFEISKVGu0ao1arZIhmseCcCkWCyyUW2dXIjRtd1AaqlPEYttmai2V3kylywHeP15Tq6vR6WgdQuiGKIg+jlsJlppfkojJ5DhGqFWvbabWtjZTic29ENgeW6sz1tbq6rVSNvdVPB74vRhWUSJmtrEdAdDO85GEKGRy/4ZEYS5FaVT1tMUoA3ApFl7+aTvmDiKM1XlSlqUX49HVOMb/5L9aD0IImRi7CULih2ho6Zf7cR8gwrKegxjk3uKiK1UnUVgUIRKZGbsJAdXn4fDCjcL7u0RsthazBMWz8Vhwq1rpKLWTSpqMDTYtCagPV1dvxvPXvxBsdbjPJNf5lmIH02AwkAzDUEosx3FCIpEQd0uX0WgkzWZzPj4ajQrr6+s74pUDrDeYboUCC+fvErG6WhvF9MZ7sfBKbPsCCuj09HQ3TdM6ZWxubm71xIkTP+5GZHp6ut3tdtuUGJ7nU8ePH/+uGBmGbWwgIPo0FFpczu+IxeF+O5mI2ovpRHNzs3ZycvKVoaGh32ZnZ9euX7+eXFpayuxGxOl0ag4dOqRva2ur7+/vf8br9X4zPz+/Q2UVnTHQFn94ZWEEKpMyAvwsHFzkioEXiPT19X0/Pj4e3csN6ujoYM6dO/dSKSIKFmtzmTWU/C60WpueTgvpV9fioUSxRZTzMTY2drKnp2fC7/dn+vv7m7q6ulohLK6FsiwDn883Ozw8fEf5yAsXLni7u7svlzpXtMlqVFM1X0N2X9Pr63zsQKXyPTk52a7owZUrV1aKET9y5Mg+SZKkcueoMLem1qA11JtvQNbueoePhUyCkBEq2fapqan2q1evrg4MDPxZLH5wcPDJw4cP271e73gleJRGS5lMLAetdvdHkcgyxqIoVTKx2kQQSRIWSyOErMM9HA7czotKJU+1iQCAoNXhqv9fEGEdLiO02ps+jkT80qNNzX4Csjbn+zwXNjzKw0rTzBq0OFxvJBN8S3pzvSJ/OTEx8QJBEESp63v06NF9oiju6frqDfQtaLE4j2XF7MulBE2pNT6f72Rvb++EIu2KoHV2dh6AJRRNlmV5dHT05sjISF7QLl68+Ozp06d/3k3QVKT6W6g4cwzUg+Hg4o6Cp9yihyDxDQhkBx550dMbmdVI4PZQngjLOp0SkAaK2QCl1szMzOzJBkxNTXV4PB5rJTaARMQnweAd/z1jZHe/mUzynodrjOi5UOD2lw84NIvFzQACn41zoY2HYhXN1rotkP0gFQzm7ccDtZxxuB4HGPdx4RWu2g6+UD7y5pm1mwBCX0QDi9cK73eYigar83kgS6f+m3aCRDRjNSNEjkWDi5fvr21F3Q1jcz0HAO7kuchatdKUb7DMlnoAkELi1+0FtmTLye73HJQlfGYjmchVo+Ws0xtJSKDzYf+9XqbsjhQC7PYDJgzFLknMPZVK8RuVurh77ivfhNcRpOoPAmRGA4EAX8pqVPRbwmJpdAGS6IQYt2SErFDut0SNRqumKDUlIzQHRGksElleLOd1KiJSAKFpWk+SdY8BEj4BMDAhhHQAQW1+HMtbGOMUAJADGF8TxY2/eJ5PliNQGP8bfJT7kSuiUxcAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/alpha.e6ddc245.png\";","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=style&index=0&id=3d9161dc&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mobileTest.vue?vue&type=style&index=0&id=5b783e87&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./banner.vue?vue&type=style&index=0&id=293a7042&scoped=true&lang=css&\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAb5JREFUWEftliFIJVEUhr8fDQaDwWARtBkNC6ugqChoNQiGDQZhLYKbLArbZRHDwsIaDQbFVwQFQUFBZYvRYFB0u8FgWDjLkXnwGN68e2f0wQtzYMIw95zz3f+ec8+IFjG1CAclSPokSkVKRULdWbhGzKwDmAa+AH3ADrAn6W8oab3vuUDMrB0YA+aTp7NO0BNgF9iX9BwLFQViZp9rkvdEBn8FjoBtSYchnyCImXUBj0C93Yfi+/cnSb2hhTEgrsYDsAosAV4bMXYD/PC6ASaBY0n/shwbgpjZJ+AP4EG/A9cRQBVgK/H5CqwAfpyjki6KgowDpzXOWUAvXgvAT6AtSb6QUm9C0tlHgVTj1ALNAK6CH6Hv3t/rWVNAqokqkmbN7BIYChROU0HuJfWbmUVUbwmSFqllFBmWdFW0a/w2PQCmMgLE1IjPmzVJ3tqZFrxZ3dPMfMJuAt2pSI1A/Bb9BazHDL8okATGZ84GsFgDkwXiw+6bpNuIbnpbEg1SDWhmI8BvYABIg9wBy5IcJJflBknU8f8SH4KDkubM7Dy5XbcaDbZ310iurRVcXEiRgrkaupUgaXlKRUpFQp32H7N4qiPhR6kgAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/bg-left.af7da41a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAr5JREFUWEftlT1oE2EYx//P3dXWLHZTsUOgQdM2ttepTRxsNt0cHLN0slBBCwUDOkQstAXBOggKDgodHAR1c2tBTBM7+LamafEDA0KtWwT7QXJ9H3nbnKRH0msvVYrkloN733ue3/N/vgiH5KFDwoE6iDMTdUXqirh1p+caCYV6jm/q+lUiGlBOCJgkyxrLZNI/3JxWOt83iAJgw4gzY4AITQx+SYwNEF1mhkWEh16A9gwSCEVaGwzEiSmmAADkpbQuLs6nUyrC1o5woLGBbhIo5gXIFeR0V/iUQTRiOwDxMzAMIoopGGYeWfu5/CCXy21UA1rF6u2cEPndUuYK0t4V+UBEIWa8RrHQn83OriiD7WbEJNA9AH0MzknIxJJIPbWdlRQaJaiUcSY7l+wGYFWD2RUkaPb6dehf7Z9VPVhkJT6+fzdnfzvTGb6ga6QcmgwWkjm+QetpH3zXCHQdQLO6W0Ch+5OYFTWBSMghAh2zDVcAMoJmb0xn7Q6IWkqRG+qeZE7rpI1uYjO6JFLTNYEwuD8rkk/8ptlcHqkNJIvGryMGbqk62nLE/JwJ41mRFEGzt0+HPnWgIHY0TiClgOoUJp4sFHn8y8LMZ/vuXwXZAcS+NwQYXCxG7UIul/+fgCiHHea5KfVeEG+jlfL/f4EEOntaGjXjm4ScWBQzQ5UidlOkrStyQyMak5LPLs4nM566pjS4XhDokpoRABJZkXxVbqwaSLA7fF5nLaEGHoDpaqmzbblOVgBGmxke1FiLg3DCCeQEcQDkGTyxll8et1eAZ0X+dIjf33S0+eQVjWlYDS0bqDTkIMF3NdBwSYFtAKzdd9sx+1HEGcTWFNWgqU0b2HHIWJEkx9bz3x+5KeA0upfUVFNze6xDH2TmJiZ+7AWgFkV22+aez2pRxLPTSj/WQQ6yWOupOVAFDm1qfgOySYkyIveaXgAAAABJRU5ErkJggg==\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('mobileTest',{attrs:{\"hidden\":_vm.screen}}),_c('main-view'),_c('Box'),_c('HandShake',{attrs:{\"touch\":_vm.flag}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"mainview\"}},[_c('div',{attrs:{\"id\":\"container\"}}),_c('o2vr',{attrs:{\"obj\":_vm.obj}}),_c('Play',{attrs:{\"floor\":_vm.obj.floor_name,\"wall\":_vm.obj.wall_name,\"speed\":6000}}),_c('Function',{attrs:{\"obj\":_vm.obj,\"vip\":_vm.vip}}),(_vm.id == 4040 || _vm.id == 4095 || _vm.id == 4062 || _vm.id == 4179 || _vm.id == 3989)?_c('Login1'):_c('Login',{attrs:{\"flag1\":_vm.obj.multi,\"room_id\":_vm.id}}),_c('client')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.obj)?_c('div',{ref:\"load\",staticClass:\"loading\"},[(_vm.obj.banner)?_c('div',{staticClass:\"loading1\"},[_c('img',{staticClass:\"banner\",attrs:{\"src\":_vm.obj.banner}}),_c('div',{staticClass:\"shadow\"})]):_c('div',{staticClass:\"loading1\"}),_c('div',[(_vm.vflag)?_c('div',{staticClass:\"line\"},[_c('div',{staticClass:\"full\",style:('width:' + _vm.width + '%')}),_c('div',{staticClass:\"loadmsg\"},[_vm._v(_vm._s(_vm.loading_msg))])]):_c('div',{staticClass:\"btn\",on:{\"click\":_vm.close}},[_vm._v(\"点击进入场景\")])]),(_vm.obj.logo)?_c('img',{staticClass:\"logo\",attrs:{\"src\":_vm.obj.logo.preview}}):_vm._e(),_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.sceneTitle))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./banner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./banner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./banner.vue?vue&type=template&id=293a7042&scoped=true&\"\nimport script from \"./banner.vue?vue&type=script&lang=js&\"\nexport * from \"./banner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./banner.vue?vue&type=style&index=0&id=293a7042&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"293a7042\",\n null\n \n)\n\nexport default component.exports","import axios from \"axios\";\r\nimport QS from \"qs\";\r\n\r\n// axios.defaults.baseURL = \"http://localhost/vryun/php/\";\r\naxios.defaults.baseURL = \"https://api.wh12345.net/vryun/\";\r\n\r\naxios.defaults.headers.post[\"Content-Type\"] =\r\n \"application/x-www-form-urlencoded; charset=UTF-8\";\r\n// axios.defaults.headers.post['token'] = \"76faf1a8f39fece2bc988612ddff11c340bca638fce2e508c5bb82d398a0639d\"\r\n\r\nexport function get(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get(url, {\r\n params: params,\r\n })\r\n .then((res) => {\r\n resolve(res.data);\r\n })\r\n .catch((err) => {\r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\nexport function post(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(url, QS.stringify(params))\r\n .then((res) => {\r\n resolve(res.data);\r\n })\r\n .catch((err) => {\r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\nexport function getuser(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(\r\n url,\r\n {\r\n params: params,\r\n },\r\n {\r\n headers: {\r\n \"XX-Token\": localStorage.getItem(\"token\"),\r\n \"XX-Device-Type\": \"pc\",\r\n },\r\n }\r\n )\r\n .then((res) => {\r\n if (res.data.code == 10001) {\r\n // alert(\"登录已失效\");\r\n // window.location.href = \"http://o2vr.net/upload/3D_editor/testLogin/\";\r\n } else resolve(res.data);\r\n })\r\n .catch((err) => {\r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\nexport default axios.create({\r\n baseURL: \"\",\r\n timeout: 10000,\r\n});\r\n","import { get, post, getuser } from \"./request\";\r\n\r\nexport const getList = (params) => get(\"/media.php\", params); //获取素材\r\nexport const deleteList = (params) => post(\"/media_delete.php\", params); //删除\r\nexport const beforeUpload = (params) => post(\"/media_exist.php\", params); //上传之前判断是否重复\r\nexport const editName = (params) => post(\"/media_name_edit.php\", params); //修改素材名\r\nexport const mediaCount = (params) => post(\"/media_counts.php\", params); //获取素材总数\r\nexport const getScene = (params) => get(\"/get_solo_scene.php\", params); //获取单个用户场景信息\r\nexport const getUserInfo = (params) =>\r\n getuser(\"https://api.khfw430.com/api/user/profile/userInfo\", params); //通过token获取用户信息\r\nexport const searchScene = (params) => post(\"/media_search.php\", params); //搜索素材\r\nexport const modifyModel = (params) => get(\"/template_update.php\", params); //修改模型\r\nexport const checkScene = (params) => get(\"/check_solo_scene.php\", params); //验证场景用户信息\r\nexport const scene_update = (params) => post(\"/scene_update.php\", params); //改变场景\r\nexport const scene_psd = (params) => post(\"/scene_psd.php\", params); //设置展厅访问密码\r\nexport const get_scene_interacts = (params) => get(\"/get_scene_interacts.php\", params); //设置展厅访问密码\r\nexport const get_solo_media = (params) => get('/get_solo_media.php', params)\r\nexport const set_scene_thumbs = (params) => get('/set_scene_thumbs.php', params)\r\nexport const set_scene_comment = (params) => get('/set_scene_comment.php', params)\r\nexport const get_scene_user = (params) => get('/get_scene_user.php', params) //\r\n\r\nexport const rtc_timer = (params) => get('/rtc_timer.php', params)\r\n\r\nexport const add_popular = (params) => get('/add_popular.php', params)\r\n\r\nexport const search_time = (params) => get('/search_time.php', params)\r\n\r\nexport const update_time = (params) =>\r\n get(\"https://api.mvpmeta.com/api/vryun/public/update_time\", params)\r\n\r\nexport const qrcode = (params) =>\r\n get(\"https://api.mvpmeta.com/api/vryun/public/qrcode\", params) //小程序二维码\r\n\r\nexport const statistics = (params) => get(\"https://api.mvpmeta.com/api/vryun/public/statistics\", params)//记录\r\n\r\n\r\n\r\n\r\n\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\"div\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nexport default new Vue();","import * as THREE from 'three/build/three.module';\r\nclass player {\r\n constructor() {\r\n console.log(\"new player\");\r\n this.target = new THREE.Vector3();\r\n this.id = 0;\r\n this.name = \"\";\r\n this.sex = 0;\r\n this.auth = 1;\r\n this.obj;\r\n this.accInfo = [0,0,0,1];\r\n this.dicBone = {};\r\n this.arrBone = [];\r\n this.mixer;\r\n this.modelIdx = 0;\r\n this.isNPC = false;\r\n this.bodyMat;\r\n this.bodyColor= \"#F66C47\";\r\n this.hairMat;\r\n this.hairColor= \"#191919\";\r\n this.arrAccObj = [];\r\n this.boneInverses = [];\r\n this.onStateChg = [];\r\n this.o2 = document.o2;\r\n }\r\n static arrPrebAcc = [];\r\n static onModelLoad = [];\r\n static arrAccName = [\r\n \"Accessory\",\r\n \"Hair\",\r\n \"Hat\",\r\n \"Suit\"\r\n ];\r\n static accNum = player.arrAccName.length;\r\n static modelPreb = {};\r\n static modelUrl = [\r\n [\r\n \"\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_NPC_01.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447128&Signature=bQRwSRgmXm7ydH6SV1gusorCalo%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_NPC_02.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447144&Signature=DjgM3pT8c2WkGJo15QXZ%2B%2BqIvDw%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_NPC_03.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447162&Signature=V0vy%2FD%2By3dCnEHhqJ8AmMOTyi8Q%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_NPC_04.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447183&Signature=I45bWl4ZCHjGgea49lYsHQWyQ7o%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_NPC_05.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447198&Signature=hNmmLaT%2BA%2FZvYn0QZPjeAL5lMVA%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_NPC_01.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447222&Signature=ApUvcHoevXUMHfz2vH5sQIYIZRs%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_NPC_02.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447241&Signature=ofU0YFC%2FwbkWC1P0PlnbvFrUzvA%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_NPC_03.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447260&Signature=oDD625778uMMkTed%2BHjE2SxOgBk%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_NPC_04.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447276&Signature=BNT8HbzR63MV4AnjTMnZqK8H4hw%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_NPC_05.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447294&Signature=TMUavF%2FNFAj93Neu0LbUMKl262Q%3D\"\r\n ],\r\n [\r\n \"\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_01.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=3601648446852&Signature=x2ebSHeELVAZhLOsZSzqgMrmfZc%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_02.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648446876&Signature=52hyy6YtmxKmzMYydbOkE8ln4%2F8%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_03.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648446902&Signature=2u4pUleL8H4DQ7IAxh3w%2BZq1Plc%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_04.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648446919&Signature=EbJKt1%2Fjzm%2BW4qcMF%2FHRMMSUBtw%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_05.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648446940&Signature=ZuSwlP7Zy12k67k5ipSfS6WQufc%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Male_06.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648446958&Signature=72hrOKqdmgoomj6tIpTTuHZOCOM%3D\"\r\n ], \r\n [\r\n \"\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_01.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447015&Signature=8VwlpuIhtb%2BBcferKltnzbI6g5A%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_02.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447032&Signature=aDtLptPcmAGi4t9%2BHh3dUHvB6wE%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_03.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447050&Signature=uVUd5orHcTJPz3gUCA9msUgsrjw%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_04.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447071&Signature=99%2FV4fPLk6OoY94VeEKO0FisEp8%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_05.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=3601648447088&Signature=%2FnlmhWiLdSvzXGWYmMYlU%2BIbkhI%3D\",\r\n \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/Female_06.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447106&Signature=RkR%2BmkjdaX4dFCl53yjqCuu%2B%2FPA%3D\"\r\n ],\r\n ];\r\n static tempUrl = \"https://o2res.oss-cn-beijing.aliyuncs.com/istation/models/%E5%9D%90%E5%A7%BF.zip?OSSAccessKeyId=LTAI4G4zQbTdurvEbr1rR9zS&Expires=36001648447811&Signature=1TWSBzH4KQBZxPGi8GaesxF3Qho%3D\";\r\n static handTexPath = require(\"./assets/newImg/举手.png\");\r\n static handMat;\r\n static suitMaxNum = 5;\r\n\r\n initPlayer(info, action) {\r\n this.setPlayerInfo(info);\r\n this.setModel(this.modelIdx,()=>{\r\n //this.combineMesh();\r\n //this.boneInverses = this.accMesh.skeleton.boneInverses;\r\n //console.log(this.boneInverses);\r\n if(!this.isNPC){\r\n this.initAcc();\r\n this.setHairColor();\r\n this.setBodyColor();\r\n }\r\n this.obj.name = this.name;\r\n this.namePanel = player.add_lable_to_char(this.obj,this.name,this.auth);\r\n this.handPanel = player.add_hand_to_char(this.obj);\r\n this.handPanel.visible = false;\r\n console.log(this);\r\n action(this);\r\n });\r\n }\r\n resetPlayer(info){\r\n this.isTemp = false;\r\n if(this.setPlayerInfo(info)){\r\n if(this.arrAccObj && this.arrAccObj.length > 0){\r\n this.arrAccObj = [];\r\n }\r\n this.setModel(this.modelIdx,()=>{\r\n if(!this.isNPC)this.initAcc();\r\n this.o2.scene.add(this.obj);\r\n let clipName = \"\";\r\n if(this.state == \"sit\"){\r\n clipName = \"标准坐\";\r\n }\r\n else{\r\n clipName = this.state;\r\n }\r\n this.playClip(clipName,true);\r\n //this.o2.play_skeleton_clip(this.obj,\"idle\",true);\r\n console.log(this);\r\n });\r\n }\r\n else if(!this.isNPC){\r\n this.initAcc();\r\n }\r\n }\r\n setPlayerInfo(info){\r\n let isChgModel= false;\r\n if(info){\r\n if(info.auth){\r\n this.auth = parseInt(info.auth);\r\n }\r\n if(this.auth > 3){\r\n this.isNPC = true;\r\n }\r\n if(info.name){\r\n this.name = info.name;\r\n }\r\n if(info.id != undefined){\r\n this.id = parseInt(info.id);\r\n }\r\n if(info.sex != undefined){\r\n this.sex = info.sex;\r\n }\r\n if(info.accInfo){\r\n let arrStr = info.accInfo.split(\"-\");\r\n if(arrStr && arrStr.length == player.arrAccName.length){\r\n for (let i = 0; i < arrStr.length; i++) {\r\n if(i < this.accInfo.length){\r\n this.accInfo[i] = parseInt(arrStr[i]);\r\n }\r\n }\r\n }\r\n }\r\n if(info.hairColor){\r\n this.setHairColor(info.hairColor);\r\n // this.hairColor = info.hairColor;\r\n // if(this.hairMat){\r\n // this.hairMat.color.set(this.hairColor);\r\n // }\r\n }\r\n if(info.bodyColor){\r\n this.setBodyColor(info.bodyColor);\r\n // this.bodyColor = info.bodyColor;\r\n // if(this.bodyMat){\r\n // this.bodyMat.color.set(this.bodyColor);\r\n // }\r\n }\r\n }\r\n let type = player.arrAccName.indexOf(\"Suit\");\r\n let modelIdx = this.accInfo[type];\r\n if(!this.isNPC){\r\n for (let i = 0; i < this.sex; i++) {\r\n if(i < player.modelUrl.length){\r\n modelIdx += player.modelUrl[i].length;\r\n }\r\n }\r\n }\r\n isChgModel = (this.modelIdx != modelIdx);\r\n this.modelIdx = modelIdx;\r\n return isChgModel;\r\n }\r\n initAcc() {\r\n if (player.arrPrebAcc[this.modelIdx]) {\r\n let prebAcc = player.arrPrebAcc[this.modelIdx];\r\n if (prebAcc && player.arrAccName) {\r\n for (let i = 0; i < player.arrAccName.length; i++) {\r\n let name = player.arrAccName[i];\r\n if(name == \"Suit\")break;\r\n if (prebAcc[name] && prebAcc[name].length) {\r\n let idx = this.accInfo[i];\r\n //let len = prebAcc[name].length;\r\n //this.accInfo[i] = 0;\r\n this.setAcc(i, idx);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n initPrebAcc(modelIdx, obj) {\r\n if (player.arrPrebAcc[modelIdx]) return;\r\n player.arrPrebAcc[modelIdx] = {};\r\n let arrAccObj = player.arrPrebAcc[modelIdx];\r\n if (obj) {\r\n //console.log(this.obj);\r\n obj.children.forEach(e => {\r\n let arrStr = e.name.split(\"_\");\r\n if (arrStr && arrStr.length >= 2) {\r\n for (let i = 0; i < player.arrAccName.length; i++) {\r\n const name = player.arrAccName[i];\r\n if(name == \"Suit\")break;\r\n if (arrStr[0] == name) {\r\n if (arrAccObj[name] == undefined) {\r\n arrAccObj[name] = [];\r\n }\r\n let idx = Number.parseInt(arrStr[1]);\r\n // if(i < this.accInfo.length){\r\n // e.visible = (idx == this.accInfo[i]);\r\n // }\r\n if (arrAccObj[name][idx] == undefined) {\r\n arrAccObj[name][idx] = {};\r\n arrAccObj[name][idx].idx = idx;\r\n arrAccObj[name][idx].arrObj = [];\r\n }\r\n arrAccObj[name][idx].arrObj.push(e);\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n clonePreb() {\r\n if (player.modelPreb[this.modelIdx]) {\r\n let pos;\r\n let rot;\r\n if(this.obj){\r\n pos = this.obj.position;\r\n rot = this.obj.rotation;\r\n if(this.name){\r\n this.obj.remove(this.namePanel);\r\n }\r\n this.o2.scene.remove(this.obj);\r\n this.obj = null;\r\n }\r\n this.obj = this.cloneObj(player.modelPreb[this.modelIdx].obj);\r\n this.mixer = new THREE.AnimationMixer(this.obj);\r\n this.mixer.addEventListener(\"finished\", e => {\r\n if(this.curAction && this.lastAction && this.curAction != this.lastAction){\r\n this.curAction.time = 0;\r\n this.curAction.enabled = true;\r\n this.curAction.play();\r\n this.lastAction.enabled = true;\r\n this.curAction.crossFadeTo(this.lastAction,0.2);\r\n this.lastAction.play();\r\n this.curAction = this.lastAction;\r\n }\r\n });\r\n this.clips = player.modelPreb[this.modelIdx].clips;\r\n this.o2.skeletons.push({ name: this.name, obj: this.obj, clips: this.clips, mixer: this.mixer });\r\n this.obj.traverse(child => {\r\n if (child.name.indexOf(\"Body\") != -1) {\r\n if(this.bodyMat == undefined){\r\n //this.bodyMat = new THREE.MeshBasicMaterial({map:child.material.map});\r\n this.bodyMat = child.material.clone();\r\n }\r\n child.material = this.bodyMat;\r\n }\r\n else if (child.name.indexOf(\"Shadow\") != -1) {\r\n child.visible = true;\r\n child.material.transparent = true;\r\n }\r\n });\r\n if(pos && rot && this.namePanel){\r\n this.obj.add(this.namePanel);\r\n this.obj.position.set(pos.x,pos.y,pos.z);\r\n this.obj.rotation.set(rot.x,rot.y,rot.z);\r\n }\r\n // this.initAcc(accInfo);\r\n // console.log(this.obj);\r\n // if (action) action(this);\r\n }\r\n }\r\n \r\n setModel(modelIdx, action){\r\n if (player.modelPreb[modelIdx]) {\r\n //this.destroyObj();\r\n let preb = player.modelPreb[modelIdx];\r\n if (!preb.obj) {\r\n player.onModelLoad.push((idx) => {\r\n if (modelIdx == idx) {\r\n this.clonePreb();\r\n if(action)action();\r\n }\r\n });\r\n }\r\n else{\r\n this.clonePreb();\r\n if(action)action();\r\n }\r\n }\r\n else {\r\n player.modelPreb[modelIdx] = {};\r\n let url;\r\n let idx = 0;\r\n if(this.sex < player.modelUrl.length){\r\n idx = modelIdx;\r\n let type = this.isNPC?0:this.sex;\r\n\r\n for (let i = 0; i < type; i++) {\r\n idx -= player.modelUrl[i].length;\r\n }\r\n url = player.modelUrl[type][idx];\r\n }\r\n if(!url)return;\r\n let promise = this.o2.import_object_url(url);\r\n promise.then((obj3) => {\r\n obj3.children.forEach(e => {\r\n if(e.material){\r\n e.material.vertexColors = THREE.NoColors;\r\n //e.material.color.multiplyScalar(0.6);\r\n }\r\n if(e.name.indexOf(\"Cloth\") != -1){\r\n e.material.color.multiplyScalar(0.8);\r\n }\r\n });\r\n player.modelPreb[modelIdx].obj = obj3;\r\n if(!this.isNPC)this.initPrebAcc(modelIdx, obj3);\r\n //console.log(player.arrPrebAcc);\r\n //console.log(obj3);\r\n let arr = this.o2.skeletons;\r\n //player.modelPreb[sex].clips = arr[0].clips;\r\n if (arr) {\r\n for (let i = 0; i < arr.length; i++) {\r\n let e = arr[i];\r\n if (e.obj == obj3) {\r\n player.modelPreb[modelIdx].clips = e.clips;\r\n break;\r\n }\r\n }\r\n }\r\n this.clonePreb();\r\n if(action)action();\r\n player.onModelLoad.forEach(e => {\r\n e(modelIdx);\r\n });\r\n });\r\n }\r\n }\r\n setState(clipName){\r\n let state;\r\n if(clipName == \"标准坐\"){\r\n state = \"sit\";\r\n //this.state = \"sit\";\r\n }\r\n else if(clipName == \"idle\" || clipName == \"walk\"){\r\n state = clipName;\r\n //this.state = clipName;\r\n }\r\n if(state && state != this.state){\r\n this.state = state;\r\n if(this.onStateChg && this.onStateChg.length > 0){\r\n this.onStateChg.forEach(e=>{e(state)});\r\n }\r\n }\r\n if(this.state != \"sit\" && this.handPanel){\r\n this.handPanel.visible = false;\r\n }\r\n }\r\n setSex(sex){\r\n if(sex != this.sex){\r\n this.sex = sex;\r\n //let type = player.arrAccName.indexOf(\"Suit\");\r\n this.resetPlayer();\r\n }\r\n \r\n }\r\n setBodyColor(rgb) {\r\n if(this.isNPC)return;\r\n if(rgb != undefined)this.bodyColor = rgb;\r\n if (this.bodyMat) {\r\n this.bodyMat.color.set(this.bodyColor);\r\n this.bodyMat.color.multiplyScalar(0.8);\r\n }\r\n }\r\n setHairColor(rgb){\r\n if(this.isNPC)return;\r\n if(rgb != undefined)this.hairColor = rgb;\r\n if(this.hairMat){\r\n this.hairMat.color.set(this.hairColor);\r\n this.hairMat.color.multiplyScalar(0.8);\r\n }\r\n }\r\n setAcc(type, idx) {\r\n if (type >= 0 && type < player.arrAccName.length) {\r\n let name = player.arrAccName[type];\r\n let prebAcc = player.arrPrebAcc[this.modelIdx];\r\n //let curIdx = this.accInfo[type];\r\n if (prebAcc && prebAcc[name]) {\r\n if (prebAcc[name].length > idx) {\r\n let accs = prebAcc[name];\r\n if (accs) {\r\n if(player.arrAccName[type] == \"Hat\"){\r\n let hairType = player.arrAccName.indexOf(\"Hair\");\r\n if(this.accInfo[hairType] > 0&& idx > 0){\r\n this.hairIdx = this.accInfo[hairType];\r\n this.setAcc(hairType,0);\r\n }\r\n else if(this.hairIdx > 0 && idx == 0){\r\n this.accInfo[type] = idx;\r\n this.setAcc(hairType,this.hairIdx);\r\n }\r\n }\r\n else if(player.arrAccName[type] == \"Hair\"){\r\n let hatType = player.arrAccName.indexOf(\"Hat\");\r\n if(this.accInfo[hatType] > 0 && idx > 0){\r\n this.hairIdx = idx;\r\n return;\r\n }\r\n }\r\n let acc = this.arrAccObj[type];\r\n if((acc && (acc.idx != idx || acc.modelIdx != this.modelIdx)) || !acc){\r\n if (type < this.accInfo.length && acc) {\r\n let arr = acc.arrObj;\r\n if (arr && arr.length > 0) {\r\n arr.forEach(e => {\r\n this.obj.remove(e);\r\n });\r\n }\r\n }\r\n if (accs.length > idx && idx >= 0) {\r\n let newAcc = this.cloneAcc(type, idx);\r\n this.arrAccObj[type] = newAcc;\r\n this.accInfo[type] = idx;\r\n }\r\n } \r\n }\r\n }\r\n }\r\n else if(name == \"Suit\"){\r\n let curIdx = this.accInfo[type];\r\n if(curIdx != idx){\r\n this.accInfo[type] = idx;\r\n this.resetPlayer();\r\n }\r\n }\r\n }\r\n }\r\n cloneAcc(type, idx) {\r\n if (player.arrPrebAcc[this.modelIdx]) {\r\n let prebAcc = player.arrPrebAcc[this.modelIdx];\r\n if (type < player.arrAccName.length && type >= 0) {\r\n let newAcc;\r\n if(!this.arrAccObj[type]){\r\n newAcc = {};\r\n }\r\n else{\r\n newAcc = this.arrAccObj[type];\r\n }\r\n newAcc.type = type;\r\n newAcc.idx = idx;\r\n newAcc.modelIdx = this.modelIdx;\r\n newAcc.arrObj = [];\r\n let name = player.arrAccName[type];\r\n if (prebAcc[name] && prebAcc[name].length > idx && idx >= 0) {\r\n let acc = prebAcc[name][idx];\r\n if (acc && acc.arrObj.length) {\r\n acc.arrObj.forEach(e => {\r\n let obj = e.clone();\r\n if(obj.name.indexOf(\"Hair\") != -1){\r\n if(this.hairMat == undefined){\r\n //this.hairMat = new THREE.MeshBasicMaterial({map:obj.material.map});\r\n this.hairMat = obj.material.clone();\r\n }\r\n obj.material = this.hairMat;\r\n this.setHairColor();\r\n }\r\n if (e.type == \"SkinnedMesh\") {\r\n let newArr = [];\r\n e.skeleton.bones.forEach(item => {\r\n newArr.push(this.dicBone[item.name]);\r\n });\r\n let arr = e.skeleton.boneInverses;\r\n obj.bind(new THREE.Skeleton(newArr, arr), e.bindMatrix);\r\n }\r\n this.obj.add(obj);\r\n newAcc.arrObj.push(obj);\r\n });\r\n return newAcc;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getPlayerInfo() {\r\n if (!this.playerInfo) {\r\n this.playerInfo = {};\r\n }\r\n this.playerInfo.id = this.id;\r\n this.playerInfo.name = this.name;\r\n this.playerInfo.sex = this.sex;\r\n this.playerInfo.accInfo = \"\";\r\n this.playerInfo.auth = this.auth;\r\n for (let i = 0; i < this.accInfo.length; i++) {\r\n if(i {\r\n newArr.push(this.dicBone[item.name]);\r\n });\r\n let arr = preb.children[j].skeleton.boneInverses;\r\n skinmesh.bind(new THREE.Skeleton(newArr, arr),\r\n preb.children[j].bindMatrix);\r\n obj.add(skinmesh);\r\n }\r\n else if (preb.children[j].type != \"Bone\") {\r\n let c = preb.children[j].clone();\r\n obj.add(c);\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n combineMesh(){\r\n if(this.obj){\r\n if(this.accMesh){\r\n this.accMesh.geometry.dispose();\r\n this.obj.remove(this.accMesh);\r\n this.accMesh = null;\r\n }\r\n let vertices = [];\r\n let normals = [];\r\n let skinIndices = [];\r\n let skinWeights = [];\r\n // if(!this.boneInverses)\r\n // this.boneInverses = [];\r\n let arrUV = [];\r\n let arrUV2 = [];\r\n let matrices = [];\r\n //console.log(this.arrBone);\r\n //let mat;\r\n // let temp = this.obj.matrix.clone();\r\n // this.obj.matrix = this.obj.matrix.identity ();\r\n console.log(this.obj.matrix);\r\n let pos = new THREE.Vector3();\r\n this.obj.children.forEach(c => {\r\n if(c.type == \"SkinnedMesh\" \r\n && c.name.indexOf(\"Body\") == -1\r\n && c.name.indexOf(\"Eye\") == -1\r\n && c.name.indexOf(\"Hair\") == -1){\r\n if(!this.combineMat){\r\n this.combineMat = new THREE.MeshBasicMaterial({map:c.material.map});\r\n }\r\n let poses = c.geometry.attributes.position.array;\r\n for (let i = 0; i < poses.length; i+=3) {\r\n pos.set(poses[i],poses[i+1],poses[i+2]);\r\n pos.applyMatrix4(c.matrix);\r\n vertices.push(pos.x);\r\n vertices.push(pos.y);\r\n vertices.push(pos.z);\r\n }\r\n let arrNormal = c.geometry.attributes.normal.array;\r\n arrNormal.forEach(e => {normals.push(e)});\r\n let uv = c.geometry.attributes.uv.array;\r\n uv.forEach(e => {\r\n arrUV.push(e);\r\n arrUV2.push(0);\r\n });\r\n // let uv2 = c.geometry.attributes.uv2.array;\r\n // uv2.forEach(e => {arrUV2.push(e)});\r\n //poses.forEach(e=>{vertices.push(e)});\r\n let bs = c.skeleton.bones;\r\n let idxs = c.geometry.attributes.skinIndex.array;\r\n idxs.forEach(e=>{\r\n if(e < bs.length){\r\n let bone = bs[e];\r\n let idx = this.arrBone.indexOf(bone);\r\n skinIndices.push(idx);\r\n }\r\n });\r\n let wgts = c.geometry.attributes.skinWeight.array;\r\n wgts.forEach(e=>{skinWeights.push(e)});\r\n let arrMatrix = c.skeleton.boneMatrices;\r\n arrMatrix.forEach(e => {\r\n matrices.push(e);\r\n });\r\n // let bms = c.bindMatrix;\r\n // bms.forEach(e=>{bindMatrix.push(e)});\r\n c.visible = false;\r\n c.material = this.combineMat;\r\n \r\n }\r\n });\r\n let geometry = new THREE.BufferGeometry();\r\n geometry.setAttribute(\"position\",new THREE.Float32BufferAttribute(vertices,3));\r\n geometry.setAttribute(\"normal\",new THREE.Float32BufferAttribute(normals,3));\r\n geometry.setAttribute( 'skinIndex', new THREE.Uint16BufferAttribute(skinIndices, 4 ) );\r\n geometry.setAttribute( 'skinWeight', new THREE.Float32BufferAttribute(skinWeights, 4 ) );\r\n geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute(arrUV, 2 ) );\r\n geometry.setAttribute( 'uv2', new THREE.Float32BufferAttribute(arrUV2, 2 ) );\r\n let mesh = new THREE.SkinnedMesh(geometry,this.combineMat);\r\n mesh.bind(new THREE.Skeleton(this.arrBone));\r\n if(this.boneInverses && this.boneInverses.length == this.arrBone.length){\r\n mesh.skeleton.boneInverses = this.boneInverses;\r\n }\r\n this.accMesh = mesh;\r\n mesh.name = \"combineMesh\";\r\n this.obj.add(mesh);\r\n console.log(mesh);\r\n //this.obj.matrix = temp;\r\n //this.o2.play_skeleton_clip(this.obj,\"ide\",true);\r\n }\r\n }\r\n static add_lable_to_char(object, name,auth) {\r\n let canvas = document.createElement(\"canvas\");\r\n canvas.width = 160;\r\n canvas.height = 32;\r\n const drawingContext = canvas.getContext(\"2d\");\r\n drawingContext.fillStyle = \"#000000\";\r\n drawingContext.globalAlpha = 0.1;\r\n drawingContext.fillRect(0, 0, 160, 32);\r\n drawingContext.globalAlpha = 1;\r\n if(auth == 4){\r\n drawingContext.fillStyle = \"#00FF00\";\r\n }\r\n else if(auth == 5){\r\n drawingContext.fillStyle = \"#FF9300\";\r\n }\r\n else{\r\n drawingContext.fillStyle = \"#ffffff\";\r\n }\r\n drawingContext.font = \"24px Georgia\";\r\n drawingContext.textAlign = \"center\";\r\n drawingContext.fillText(name, 80, 24);\r\n\r\n let map = new THREE.CanvasTexture(canvas);\r\n let sprite = new THREE.Sprite(\r\n new THREE.SpriteMaterial({ map: map, color: \"#ffffff\" })\r\n );\r\n sprite.position.set(0, 2000, 0);\r\n sprite.scale.set(600, 120, 1);\r\n sprite.material.depthWrite = false;\r\n object.add(sprite);\r\n return sprite;\r\n }\r\n static add_hand_to_char(obj){\r\n let sprite = new THREE.Sprite();\r\n sprite.scale.set(600,600,1);\r\n obj.add(sprite);\r\n sprite.position.set(0,2500,0);\r\n if(player.handMat == undefined){\r\n player.handMat = new THREE.SpriteMaterial();\r\n player.handMat.depthWrite = false;\r\n player.handMat.depthTest = false;\r\n let texLoader = new THREE.TextureLoader();\r\n texLoader.load(player.handTexPath,tex=>{\r\n player.handMat.map = tex;\r\n sprite.material = player.handMat;\r\n });\r\n }\r\n else{\r\n sprite.material = player.handMat;\r\n }\r\n return sprite;\r\n }\r\n static createTempPlayer(id,name,action){\r\n player.loadTempModel(obj=>{\r\n let p = new player();\r\n p.state = \"sit\";\r\n p.id = id;\r\n p.name = name;\r\n p.isTemp = true;\r\n p.obj = obj.clone();\r\n p.handPanel = player.add_hand_to_char(p.obj);\r\n p.handPanel.visible = false\r\n p.namePanel = player.add_lable_to_char(p.obj,name);\r\n if(action)action(p);\r\n });\r\n }\r\n static loadTempModel(action){\r\n if(!player.tempModel){\r\n let promise = document.o2.import_object_url(player.tempUrl);\r\n promise.then(obj=>{\r\n player.tempModel = obj;\r\n if(action)action(obj);\r\n });\r\n }\r\n else{\r\n if(action)action(player.tempModel);\r\n }\r\n }\r\n playClip(name,loop,clamp){\r\n let clip = this.clips[name];\r\n if (this.mixer && clip) {\r\n this.setState(name);\r\n let action = this.mixer.clipAction(clip, this.obj);\r\n if (this.curAction) {\r\n //this.curAction.enabled = true;\r\n //this.curAction.weight = 0;\r\n this.curAction.crossFadeTo(action, 0.2);\r\n if(this.curAction.loop == THREE.LoopRepeat){\r\n this.lastAction = this.curAction;\r\n }\r\n }\r\n action.enabled = true;\r\n this.curAction = action;\r\n // AnimationAction.timeScale = 1; //默认1,可以调节播放速度\r\n if (loop) {\r\n action.loop = THREE.LoopRepeat; //不循环播放\r\n }\r\n else {\r\n action.time = 0;\r\n action.loop = THREE.LoopOnce;\r\n action.clampWhenFinished=clamp;\r\n }\r\n action.play();//播放动画\r\n }\r\n }\r\n destroyObj(){\r\n if(this.obj){\r\n this.obj.children.forEach(c => {\r\n if(c.name.indexOf(\"Body\") != -1){\r\n c.material.dispose();\r\n }\r\n else if(c.name.indexOf(\"Hair\") != -1){\r\n c.material.dispose();\r\n }\r\n else if(c.name.indexOf(\"combineMesh\") != -1){\r\n c.geometry.dispose();\r\n }\r\n });\r\n this.o2.scene.remove(this.obj);\r\n this.obj = null;\r\n }\r\n }\r\n destroy(){\r\n // if(this.bodyMat){\r\n // this.bodyMat.dispose();\r\n // }\r\n // if(this.hairMat){\r\n // this.hairMat.dispose();\r\n // }\r\n if(this.namePanel){\r\n this.namePanel.material.dispose();\r\n }\r\n this.o2.scene.remove(this.obj);\r\n this.obj = null;\r\n //this.destroyObj();\r\n }\r\n}\r\nexport { player }\r\n","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./playNew_repair.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./playNew_repair.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./playNew_repair.vue?vue&type=template&id=06b82180&scoped=true&\"\nimport script from \"./playNew_repair.vue?vue&type=script&lang=js&\"\nexport * from \"./playNew_repair.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06b82180\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fun\"},[(_vm.obj.popularFlag)?_c('div',{staticClass:\"popular\"},[_vm._v(\"当前人气值: \"+_vm._s(_vm.popular))]):_vm._e(),_c('transition',{attrs:{\"name\":\"custom-classes-transition\",\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.flag && _vm.mobile)?_c('div',{staticClass:\"scroll\",style:(_vm.viewList.length > 8 ? 'justify-content: flex-start' : '')},[_c('div',{staticClass:\"viewList\",staticStyle:{\"min-width\":\"auto\"}},_vm._l((_vm.viewList),function(item,index){return _c('div',{key:index,class:['list', _vm.value == index ? 'color' : ''],on:{\"click\":function($event){return _vm.toView(item, index)}}},[_c('img',{attrs:{\"src\":item.banner}}),_c('div',{staticClass:\"font\"},[_vm._v(_vm._s(item.name))])])}),0)]):_vm._e(),(_vm.flag && !_vm.mobile)?_c('div',{staticClass:\"scroll\"},[_c('img',{staticClass:\"log\",attrs:{\"src\":require(\"../assets/img/add.png\")},on:{\"click\":_vm.left}}),_c('div',{staticClass:\"pcscroll\"},[_c('div',{staticClass:\"viewList\",style:('transform:' + 'translateX(' + _vm.scrollX + 'px)')},_vm._l((_vm.viewList),function(item,index){return _c('div',{key:index,class:['list', _vm.value == index ? 'color' : ''],on:{\"click\":function($event){return _vm.toView(item, index)}}},[_c('img',{attrs:{\"src\":item.banner}}),_c('div',{staticClass:\"font\"},[_vm._v(_vm._s(item.name))])])}),0)]),_c('img',{staticClass:\"log\",attrs:{\"src\":require(\"../assets/img/reduce.png\")},on:{\"click\":_vm.right}})]):_vm._e()]),_c('div',{staticClass:\"functionB\",style:(_vm.uitype == 1 || _vm.uitype == 3\n ? 'background-color:rgba(45, 45, 45, 0.5);color:white'\n : '')},[_c('div',{staticClass:\"item\",on:{\"click\":function($event){_vm.flag = !_vm.flag}}},[_c('img',{staticStyle:{\"width\":\"30px\"},attrs:{\"src\":_vm.uiList[_vm.uitype][8]}}),_c('p',{style:(_vm.uitype == 1 || _vm.uitype == 3 ? 'color:white' : '')},[_vm._v(\"场景选择\")])]),(this.obj.airFlag && this.obj.airFlag == true && _vm.vip > 0)?_c('div',{staticClass:\"item\",on:{\"click\":_vm.roam}},[_c('img',{staticStyle:{\"width\":\"30px\"},attrs:{\"src\":_vm.uiList[_vm.uitype][9]}}),_c('p',{style:(_vm.uitype == 1 || _vm.uitype == 3 ? 'color:white' : '')},[_vm._v(\"三维鸟瞰\")])]):_vm._e()]),_c('div',{staticClass:\"functionBottom\"},[(_vm.commentFlag)?_c('img',{attrs:{\"src\":_vm.uiList[_vm.uitype][5]},on:{\"click\":_vm.openComment}}):_vm._e(),_c('div',{staticStyle:{\"position\":\"relative\"}},[(_vm.likeFlag && !_vm.addFlag)?_c('img',{attrs:{\"src\":_vm.uiList[_vm.uitype][6]},on:{\"click\":_vm.addNum}}):_vm._e(),(_vm.likeFlag && _vm.addFlag)?_c('img',{attrs:{\"src\":_vm.uiList[_vm.uitype][11]}}):_vm._e(),(_vm.likeFlag)?_c('p',[_vm._v(_vm._s(_vm.thumbs ? _vm.thumbs : 0))]):_vm._e()]),_c('img',{attrs:{\"src\":_vm.uiList[_vm.uitype][7]},on:{\"click\":function($event){_vm.shareFlag = true}}})]),_vm._v(\" --> \"),_c('div',{staticClass:\"functionTop\"},[(_vm.id != 1975)?_c('img',{attrs:{\"src\":_vm.uiList[_vm.uitype][0]},on:{\"click\":_vm.full}}):_vm._e(),_c('img',{attrs:{\"src\":_vm.voiceFlag ? _vm.uiList[_vm.uitype][1] : _vm.uiList[_vm.uitype][10]},on:{\"click\":function($event){_vm.voiceFlag = !_vm.voiceFlag}}}),(_vm.modelFlag && _vm.vip > 0)?_c('img',{attrs:{\"src\":_vm.viewFlag ? _vm.uiList[_vm.uitype][3] : _vm.uiList[_vm.uitype][4]},on:{\"click\":function($event){_vm.viewFlag = !_vm.viewFlag}}}):_vm._e(),(_vm.vip > 0 && _vm.id != 1975)?_c('img',{attrs:{\"src\":_vm.uiList[_vm.uitype][2]},on:{\"click\":_vm.roam1}}):_vm._e(),_c('a',{attrs:{\"href\":\"https://m.yangshipin.cn/static/x/l000064owzq/index.html\",\"target\":\"_blank\"}},[(_vm.id == 1975)?_c('img',{attrs:{\"src\":require(\"../assets/img/addicon1.png\")}}):_vm._e()]),(_vm.id == 1975)?_c('img',{attrs:{\"src\":require(\"../assets/img/addicon2.png\")},on:{\"click\":function($event){_vm.shareFlag1 = true}}}):_vm._e()]),_c('a',{attrs:{\"href\":\"https://mvpmeta.com/?zp\",\"target\":\"_blank\"}},[(_vm.vip == 0)?_c('div',{staticClass:\"bottom\"},[_c('img',{attrs:{\"src\":require(\"../assets/img/logo.png\")}}),_c('p',[_vm._v(\"元居科技提供技术支持\")])]):_vm._e()]),_c('audio',{attrs:{\"src\":_vm.voice,\"id\":\"music\",\"loop\":\"\"}}),_vm._v(\"11 \"),_c('transition',{attrs:{\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.shareFlag)?_c('div',{staticClass:\"shadow\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.id != 1975),expression:\"id != 1975\"}],staticClass:\"qrCode\"},[_c('i',{staticClass:\"el-icon-close\",on:{\"click\":function($event){_vm.shareFlag = false}}}),_c('h1',[_vm._v(\"微信小程序二维码\")]),_c('img',{attrs:{\"src\":_vm.pic}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.id != 1975),expression:\"id != 1975\"}],ref:\"qrCode\",attrs:{\"id\":\"qrCode\"}},[_c('i',{staticClass:\"el-icon-close\",on:{\"click\":function($event){_vm.shareFlag = false}}}),_c('h1',[_vm._v(\"扫描二维码分享作品\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.id == 1975),expression:\"id == 1975\"}],staticStyle:{\"text-align\":\"center\"}},[_c('img',{staticClass:\"shareImg\",attrs:{\"src\":require(\"../assets/img/share.png\")},on:{\"click\":function($event){_vm.shareFlag = false}}}),(_vm.flag1975)?_c('h3',{staticClass:\"h3\"},[_vm._v(\"点击保存到手机相册\")]):_vm._e(),(_vm.flag1975)?_c('img',{staticClass:\"shareIcon\",attrs:{\"src\":require(\"../assets/img/download.png\")},on:{\"click\":function($event){return _vm.downLoad()}}}):_vm._e()])]):_vm._e()]),_c('transition',{attrs:{\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.shareFlag1)?_c('div',{staticClass:\"shadow\"},[_c('img',{staticClass:\"shareImg\",attrs:{\"src\":require(\"../assets/img/rule.png\")},on:{\"click\":function($event){_vm.shareFlag1 = false}}})]):_vm._e()]),_c('transition',{attrs:{\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.comment1Flag)?_c('div',{staticClass:\"commentBox\"},[_c('div',[_c('h3',[_vm._v(\"评论\")])]),_c('el-input',{attrs:{\"type\":\"textarea\",\"placeholder\":\"请输入内容\",\"maxlength\":\"30\",\"show-word-limit\":\"\"},model:{value:(_vm.textarea),callback:function ($$v) {_vm.textarea=$$v},expression:\"textarea\"}}),_c('div',{staticClass:\"line\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.toComments}},[_vm._v(\"发表\")]),_c('el-button',{on:{\"click\":function($event){_vm.comment1Flag = false}}},[_vm._v(\"取消\")])],1)],1):_vm._e()]),_c('transition',{attrs:{\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.checked)?_c('div',_vm._l((_vm.comment),function(item,index){return _c('p',{key:index,staticClass:\"list1\",style:('left:' + item.left + '%;top:' + item.right + '%')},[_vm._v(\" \"+_vm._s(item.text)+\" \")])}),0):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n-\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./function.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./function.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./function.vue?vue&type=template&id=45ffdc8b&scoped=true&\"\nimport script from \"./function.vue?vue&type=script&lang=js&\"\nexport * from \"./function.vue?vue&type=script&lang=js&\"\nimport style0 from \"./function.vue?vue&type=style&index=0&id=45ffdc8b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45ffdc8b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.flag1)?_c('div',{staticClass:\"login\"},[(_vm.flag)?_c('div',{on:{\"click\":function($event){_vm.boxFlag = true}}},[_vm._v(\"登录\")]):_c('div',{staticStyle:{\"text-align\":\"right\"}},[_c('div',{staticStyle:{\"margin-bottom\":\"25px\"}},[_vm._v(\" 欢迎\"+_vm._s(_vm.name)+\" 当前在线人数:\"+_vm._s(_vm.list.length)+\"人 \")]),_vm._l((_vm.leftList),function(item,index){return _c('div',{key:index,staticClass:\"func\"},[_c('img',{attrs:{\"src\":item.flag ? item.activeimg : item.img},on:{\"click\":function($event){return _vm.change(index)}}})])}),_c('Chat')],2),(_vm.boxFlag)?_c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"line\"},[_c('p',[_vm._v(\"名称:\")]),_c('el-input',{attrs:{\"placeholder\":\"请输入名称\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"line\"},[_c('p',[_vm._v(\"角色:\")]),_c('div',{staticClass:\"roleBox\"},_vm._l((_vm.roleList),function(item,index){return _c('div',{key:index,on:{\"click\":function($event){_vm.roleValue = index}}},[_c('img',{class:['avatar', index == _vm.roleValue ? 'active' : ''],attrs:{\"src\":item}})])}),0)]),_c('div',{staticClass:\"line1\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.loginIn}},[_vm._v(\"确认\")]),_c('el-button',{on:{\"click\":function($event){_vm.boxFlag = false;\n _vm.roleValue = 0;}}},[_vm._v(\"取消\")])],1)]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.chatFlag ? 'chatRoom' : 'chatRoom closeRoom'},[_c('h1',[_c('div',{staticClass:\"roomList\",class:_vm.chatFlag ? 'roomList' : ' roomList roomListClose'},_vm._l((_vm.cheatList),function(item,index){return _c('p',{key:index,class:index == _vm.value ? 'active' : '',on:{\"click\":function($event){return _vm.chooseRoom(index)}}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),0),_c('div',{staticClass:\"function\"},[_c('img',{staticClass:\"icon\",attrs:{\"src\":require(\"../../dongsheng/assets/newImg/chatRoom/close.png\")},on:{\"click\":function($event){_vm.chatFlag = !_vm.chatFlag}}}),(_vm.chatFlag)?_c('img',{staticClass:\"icon\",attrs:{\"src\":require(\"../../dongsheng/assets/newImg/chatRoom/group.png\")},on:{\"click\":function($event){_vm.groupFlag = !_vm.groupFlag}}}):_vm._e()])]),_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"chat\",attrs:{\"id\":\"chat\"}},_vm._l((_vm.msgList[_vm.value]),function(item,index){return _c('div',{key:index,staticClass:\"msgList\"},[_c('div',{staticClass:\"name\",style:(item.name == _vm.$chat.role.name ? 'color: #1dd3b0;' : 'color:orange')},[_vm._v(\" \"+_vm._s(item.name)+\": \")]),_c('div',{staticClass:\"sendMsg\"},[_vm._v(_vm._s(item.msg))])])}),0),(_vm.groupFlag)?_c('div',{staticClass:\"group\"},[_c('h3',[_c('span',{staticStyle:{\"color\":\"#1dd3b0\"}},[_vm._v(_vm._s(_vm.playerList.length))]),_vm._v(\" 在线 \")]),_vm._l((_vm.playerList),function(item,index){return _c('div',{key:index,staticClass:\"msg\"},[_c('div',{staticClass:\"circle\"}),_c('p',[_vm._v(_vm._s(item.name))]),_c('div',{staticStyle:{\"flex\":\"1\"}}),(item.name != _vm.$chat.role.name)?_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../../dongsheng/assets/newImg/chatRoom/chat.png\")},on:{\"click\":function($event){return _vm.onlyChat(item.name, item.name)}}}):_vm._e()])})],2):_vm._e()]),_c('div',{staticClass:\"send\"},[_c('el-input',{ref:\"input\",attrs:{\"placeholder\":'请输入内容',\"clearable\":\"\"},on:{\"focus\":function($event){return _vm.keyFlag(true)},\"blur\":function($event){return _vm.keyFlag(false)}},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}}),_c('el-button',{attrs:{\"type\":\"success\"},on:{\"click\":_vm.send}},[_vm._v(\"发送\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chat.vue?vue&type=template&id=d5124b3a&scoped=true&\"\nimport script from \"./chat.vue?vue&type=script&lang=js&\"\nexport * from \"./chat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chat.vue?vue&type=style&index=0&id=d5124b3a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d5124b3a\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./login.vue?vue&type=template&id=3bded8f4&scoped=true&\"\nimport script from \"./login.vue?vue&type=script&lang=js&\"\nexport * from \"./login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./login.vue?vue&type=style&index=0&id=3bded8f4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bded8f4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login\"},[(_vm.flag)?_c('div',{on:{\"click\":function($event){_vm.boxFlag = true}}},[_vm._v(\"登录\")]):_c('div',{staticStyle:{\"text-align\":\"right\"}},[_c('div',{staticStyle:{\"margin-bottom\":\"25px\"}},[_vm._v(\" 欢迎\"+_vm._s(_vm.name)+\" 当前在线人数:\"+_vm._s(_vm.list.length)+\"人 \")]),_vm._l((_vm.leftList),function(item,index){return _c('div',{key:index,staticClass:\"func\"},[_c('img',{attrs:{\"src\":item.flag ? item.activeimg : item.img},on:{\"click\":function($event){return _vm.change(index)}}})])})],2),(_vm.boxFlag)?_c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"line\"},[_c('p',[_vm._v(\"名称:\")]),_c('el-input',{attrs:{\"placeholder\":\"请输入名称\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"line\"},[_c('p',[_vm._v(\"角色:\")]),_c('div',{staticClass:\"roleBox\"},_vm._l((_vm.roleList),function(item,index){return _c('div',{key:index,on:{\"click\":function($event){_vm.roleValue = index}}},[_c('img',{class:['avatar', index == _vm.roleValue ? 'active' : ''],attrs:{\"src\":item}})])}),0)]),_c('div',{staticClass:\"line1\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.loginIn}},[_vm._v(\"确认\")]),_c('el-button',{on:{\"click\":function($event){_vm.boxFlag = false;\n _vm.roleValue = 0;}}},[_vm._v(\"取消\")])],1)]):_vm._e(),_c('div',{staticStyle:{\"width\":\"0\"},attrs:{\"id\":\"local_stream\",\"autoplay\":\"\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login1.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login1.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./login1.vue?vue&type=template&id=128f4cfc&scoped=true&\"\nimport script from \"./login1.vue?vue&type=script&lang=js&\"\nexport * from \"./login1.vue?vue&type=script&lang=js&\"\nimport style0 from \"./login1.vue?vue&type=style&index=0&id=128f4cfc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"128f4cfc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('transition',{attrs:{\"enter-active-class\":\"animated fadeInRight\",\"leave-active-class\":\"animated fadeOutRight\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.localFlag || _vm.list.length > 0),expression:\"localFlag || list.length > 0\"}],staticClass:\"shadow\",class:_vm.suo ? 'tran' : '',attrs:{\"id\":\"shadow\"}},[_c('img',{staticClass:\"arrow\",class:_vm.suo ? 'arrow-ani' : '',attrs:{\"src\":require(\"../../wdf/assets/右箭头.png\")},on:{\"click\":function($event){_vm.suo = !_vm.suo}}}),_c('div',{attrs:{\"id\":\"restream\"}}),_c('transition',{attrs:{\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.shareFlag)?_c('div',{class:_vm.playValue == -2 ? 'videoBox1 pos' : 'videoBox1',attrs:{\"id\":\"shareScreen\"},on:{\"click\":function($event){_vm.playValue = -2}}},[(_vm.playValue == -2)?_c('img',{staticClass:\"close\",attrs:{\"src\":require(\"../../wdf/assets/newImg/function/close.png\")},on:{\"click\":function($event){$event.stopPropagation();_vm.playValue = 999}}}):_vm._e(),_c('div',{staticClass:\"msg\"},[_c('p',[_vm._v(_vm._s(_vm.sharename)+\"正在分享屏幕\")])])]):_vm._e()]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.localFlag),expression:\"localFlag\"}],class:_vm.playValue == -1 ? 'videoBox pos' : 'videoBox',on:{\"click\":function($event){_vm.playValue = -1}}},[(_vm.playValue == -1)?_c('img',{staticClass:\"close\",attrs:{\"src\":require(\"../../wdf/assets/newImg/function/close.png\")},on:{\"click\":function($event){$event.stopPropagation();_vm.playValue = 999}}}):_vm._e(),_c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"position\":\"absolute\",\"top\":\"0\",\"z-index\":\"99\"},attrs:{\"id\":\"local_stream\",\"autoplay\":\"\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.shipinFlag),expression:\"!shipinFlag\"}],staticClass:\"shipin\"},[_vm._v(\" \"+_vm._s(_vm.$chat.role.name)+\" \")])]),_c('div',{staticClass:\"msg\"},[_c('p',[_vm._v(_vm._s(_vm.$chat.role.name))]),_c('div',{staticClass:\"iconList\"},[_c('img',{attrs:{\"src\":_vm.yuyinFlag\n ? require('../../wdf/assets/newImg/function/yuyinOpen.png')\n : require('../../wdf/assets/newImg/function/yuyinClose.png')}}),_c('img',{attrs:{\"src\":_vm.shipinFlag\n ? require('../../wdf/assets/newImg/function/xiangjiOpen.png')\n : require('../../wdf/assets/newImg/function/xiangjiClose.png')}})])])]),_c('div',{staticClass:\"msgList\",staticStyle:{\"position\":\"absolute\"}},_vm._l((_vm.list),function(item,index){return _c('div',{key:index,staticClass:\"videoBox\",on:{\"click\":function($event){_vm.playValue = index}}},[(_vm.playValue == index)?_c('img',{staticClass:\"close\",attrs:{\"src\":require(\"../../wdf/assets/newImg/function/close.png\")},on:{\"click\":function($event){$event.stopPropagation();_vm.playValue = 999}}}):_vm._e(),_c('div',{staticClass:\"msg\"},[_c('p',[_vm._v(\" \"+_vm._s(item.userId)+\" \")]),_c('div',{staticClass:\"iconList\"},[(!item.hasAudio)?_c('img',{attrs:{\"src\":require(\"../../wdf/assets/newImg/function/yuyinClose.png\")}}):_c('img',{attrs:{\"src\":!item.audioMuted\n ? require('../../wdf/assets/newImg/function/yuyinOpen.png')\n : require('../../wdf/assets/newImg/function/yuyinClose.png')}}),(!item.hasVideo)?_c('img',{attrs:{\"src\":require(\"../../wdf/assets/newImg/function/xiangjiClose.png\")}}):_c('img',{attrs:{\"src\":!item.videoMuted\n ? require('../../wdf/assets/newImg/function/xiangjiOpen.png')\n : require('../../wdf/assets/newImg/function/xiangjiClose.png')}})])])])}),0)],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./client.vue?vue&type=template&id=6f629840&scoped=true&\"\nimport script from \"./client.vue?vue&type=script&lang=js&\"\nexport * from \"./client.vue?vue&type=script&lang=js&\"\nimport style0 from \"./client.vue?vue&type=style&index=0&id=6f629840&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f629840\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainView.vue?vue&type=template&id=3d9161dc&scoped=true&\"\nimport script from \"./MainView.vue?vue&type=script&lang=js&\"\nexport * from \"./MainView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MainView.vue?vue&type=style&index=0&id=3d9161dc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d9161dc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('transition',{attrs:{\"enter-active-class\":\"animated fadeIn\",\"leave-active-class\":\"animated fadeOut\"}},[(_vm.flag)?_c('div',{staticClass:\"box\",attrs:{\"id\":\"box\"}},[_c('div',[(_vm.list.length > 0 && _vm.checkFlag(_vm.list[_vm.value]) && _vm.imgFlag)?_c('img',{staticClass:\"img1\",style:('transform:' +\n 'scale(' +\n _vm.scale +\n ');left:' +\n _vm.position.left +\n 'px;' +\n 'right:' +\n _vm.position.right +\n 'px;' +\n 'top:' +\n _vm.position.top +\n 'px;' +\n 'bottom:' +\n _vm.position.bottom +\n 'px;'),attrs:{\"src\":_vm.list[_vm.value].url ? _vm.list[_vm.value].url : '',\"id\":\"img\"},on:{\"click\":function($event){$event.stopPropagation();},\"load\":_vm.checkWidth}}):_vm._e(),(_vm.list.length > 0 && _vm.checkFlag(_vm.list[_vm.value]) && _vm.imgFlag)?_c('div',{staticClass:\"img1\",style:('transform:' +\n 'scale(' +\n _vm.scale +\n ');left:' +\n _vm.position.left +\n 'px;' +\n 'right:' +\n _vm.position.right +\n 'px;' +\n 'top:' +\n _vm.position.top +\n 'px;' +\n 'bottom:' +\n _vm.position.bottom +\n 'px;'),on:{\"mousedown\":function($event){$event.stopPropagation();return _vm.start.apply(null, arguments)},\"touchstart\":function($event){$event.stopPropagation();return _vm.start.apply(null, arguments)}}},[_c('audio',{attrs:{\"autoplay\":\"\",\"src\":_vm.audio}})]):_vm._e(),(_vm.list.length > 0 && !_vm.checkFlag(_vm.list[_vm.value]))?_c('video-player',{ref:\"videoPlayer\",staticClass:\"video-player vjs-custom-skin video\",attrs:{\"playsinline\":true,\"options\":_vm.playerOptions}}):_vm._e()],1),(_vm.list.length > 0 && _vm.checkFlag(_vm.list[_vm.value]) && _vm.imgFlag)?_c('div',{staticClass:\"function\"},_vm._l((_vm.functionBox),function(item,index){return _c('div',{key:index,on:{\"click\":function($event){$event.stopPropagation();return _vm.f(index)}}},[_c('img',{attrs:{\"src\":item.img}}),_c('p',[_vm._v(_vm._s(item.font))])])}),0):_vm._e(),_c('div',{staticClass:\"icon\"},[_c('img',{attrs:{\"src\":require(\"../assets/img/close.png\")},on:{\"click\":_vm.close}})]),(_vm.title)?_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.list.length > 0)?_c('div',{staticClass:\"title title1\"},[_c('p',[_vm._v(_vm._s(_vm.value + 1)+\"/\"+_vm._s(_vm.list.length))])]):_vm._e(),(_vm.text)?_c('div',{staticClass:\"text\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('p',[_vm._v(_vm._s(_vm.text))])]):_vm._e(),(_vm.value > 0 && _vm.list.length > 0)?_c('img',{staticClass:\"left\",attrs:{\"src\":require(\"../assets/img/bg-left.png\")},on:{\"click\":function($event){_vm.value--}}}):_vm._e(),(_vm.value < _vm.list.length - 1 && _vm.list.length > 0)?_c('img',{staticClass:\"right\",attrs:{\"src\":require(\"../assets/img/bg-right.png\")},on:{\"click\":function($event){_vm.value++}}}):_vm._e(),(_vm.iframeFlag)?_c('iframe',{staticStyle:{\"width\":\"80%\",\"height\":\"80%\",\"margin\":\"5% 10%\"},attrs:{\"src\":_vm.link,\"frameborder\":\"0\"}}):_vm._e()]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./box.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./box.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./box.vue?vue&type=template&id=99b28a6e&scoped=true&\"\nimport script from \"./box.vue?vue&type=script&lang=js&\"\nexport * from \"./box.vue?vue&type=script&lang=js&\"\nimport style0 from \"./box.vue?vue&type=style&index=0&id=99b28a6e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"99b28a6e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.touch)?_c('div',{staticClass:\"circle\",attrs:{\"id\":\"circle\"}},[_c('img',{style:('left:' + _vm.left + 'px;top:' + _vm.top + 'px'),attrs:{\"src\":require(\"../assets/img/btn.png\")},on:{\"touchstart\":_vm.start}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./handShake.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./handShake.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./handShake.vue?vue&type=template&id=6c9fdc60&scoped=true&\"\nimport script from \"./handShake.vue?vue&type=script&lang=js&\"\nexport * from \"./handShake.vue?vue&type=script&lang=js&\"\nimport style0 from \"./handShake.vue?vue&type=style&index=0&id=6c9fdc60&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c9fdc60\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"test\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mobileTest.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mobileTest.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./mobileTest.vue?vue&type=template&id=5b783e87&scoped=true&\"\nimport script from \"./mobileTest.vue?vue&type=script&lang=js&\"\nexport * from \"./mobileTest.vue?vue&type=script&lang=js&\"\nimport style0 from \"./mobileTest.vue?vue&type=style&index=0&id=5b783e87&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b783e87\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=59e801ae&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n KeyboardFlag: \"\",\n edit_info:\"\"\n },\n mutations: {\n changeFlag(state, flag) {\n state.KeyboardFlag = flag\n },\n //按钮权限\n getInfo(state, msg) {\n state.edit_info =msg\n },\n //获取edit——info\n },\n actions: {\n },\n modules: {\n },\n getters: {\n\n }\n})\n","import {\n\tEventDispatcher,\n\tMOUSE,\n\tQuaternion,\n\tSpherical,\n\tTOUCH,\n\tVector2,\n\tVector3\n} from 'three/build/three.module';\n\n// This set of controls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one-finger move\n// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish\n// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move\n\nconst _changeEvent = { type: 'change' };\nconst _startEvent = { type: 'start' };\nconst _endEvent = { type: 'end' };\n\nclass OrbitControls extends EventDispatcher {\n\n\tconstructor( object, domElement ) {\n\n\t\tsuper();\n\n\t\tif ( domElement === undefined ) console.warn( 'THREE.OrbitControls: The second parameter \"domElement\" is now mandatory.' );\n\t\tif ( domElement === document ) console.error( 'THREE.OrbitControls: \"document\" should not be used as the target \"domElement\". Please use \"renderer.domElement\" instead.' );\n\n\t\tthis.object = object;\n\t\tthis.domElement = domElement;\n\t\t\n\t\tthis.touchCount = 0;\n\n\t\tthis.arrTouch = [];\n\t\t// Set to false to disable this control\n\t\tthis.enabled = true;\n\n\t\t// \"target\" sets the location of focus, where the object orbits around\n\t\tthis.target = new Vector3();\n\n\t\t// How far you can dolly in and out ( PerspectiveCamera only )\n\t\tthis.minDistance = 0;\n\t\tthis.maxDistance = Infinity;\n\n\t\t// How far you can zoom in and out ( OrthographicCamera only )\n\t\tthis.minZoom = 0;\n\t\tthis.maxZoom = Infinity;\n\n\t\t// How far you can orbit vertically, upper and lower limits.\n\t\t// Range is 0 to Math.PI radians.\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\t// How far you can orbit horizontally, upper and lower limits.\n\t\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t\tthis.minAzimuthAngle = - Infinity; // radians\n\t\tthis.maxAzimuthAngle = Infinity; // radians\n\n\t\t// Set to true to enable damping (inertia)\n\t\t// If damping is enabled, you must call controls.update() in your animation loop\n\t\tthis.enableDamping = false;\n\t\tthis.dampingFactor = 0.05;\n\n\t\t// This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n\t\t// Set to false to disable zooming\n\t\tthis.enableZoom = true;\n\t\tthis.zoomSpeed = 1.0;\n\n\t\t// Set to false to disable rotating\n\t\tthis.enableRotate = true;\n\t\tthis.rotateSpeed = 1.0;\n\n\t\t// Set to false to disable panning\n\t\tthis.enablePan = true;\n\t\tthis.panSpeed = 1.0;\n\t\tthis.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up\n\t\tthis.keyPanSpeed = 7.0;\t// pixels moved per arrow key push\n\n\t\t// Set to true to automatically rotate around the target\n\t\t// If auto-rotate is enabled, you must call controls.update() in your animation loop\n\t\tthis.autoRotate = false;\n\t\tthis.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60\n\n\t\t// The four arrow keys\n\t\tthis.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' };\n\n\t\t// Mouse buttons\n\t\tthis.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN };\n\n\t\t// Touch fingers\n\t\tthis.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN };\n\n\t\t// for reset\n\t\tthis.target0 = this.target.clone();\n\t\tthis.position0 = this.object.position.clone();\n\t\tthis.zoom0 = this.object.zoom;\n\n\t\t// the target DOM element for key events\n\t\tthis._domElementKeyEvents = null;\n\n\t\t//\n\t\t// public methods\n\t\t//\n\n\t\tthis.getPolarAngle = function () {\n\n\t\t\treturn spherical.phi;\n\n\t\t};\n\n\t\tthis.getAzimuthalAngle = function () {\n\n\t\t\treturn spherical.theta;\n\n\t\t};\n\n\t\tthis.listenToKeyEvents = function ( domElement ) {\n\n\t\t\tdomElement.addEventListener( 'keydown', onKeyDown );\n\t\t\tthis._domElementKeyEvents = domElement;\n\n\t\t};\n\n\t\tthis.saveState = function () {\n\n\t\t\tscope.target0.copy( scope.target );\n\t\t\tscope.position0.copy( scope.object.position );\n\t\t\tscope.zoom0 = scope.object.zoom;\n\n\t\t};\n\n\t\tthis.reset = function () {\n\n\t\t\tscope.target.copy( scope.target0 );\n\t\t\tscope.object.position.copy( scope.position0 );\n\t\t\tscope.object.zoom = scope.zoom0;\n\n\t\t\tscope.object.updateProjectionMatrix();\n\t\t\tscope.dispatchEvent( _changeEvent );\n\n\t\t\tscope.update();\n\n\t\t\tstate = STATE.NONE;\n\n\t\t};\n\n\t\t// this method is exposed, but perhaps it would be better if we can make it private...\n\t\tthis.update = function () {\n\n\t\t\tconst offset = new Vector3();\n\n\t\t\t// so camera.up is the orbit axis\n\t\t\tconst quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );\n\t\t\tconst quatInverse = quat.clone().invert();\n\n\t\t\tconst lastPosition = new Vector3();\n\t\t\tconst lastQuaternion = new Quaternion();\n\n\t\t\tconst twoPI = 2 * Math.PI;\n\n\t\t\treturn function update() {\n\n\t\t\t\tconst position = scope.object.position;\n\n\t\t\t\toffset.copy( position ).sub( scope.target );\n\n\t\t\t\t// rotate offset to \"y-axis-is-up\" space\n\t\t\t\toffset.applyQuaternion( quat );\n\n\t\t\t\t// angle from z-axis around y-axis\n\t\t\t\tspherical.setFromVector3( offset );\n\n\t\t\t\tif ( scope.autoRotate && state === STATE.NONE ) {\n\n\t\t\t\t\trotateLeft( getAutoRotationAngle() );\n\n\t\t\t\t}\n\n\t\t\t\tif ( scope.enableDamping ) {\n\n\t\t\t\t\tspherical.theta += sphericalDelta.theta * scope.dampingFactor;\n\t\t\t\t\tspherical.phi += sphericalDelta.phi * scope.dampingFactor;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tspherical.theta += sphericalDelta.theta;\n\t\t\t\t\tspherical.phi += sphericalDelta.phi;\n\n\t\t\t\t}\n\n\t\t\t\t// restrict theta to be between desired limits\n\n\t\t\t\tlet min = scope.minAzimuthAngle;\n\t\t\t\tlet max = scope.maxAzimuthAngle;\n\n\t\t\t\tif ( isFinite( min ) && isFinite( max ) ) {\n\n\t\t\t\t\tif ( min < - Math.PI ) min += twoPI; else if ( min > Math.PI ) min -= twoPI;\n\n\t\t\t\t\tif ( max < - Math.PI ) max += twoPI; else if ( max > Math.PI ) max -= twoPI;\n\n\t\t\t\t\tif ( min <= max ) {\n\n\t\t\t\t\t\tspherical.theta = Math.max( min, Math.min( max, spherical.theta ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tspherical.theta = ( spherical.theta > ( min + max ) / 2 ) ?\n\t\t\t\t\t\t\tMath.max( min, spherical.theta ) :\n\t\t\t\t\t\t\tMath.min( max, spherical.theta );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// restrict phi to be between desired limits\n\t\t\t\tspherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) );\n\n\t\t\t\tspherical.makeSafe();\n\n\n\t\t\t\tspherical.radius *= scale;\n\n\t\t\t\t// restrict radius to be between desired limits\n\t\t\t\tspherical.radius = Math.max( scope.minDistance, Math.min( scope.maxDistance, spherical.radius ) );\n\n\t\t\t\t// move target to panned location\n\n\t\t\t\tif ( scope.enableDamping === true ) {\n\n\t\t\t\t\tscope.target.addScaledVector( panOffset, scope.dampingFactor );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tscope.target.add( panOffset );\n\n\t\t\t\t}\n\n\t\t\t\toffset.setFromSpherical( spherical );\n\n\t\t\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t\t\toffset.applyQuaternion( quatInverse );\n\n\t\t\t\tposition.copy( scope.target ).add( offset );\n\n\t\t\t\tscope.object.lookAt( scope.target );\n\n\t\t\t\tif ( scope.enableDamping === true ) {\n\n\t\t\t\t\tsphericalDelta.theta *= ( 1 - scope.dampingFactor );\n\t\t\t\t\tsphericalDelta.phi *= ( 1 - scope.dampingFactor );\n\n\t\t\t\t\tpanOffset.multiplyScalar( 1 - scope.dampingFactor );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tsphericalDelta.set( 0, 0, 0 );\n\n\t\t\t\t\tpanOffset.set( 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t\tscale = 1;\n\n\t\t\t\t// update condition is:\n\t\t\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\t\t\tif ( zoomChanged ||\n\t\t\t\t\tlastPosition.distanceToSquared( scope.object.position ) > EPS ||\n\t\t\t\t\t8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) {\n\n\t\t\t\t\tscope.dispatchEvent( _changeEvent );\n\n\t\t\t\t\tlastPosition.copy( scope.object.position );\n\t\t\t\t\tlastQuaternion.copy( scope.object.quaternion );\n\t\t\t\t\tzoomChanged = false;\n\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t};\n\n\t\t}();\n\n\t\tthis.dispose = function () {\n\n\t\t\tscope.domElement.removeEventListener( 'contextmenu', onContextMenu );\n\n\t\t\tscope.domElement.removeEventListener( 'pointerdown', onPointerDown );\n\t\t\tscope.domElement.removeEventListener( 'wheel', onMouseWheel );\n\n\t\t\tscope.domElement.removeEventListener( 'touchstart', onTouchStart );\n\t\t\tscope.domElement.removeEventListener( 'touchend', onTouchEnd );\n\t\t\tscope.domElement.removeEventListener( 'touchmove', onTouchMove );\n\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove );\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp );\n\n\n\t\t\tif ( scope._domElementKeyEvents !== null ) {\n\n\t\t\t\tscope._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown );\n\n\t\t\t}\n\n\t\t\t//scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?\n\n\t\t};\n\n\t\t//\n\t\t// internals\n\t\t//\n\n\t\tconst scope = this;\n\n\t\tconst STATE = {\n\t\t\tNONE: - 1,\n\t\t\tROTATE: 0,\n\t\t\tDOLLY: 1,\n\t\t\tPAN: 2,\n\t\t\tTOUCH_ROTATE: 3,\n\t\t\tTOUCH_PAN: 4,\n\t\t\tTOUCH_DOLLY_PAN: 5,\n\t\t\tTOUCH_DOLLY_ROTATE: 6\n\t\t};\n\n\t\tlet state = STATE.NONE;\n\n\t\tconst EPS = 0.000001;\n\n\t\t// current position in spherical coordinates\n\t\tconst spherical = new Spherical();\n\t\tconst sphericalDelta = new Spherical();\n\n\t\tlet scale = 1;\n\t\tconst panOffset = new Vector3();\n\t\tlet zoomChanged = false;\n\n\t\tconst rotateStart = new Vector2();\n\t\tconst rotateEnd = new Vector2();\n\t\tconst rotateDelta = new Vector2();\n\n\t\tconst panStart = new Vector2();\n\t\tconst panEnd = new Vector2();\n\t\tconst panDelta = new Vector2();\n\n\t\tconst dollyStart = new Vector2();\n\t\tconst dollyEnd = new Vector2();\n\t\tconst dollyDelta = new Vector2();\n\n\t\tfunction getAutoRotationAngle() {\n\n\t\t\treturn 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;\n\n\t\t}\n\n\t\tfunction getZoomScale() {\n\n\t\t\treturn Math.pow( 0.95, scope.zoomSpeed );\n\n\t\t}\n\n\t\tfunction rotateLeft( angle ) {\n\n\t\t\tsphericalDelta.theta -= angle;\n\n\t\t}\n\n\t\tfunction rotateUp( angle ) {\n\n\t\t\tsphericalDelta.phi -= angle;\n\n\t\t}\n\n\t\tconst panLeft = function () {\n\n\t\t\tconst v = new Vector3();\n\n\t\t\treturn function panLeft( distance, objectMatrix ) {\n\n\t\t\t\tv.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix\n\t\t\t\tv.multiplyScalar( - distance );\n\n\t\t\t\tpanOffset.add( v );\n\n\t\t\t};\n\n\t\t}();\n\n\t\tconst panUp = function () {\n\n\t\t\tconst v = new Vector3();\n\n\t\t\treturn function panUp( distance, objectMatrix ) {\n\n\t\t\t\tif ( scope.screenSpacePanning === true ) {\n\n\t\t\t\t\tv.setFromMatrixColumn( objectMatrix, 1 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tv.setFromMatrixColumn( objectMatrix, 0 );\n\t\t\t\t\tv.crossVectors( scope.object.up, v );\n\n\t\t\t\t}\n\n\t\t\t\tv.multiplyScalar( distance );\n\n\t\t\t\tpanOffset.add( v );\n\n\t\t\t};\n\n\t\t}();\n\n\t\t// deltaX and deltaY are in pixels; right and down are positive\n\t\tconst pan = function () {\n\n\t\t\tconst offset = new Vector3();\n\n\t\t\treturn function pan( deltaX, deltaY ) {\n\n\t\t\t\tconst element = scope.domElement;\n\n\t\t\t\tif ( scope.object.isPerspectiveCamera ) {\n\n\t\t\t\t\t// perspective\n\t\t\t\t\tconst position = scope.object.position;\n\t\t\t\t\toffset.copy( position ).sub( scope.target );\n\t\t\t\t\tlet targetDistance = offset.length();\n\n\t\t\t\t\t// half of the fov is center to top of screen\n\t\t\t\t\ttargetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t\t\t// we use only clientHeight here so aspect ratio does not distort speed\n\t\t\t\t\tpanLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix );\n\t\t\t\t\tpanUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix );\n\n\t\t\t\t} else if ( scope.object.isOrthographicCamera ) {\n\n\t\t\t\t\t// orthographic\n\t\t\t\t\tpanLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix );\n\t\t\t\t\tpanUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// camera neither orthographic nor perspective\n\t\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\t\t\t\t\tscope.enablePan = false;\n\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t}();\n\n\t\tfunction dollyOut( dollyScale ) {\n\n\t\t\tif ( scope.object.isPerspectiveCamera ) {\n\n\t\t\t\tscale /= dollyScale;\n\n\t\t\t} else if ( scope.object.isOrthographicCamera ) {\n\n\t\t\t\tscope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom * dollyScale ) );\n\t\t\t\tscope.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\t\tscope.enableZoom = false;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction dollyIn( dollyScale ) {\n\n\t\t\tif ( scope.object.isPerspectiveCamera ) {\n\n\t\t\t\tscale *= dollyScale;\n\n\t\t\t} else if ( scope.object.isOrthographicCamera ) {\n\n\t\t\t\tscope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / dollyScale ) );\n\t\t\t\tscope.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\t\tscope.enableZoom = false;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\t\t// event callbacks - update the object state\n\t\t//\n\n\t\tfunction handleMouseDownRotate( event ) {\n\n\t\t\trotateStart.set( event.clientX, event.clientY );\n\n\t\t}\n\n\t\tfunction handleMouseDownDolly( event ) {\n\n\t\t\tdollyStart.set( event.clientX, event.clientY );\n\n\t\t}\n\n\t\tfunction handleMouseDownPan( event ) {\n\n\t\t\tpanStart.set( event.clientX, event.clientY );\n\n\t\t}\n\n\t\tfunction handleMouseMoveRotate( event ) {\n\n\t\t\trotateEnd.set( event.clientX, event.clientY );\n\n\t\t\trotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed );\n\n\t\t\tconst element = scope.domElement;\n\n\t\t\trotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\t\trotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight );\n\n\t\t\trotateStart.copy( rotateEnd );\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleMouseMoveDolly( event ) {\n\n\t\t\tdollyEnd.set( event.clientX, event.clientY );\n\n\t\t\tdollyDelta.subVectors( dollyEnd, dollyStart );\n\n\t\t\tif ( dollyDelta.y > 0 ) {\n\n\t\t\t\tdollyOut( getZoomScale() );\n\n\t\t\t} else if ( dollyDelta.y < 0 ) {\n\n\t\t\t\tdollyIn( getZoomScale() );\n\n\t\t\t}\n\n\t\t\tdollyStart.copy( dollyEnd );\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleMouseMovePan( event ) {\n\n\t\t\tpanEnd.set( event.clientX, event.clientY );\n\n\t\t\tpanDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed );\n\n\t\t\tpan( panDelta.x, panDelta.y );\n\n\t\t\tpanStart.copy( panEnd );\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleMouseUp( /*event*/ ) {\n\n\t\t\t// no-op\n\n\t\t}\n\n\t\tfunction handleMouseWheel( event ) {\n\n\t\t\tif ( event.deltaY < 0 ) {\n\n\t\t\t\tdollyIn( getZoomScale() );\n\n\t\t\t} else if ( event.deltaY > 0 ) {\n\n\t\t\t\tdollyOut( getZoomScale() );\n\n\t\t\t}\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleKeyDown( event ) {\n\n\t\t\tlet needsUpdate = false;\n\n\t\t\tswitch ( event.code ) {\n\n\t\t\t\tcase scope.keys.UP:\n\t\t\t\t\tpan( 0, scope.keyPanSpeed );\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.BOTTOM:\n\t\t\t\t\tpan( 0, - scope.keyPanSpeed );\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.LEFT:\n\t\t\t\t\tpan( scope.keyPanSpeed, 0 );\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.RIGHT:\n\t\t\t\t\tpan( - scope.keyPanSpeed, 0 );\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( needsUpdate ) {\n\n\t\t\t\t// prevent the browser from scrolling on cursor keys\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tscope.update();\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tfunction handleTouchStartRotate( event ) {\n\n\t\t\tif ( event.touches.length == 1 ) {\n\n\t\t\t\trotateStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\n\t\t\t} else {\n\t\t\t\tlet x=0,y=0,count = 0;\n\t\t\t\tevent.touches.forEach(e=>{\n\t\t\t\t\tif(e.target == scope.domElement){\n\t\t\t\t\t\tx += e.pageX;\n\t\t\t\t\t\ty += e.pageY;\n\t\t\t\t\t\tcount++;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tx /= count;\n\t\t\t\ty /= count;\n\t\t\t\trotateStart.set( x , y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction handleTouchStartPan( event ) {\n\n\t\t\tif ( event.touches.length == 1 ) {\n\n\t\t\t\tpanStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\n\t\t\t} else {\n\n\t\t\t\tconst x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX );\n\t\t\t\tconst y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY );\n\n\t\t\t\tpanStart.set( x, y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction handleTouchStartDolly( event ) {\n\n\t\t\tconst dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;\n\t\t\tconst dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;\n\n\t\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\t\tdollyStart.set( 0, distance );\n\n\t\t}\n\n\t\tfunction handleTouchStartDollyPan( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchStartDolly( event );\n\n\t\t\tif ( scope.enablePan ) handleTouchStartPan( event );\n\n\t\t}\n\n\t\tfunction handleTouchStartDollyRotate( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchStartDolly( event );\n\n\t\t\tif ( scope.enableRotate ) handleTouchStartRotate( event );\n\n\t\t}\n\n\t\tfunction handleTouchMoveRotate( event ) {\n\n\t\t\tif ( event.touches.length == 1 ) {\n\n\t\t\t\trotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\n\t\t\t} else {\n\t\t\t\tlet x =0,y = 0,count = 0;\n\t\t\t\tevent.touches.forEach(e=>{\n\t\t\t\t\tif(e.target == scope.domElement){\n\t\t\t\t\t\tx += e.pageX;\n\t\t\t\t\t\ty += e.pageY;\n\t\t\t\t\t\tcount++;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tx /= count;\n\t\t\t\ty /= count;\n\t\t\t\tconsole.log(x,y);\n\t\t\t\trotateEnd.set( x , y );\n\n\t\t\t}\n\n\t\t\trotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed );\n\n\t\t\tconst element = scope.domElement;\n\n\t\t\trotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\t\trotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight );\n\n\t\t\trotateStart.copy( rotateEnd );\n\n\t\t}\n\n\t\tfunction handleTouchMovePan( event ) {\n\n\t\t\tif ( event.touches.length == 1 ) {\n\n\t\t\t\tpanEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\n\t\t\t} else {\n\n\t\t\t\tconst x = 0.5 * ( event.touches[ 0 ].pageX + event.touches[ 1 ].pageX );\n\t\t\t\tconst y = 0.5 * ( event.touches[ 0 ].pageY + event.touches[ 1 ].pageY );\n\n\t\t\t\tpanEnd.set( x, y );\n\n\t\t\t}\n\n\t\t\tpanDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed );\n\n\t\t\tpan( panDelta.x, panDelta.y );\n\n\t\t\tpanStart.copy( panEnd );\n\n\t\t}\n\n\t\tfunction handleTouchMoveDolly( event ) {\n\n\t\t\tconst dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;\n\t\t\tconst dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;\n\n\t\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\t\tdollyEnd.set( 0, distance );\n\n\t\t\tdollyDelta.set( 0, Math.pow( dollyEnd.y / dollyStart.y, scope.zoomSpeed ) );\n\n\t\t\tdollyOut( dollyDelta.y );\n\n\t\t\tdollyStart.copy( dollyEnd );\n\n\t\t}\n\n\t\tfunction handleTouchMoveDollyPan( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchMoveDolly( event );\n\n\t\t\tif ( scope.enablePan ) handleTouchMovePan( event );\n\n\t\t}\n\n\t\tfunction handleTouchMoveDollyRotate( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchMoveDolly( event );\n\n\t\t\tif ( scope.enableRotate ) handleTouchMoveRotate( event );\n\n\t\t}\n\n\t\tfunction handleTouchEnd( /*event*/ ) {\n\n\t\t\t// no-op\n\n\t\t}\n\n\t\t//\n\t\t// event handlers - FSM: listen for events and reset state\n\t\t//\n\n\t\tfunction onPointerDown( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tswitch ( event.pointerType ) {\n\n\t\t\t\tcase 'mouse':\n\t\t\t\tcase 'pen':\n\t\t\t\t\tonMouseDown( event );\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO touch\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerMove( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tswitch ( event.pointerType ) {\n\n\t\t\t\tcase 'mouse':\n\t\t\t\tcase 'pen':\n\t\t\t\t\tonMouseMove( event );\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO touch\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerUp( event ) {\n\n\t\t\tswitch ( event.pointerType ) {\n\n\t\t\t\tcase 'mouse':\n\t\t\t\tcase 'pen':\n\t\t\t\t\tonMouseUp( event );\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO touch\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseDown( event ) {\n\n\t\t\t// Prevent the browser from scrolling.\n\t\t\tevent.preventDefault();\n\n\t\t\t// Manually set the focus since calling preventDefault above\n\t\t\t// prevents the browser from setting it automatically.\n\n\t\t\tscope.domElement.focus ? scope.domElement.focus() : window.focus();\n\n\t\t\tlet mouseAction;\n\n\t\t\tswitch ( event.button ) {\n\n\t\t\t\tcase 0:\n\n\t\t\t\t\tmouseAction = scope.mouseButtons.LEFT;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1:\n\n\t\t\t\t\tmouseAction = scope.mouseButtons.MIDDLE;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\n\n\t\t\t\t\tmouseAction = scope.mouseButtons.RIGHT;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tmouseAction = - 1;\n\n\t\t\t}\n\n\t\t\tswitch ( mouseAction ) {\n\n\t\t\t\tcase MOUSE.DOLLY:\n\n\t\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\t\thandleMouseDownDolly( event );\n\n\t\t\t\t\tstate = STATE.DOLLY;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MOUSE.ROTATE:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\t\thandleMouseDownPan( event );\n\n\t\t\t\t\t\tstate = STATE.PAN;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\t\thandleMouseDownRotate( event );\n\n\t\t\t\t\t\tstate = STATE.ROTATE;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MOUSE.PAN:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\t\thandleMouseDownRotate( event );\n\n\t\t\t\t\t\tstate = STATE.ROTATE;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\t\thandleMouseDownPan( event );\n\n\t\t\t\t\t\tstate = STATE.PAN;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) {\n\n\t\t\t\tscope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove );\n\t\t\t\tscope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp );\n\n\t\t\t\tscope.dispatchEvent( _startEvent );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseMove( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tswitch ( state ) {\n\n\t\t\t\tcase STATE.ROTATE:\n\n\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\thandleMouseMoveRotate( event );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.DOLLY:\n\n\t\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\t\thandleMouseMoveDolly( event );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.PAN:\n\n\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\thandleMouseMovePan( event );\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseUp( event ) {\n\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove );\n\t\t\tscope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp );\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\thandleMouseUp( event );\n\n\t\t\tscope.dispatchEvent( _endEvent );\n\n\t\t\tstate = STATE.NONE;\n\n\t\t}\n\n\t\tfunction onMouseWheel( event ) {\n\n\t\t\tif ( scope.enabled === false || scope.enableZoom === false || ( state !== STATE.NONE && state !== STATE.ROTATE ) ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tscope.dispatchEvent( _startEvent );\n\n\t\t\thandleMouseWheel( event );\n\n\t\t\tscope.dispatchEvent( _endEvent );\n\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\n\t\t\tif ( scope.enabled === false || scope.enablePan === false ) return;\n\n\t\t\thandleKeyDown( event );\n\n\t\t}\n\n\t\tfunction onTouchStart( event ) {\n\t\t\t\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault(); // prevent scrolling\n\t\t\tscope.touchCount = 0;\n\t\t\tevent.touches.forEach(e => {\n\t\t\t\tif(e.target == scope.domElement)\n\t\t\t\tscope.touchCount++;\n\t\t\t});\n\t\t\tswitch ( scope.touchCount ) {\n\n\t\t\t\tcase 1:\n\n\t\t\t\t\tswitch ( scope.touches.ONE ) {\n\n\t\t\t\t\t\tcase TOUCH.ROTATE:\n\n\t\t\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartRotate( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_ROTATE;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase TOUCH.PAN:\n\n\t\t\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartPan( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_PAN;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\n\n\t\t\t\t\tswitch ( scope.touches.TWO ) {\n\n\t\t\t\t\t\tcase TOUCH.DOLLY_PAN:\n\n\t\t\t\t\t\t\tif ( scope.enableZoom === false && scope.enablePan === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartDollyPan( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_DOLLY_PAN;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase TOUCH.DOLLY_ROTATE:\n\n\t\t\t\t\t\t\tif ( scope.enableZoom === false && scope.enableRotate === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartDollyRotate( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_DOLLY_ROTATE;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) {\n\n\t\t\t\tscope.dispatchEvent( _startEvent );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onTouchMove( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault(); // prevent scrolling\n\n\t\t\tswitch ( state ) {\n\n\t\t\t\tcase STATE.TOUCH_ROTATE:\n\n\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\thandleTouchMoveRotate( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.TOUCH_PAN:\n\n\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\thandleTouchMovePan( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.TOUCH_DOLLY_PAN:\n\n\t\t\t\t\tif ( scope.enableZoom === false && scope.enablePan === false ) return;\n\n\t\t\t\t\thandleTouchMoveDollyPan( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.TOUCH_DOLLY_ROTATE:\n\n\t\t\t\t\tif ( scope.enableZoom === false && scope.enableRotate === false ) return;\n\n\t\t\t\t\thandleTouchMoveDollyRotate( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onTouchEnd( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\thandleTouchEnd( event );\n\n\t\t\tscope.dispatchEvent( _endEvent );\n\n\t\t\tstate = STATE.NONE;\n\n\t\t}\n\n\t\tfunction onContextMenu( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t}\n\n\t\t//\n\n\t\tscope.domElement.addEventListener( 'contextmenu', onContextMenu );\n\n\t\tscope.domElement.addEventListener( 'pointerdown', onPointerDown );\n\t\tscope.domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } );\n\n\t\tscope.domElement.addEventListener( 'touchstart', onTouchStart, { passive: false } );\n\t\tscope.domElement.addEventListener( 'touchend', onTouchEnd );\n\t\tscope.domElement.addEventListener( 'touchmove', onTouchMove, { passive: false } );\n\n\t\t// force an update at start\n\n\t\tthis.update();\n\n\t}\n\n}\n\n\n// This set of controls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n// This is very similar to OrbitControls, another set of touch behavior\n//\n// Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch: two-finger rotate\n// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish\n// Pan - left mouse, or arrow keys / touch: one-finger move\n\nclass MapControls extends OrbitControls {\n\n\tconstructor( object, domElement ) {\n\n\t\tsuper( object, domElement );\n\n\t\tthis.screenSpacePanning = false; // pan orthogonal to world-space direction camera.up\n\n\t\tthis.mouseButtons.LEFT = MOUSE.PAN;\n\t\tthis.mouseButtons.RIGHT = MOUSE.ROTATE;\n\n\t\tthis.touches.ONE = TOUCH.PAN;\n\t\tthis.touches.TWO = TOUCH.DOLLY_ROTATE;\n\n\t}\n\n}\n\nexport { OrbitControls, MapControls };\n","import * as THREE from 'three/build/three.module';\r\n// import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';\r\n// import { TransformControls } from 'three/examples/jsm/controls/TransformControls';\r\n// import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial';\r\n// import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry';\r\n// import { Line2 } from 'three/examples/jsm/lines/Line2';\r\n// import { CSS2DRenderer, CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';\r\n// import { OBJLoader2 } from 'three/examples/jsm/loaders/OBJLoader2.js';\r\n// import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';\r\n// import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';\r\n// import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';\r\n// import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';\r\n// import { FXAAShader } from 'three/examples/jsm/shaders/FXAAShader.js';\r\nvar idx=0;\r\n\r\nfunction compareFunction(propertyName){\r\n return function (src,tar) {\r\n //获取比较的值\r\n var v1=src[propertyName];\r\n var v2=tar[propertyName];\r\n if(v1>v2){\r\n return 1;\r\n }\r\n if(v1\r\n {\r\n let jsonobj = this.to_json_object();\r\n let newobj = new ani_object();\r\n newobj.from_json(jsonobj);\r\n newobj.object=this.object;\r\n newobj.ani_type=this.ani_type;\r\n return newobj;\r\n }\r\n \r\n move_key=(key,newtime)=>\r\n {\r\n key.time=newtime;\r\n this.keys.sort(compareFunction(\"time\"));\r\n }\r\n\r\n from_json=(objj)=>\r\n {\r\n let aniobj=this;\r\n aniobj.ani_type=objj.ani_type;\r\n if (aniobj.ani_type==0)//旧格式支持\r\n {\r\n aniobj.ani_type=3;\r\n }\r\n aniobj.objid=objj.objid;\r\n aniobj.keys=objj.keys;\r\n for (let j=0;j\r\n {\r\n let key = {};\r\n key.time = time;\r\n key.value = {};\r\n key.ease=0;\r\n if (this.ani_type&1)//位置\r\n {\r\n let position = this.object.position.clone();\r\n let quaternion = this.object.quaternion.clone();\r\n let scale = this.object.scale.clone();\r\n key.value.position = position;\r\n key.value.quaternion = quaternion;\r\n key.value.scale = scale;\r\n }\r\n \r\n if (this.ani_type&(1<<1))//visible\r\n {\r\n key.value.visible = this.object.visible;\r\n }\r\n\r\n if (this.ani_type&(1<<2))//color\r\n {\r\n if (this.object.color)\r\n {\r\n key.value.color = this.object.color.clone();\r\n }\r\n if (this.object.material&&this.object.material.color)\r\n {\r\n key.value.color = this.object.material.color.clone();\r\n }\r\n }\r\n if (this.ani_type&(1<<3))//alpha\r\n {\r\n if (this.object.material)\r\n {\r\n key.value.opacity = this.object.material.opacity;\r\n key.value.transparent = this.object.material.transparent\r\n }\r\n }\r\n\r\n if (this.ani_type&(1<<4))//alpha\r\n {\r\n if (this.object.material&&this.object.material.map)\r\n {\r\n key.value.uv_offset = this.object.material.map.offset.clone();\r\n key.value.uv_repeat = this.object.material.map.repeat.clone();\r\n key.value.uv_rotation = this.object.material.map.rotation;\r\n }else{\r\n key.value.uv_offset=new THREE.Vector2(0,0);\r\n key.value.uv_repeat=new THREE.Vector2(1,1);\r\n key.value.uv_rotation=0;\r\n }\r\n }\r\n if (this.ani_type&(1<<5))//emissive\r\n {\r\n if (this.object.material&&this.object.material.emissive)\r\n {\r\n key.value.ill_color = this.object.material.emissive.clone();\r\n key.value.ill_power = this.object.material.emissiveIntensity;\r\n }\r\n }\r\n if (this.ani_type&(1<<6))//lightmap\r\n {\r\n if (this.object.material&&this.object.material.emissive)\r\n {\r\n key.value.lightMapIntensity = this.object.material.lightMapIntensity;\r\n key.value.aoMapIntensity = this.object.material.aoMapIntensity;\r\n }\r\n }\r\n if (this.ani_type&(1<<7))//lightmap\r\n {\r\n if (this.object&&this.object.bSkeleton)\r\n {\r\n key.value.clip_name = this.object.clip_name;\r\n }\r\n }\r\n\r\n if (this.ani_type&(1<<9))//lightmap\r\n {\r\n if (this.object)\r\n {\r\n key.value.eye = this.object.camera.position.clone();\r\n key.value.target = this.object.cameraControls.target.clone();\r\n }\r\n }\r\n\r\n\r\n ////\r\n let bfound=false;\r\n for (let ii=0;ii\r\n {\r\n if (!this.object) return;\r\n if (this.keys.length==0)\r\n {\r\n return;\r\n }\r\n let key1=null;\r\n let key2=null;\r\n let alpha=0;\r\n if (this.keys.length==1)\r\n {\r\n key1=this.keys[0];\r\n key2=this.keys[0];\r\n }else{\r\n let bFound=false;\r\n for (let i=0;itime)\r\n {\r\n bFound=true;\r\n key1=this.keys[0];\r\n key2=this.keys[0];\r\n break;\r\n }\r\n if (key1.time<=time&&key2.time>time)\r\n {\r\n bFound=true;\r\n alpha = (time-key1.time)/(key2.time-key1.time);\r\n break;\r\n }\r\n }\r\n if (!bFound)\r\n {\r\n alpha=0;\r\n key1=this.keys[this.keys.length-1];\r\n key2=key1;\r\n }\r\n }\r\n ////////////////////////////////////////////////////\r\n //插值运算\r\n let ease = key1.ease;\r\n if (ease!=0)\r\n {\r\n let p = Math.exp(Math.abs(ease/100.0));\r\n if (ease<0)\r\n {\r\n alpha=1-Math.pow((1-alpha),p);\r\n } else\r\n {\r\n alpha=Math.pow(alpha,p);\r\n }\r\n }\r\n if (this.ani_type&1)//位置控制\r\n {\r\n let position = key1.value.position.clone();\r\n position.lerp(key2.value.position,alpha);\r\n \r\n var startQuaternion = key1.value.quaternion.clone();\r\n startQuaternion.slerp(key2.value.quaternion,alpha);\r\n let scale = key1.value.scale.clone();\r\n scale.lerp(key2.value.scale,alpha);\r\n\r\n this.object.position.set(position.x,position.y,position.z);\r\n this.object.quaternion.set(startQuaternion.x,startQuaternion.y,startQuaternion.z,startQuaternion.w);\r\n this.object.scale.set(scale.x,scale.y,scale.z);\r\n }\r\n if (this.ani_type&(1<<1))//visible\r\n {\r\n this.object.visible = key1.value.visible;\r\n }\r\n \r\n if (this.ani_type&(1<<2))//color\r\n {\r\n if (this.object.color)\r\n {\r\n let color1 = key1.value.color.clone();\r\n let color2 = key2.value.color.clone();\r\n color1.lerp(color2,alpha);\r\n this.object.color.setRGB(color1.r,color1.g,color1.b);\r\n }\r\n if (this.object.material&&this.object.material.color)\r\n {\r\n let color1 = key1.value.color.clone();\r\n let color2 = key2.value.color.clone();\r\n color1.lerp(color2,alpha);\r\n this.object.material.color.setRGB(color1.r,color1.g,color1.b);\r\n }\r\n }\r\n if (this.ani_type&(1<<3))//alpha\r\n {\r\n if (this.object.material)\r\n {\r\n this.object.material.opacity=(1-alpha)*key1.value.opacity+alpha*key2.value.opacity;\r\n this.object.material.transparent=key1.value.transparent;\r\n }\r\n }\r\n if (this.ani_type&(1<<4))//uv\r\n {\r\n if (this.object.material&&this.object.material.map)\r\n {\r\n let offset = key1.value.uv_offset.clone();\r\n offset.lerp(key2.value.uv_offset,alpha);\r\n let repeat = key1.value.uv_repeat.clone();\r\n repeat.lerp(key2.value.uv_repeat,alpha);\r\n\r\n this.object.material.map.offset.set(offset.x,offset.y);\r\n this.object.material.map.repeat.set(repeat.x,repeat.y);\r\n this.object.material.map.rotation = (1-alpha)*key1.value.uv_rotation+alpha*key2.value.uv_rotation;\r\n }\r\n }\r\n if (this.ani_type&(1<<5))//emissive\r\n {\r\n if (this.object.material&&this.object.material.emissive)\r\n {\r\n let color1 = key1.value.ill_color.clone();\r\n color1.lerp( key2.value.ill_color,alpha);\r\n this.object.material.emissive.setRGB(color1.r,color1.g,color1.b);\r\n this.object.material.emissiveIntensity = (1-alpha)*key1.value.ill_power+alpha*key2.value.ill_power;\r\n }\r\n }\r\n if (this.ani_type&(1<<6))//lightmap\r\n {\r\n if (this.object.material&&this.object.material.aoMapIntensity!=null)\r\n {\r\n this.object.material.aoMapIntensity = (1-alpha)*key1.value.aoMapIntensity+alpha*key2.value.aoMapIntensity;\r\n this.object.material.lightMapIntensity = (1-alpha)*key1.value.lightMapIntensity+alpha*key2.value.lightMapIntensity;\r\n }\r\n }\r\n if (this.ani_type&(1<<7))//lightmap\r\n {\r\n if (this.object&&this.object.bSkeleton)\r\n {\r\n if (this.object.clip_name!=key1.value.clip_name)\r\n {\r\n document.o2.play_skeleton_clip(this.object,key1.value.clip_name,1);\r\n }\r\n }\r\n }\r\n if (this.ani_type&(1<<9))//camera\r\n {\r\n if (this.object.camera&&this.object.cameraControls)\r\n {\r\n let eye = key1.value.eye.clone();\r\n let target = key1.value.target.clone();\r\n eye.lerp(key2.value.eye,alpha);\r\n target.lerp(key2.value.target,alpha);\r\n this.object.camera.position.set(eye.x,eye.y,eye.z);\r\n this.object.cameraControls.target.set(target.x,target.y,target.z);\r\n }\r\n }\r\n }\r\n to_json_object=()=>\r\n {\r\n let obj={};\r\n if (this.object)\r\n {\r\n obj.objid=this.object.uuid;\r\n obj.objname=this.object.name;\r\n }\r\n obj.ani_type=this.ani_type;\r\n obj.keys=this.keys;\r\n return obj;\r\n }\r\n}\r\nclass timeline\r\n{\r\n constructor()\r\n {\r\n this.name=\"timeline\";\r\n this.current_time = 0;\r\n this.total_time=10;\r\n this.bPlaying=false;\r\n this.LoopType=0;\r\n this.objects=[];\r\n this.scripts=[];\r\n this.uuid=\"\";\r\n this.type=\"timeline\";\r\n this.autoPlay=false;\r\n this.rate=1;\r\n }\r\n excute_script=(key)=>{\r\n if (this.o2&&this.o2.script&&this.o2.script.timeline)\r\n {\r\n this.o2.script.timeline(this,key);\r\n }\r\n }\r\n frame_move=(time)=>{\r\n time=time*this.rate;\r\n if (!this.bPlaying)\r\n {\r\n return;\r\n }\r\n let oldtime = this.current_time;\r\n if (this.LoopType==0)//正向播放一次\r\n {\r\n this.current_time+=time;\r\n if (this.current_time>this.total_time)\r\n {\r\n this.current_time=this.total_time;\r\n this.bPlaying=false;\r\n }\r\n }\r\n if (this.LoopType==1)//正向循环播放\r\n {\r\n this.current_time+=time;\r\n if (this.current_time>this.total_time)\r\n {\r\n this.current_time=0;\r\n }\r\n }\r\n if (this.LoopType==2)//逆向播放一次\r\n {\r\n this.current_time-=time;\r\n if (this.current_time<0)\r\n {\r\n this.current_time=0;\r\n this.bPlaying=false;\r\n }\r\n }\r\n if (this.LoopType==3)//逆向循环播放\r\n {\r\n this.current_time-=time;\r\n if (this.current_time<0)\r\n {\r\n this.current_time=this.total_time;\r\n }\r\n }\r\n let old_loop = this.LoopType;\r\n if (old_loop==4)//钟摆播放的正向\r\n {\r\n this.current_time+=time;\r\n if (this.current_time>this.total_time)\r\n {\r\n this.current_time=this.total_time;\r\n this.LoopType=5;\r\n }\r\n }\r\n if (old_loop==5)//钟摆播放的逆向\r\n {\r\n this.current_time-=time;\r\n if (this.current_time<0)\r\n {\r\n this.current_time=0;\r\n this.LoopType=4;\r\n }\r\n }\r\n //更新对象\r\n if(oldtime!=this.current_time)\r\n {\r\n //脚本\r\n {\r\n for (let i=0;ioldtime&&key.time<=this.current_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }\r\n if (this.LoopType==1)//正向循环播放\r\n {\r\n if (this.current_time==0)//循环到第一帧了\r\n {\r\n if (key.time>oldtime&&key.time<=this.total_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }else{\r\n if (key.time>oldtime&&key.time<=this.current_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }\r\n }\r\n if (this.LoopType==2)//逆向播放一次\r\n {\r\n if (key.time=this.current_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }\r\n if (this.LoopType==3)//逆向循环播放\r\n {\r\n if (this.current_time==this.total_time)//循环到第一帧了\r\n {\r\n if (key.time=this.current_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }\r\n }\r\n if (old_loop==4)//钟摆播放的正向\r\n {\r\n if (key.time>oldtime&&key.time<=this.current_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }\r\n if (old_loop==5)//钟摆播放的逆向\r\n {\r\n if (key.time=this.current_time)\r\n {\r\n this.excute_script(key);\r\n }\r\n }\r\n }\r\n\r\n ///跳转后的脚本\r\n for (let i=0;i\r\n {\r\n this.current_time=time;\r\n this.update(this.current_time);\r\n }\r\n BindItem=(obj,type)=>\r\n { \r\n //判断重复的对象\r\n for (let i=0;i\r\n {\r\n let ao = new ani_object;\r\n ao.object=new THREE.Object3D;\r\n ao.object.name=\"_TLCameraCTRL\";\r\n ao.object.camera=this.o2.camera;\r\n ao.object.cameraControls=this.o2.cameraControls;\r\n ao.ani_type=1<<9;\r\n this.objects.push(ao);\r\n return ao;\r\n }\r\n RecordCamera=(time)=>\r\n {\r\n for (let i=0;i\r\n { \r\n //判断重复的对象\r\n for (let i=0;i\r\n { \r\n //判断重复的对象\r\n for (let i=0;i\r\n {\r\n let obj={};\r\n obj.total_time=this.total_time;\r\n obj.LoopType=this.LoopType;\r\n obj.autoPlay=this.autoPlay;\r\n obj.uuid=this.uuid;\r\n obj.type=this.type;\r\n obj.name=this.name;\r\n if (this.export) obj.export=1;\r\n obj.current_time=this.current_time;\r\n obj.objects=[];\r\n obj.scripts=this.scripts;\r\n for (let i=0;i\r\n {\r\n if (time<0)\r\n {\r\n time=0;\r\n }\r\n if (time>this.total_time) time>this.total_time;\r\n this.current_time=time;\r\n for (let i=0;i\r\n {\r\n for (let i=0;i\r\n {\r\n this.bPlaying=true;\r\n }\r\n stop=()=>\r\n {\r\n this.bPlaying=false;\r\n }\r\n remove_key=(obj)=>\r\n {\r\n let aniobj = this.objects[obj.objidx];\r\n if (aniobj)\r\n {\r\n let newkeys=[];\r\n for (let i=0;i\r\n {\r\n let aniobj = this.objects[obj.objidx];\r\n if (aniobj)\r\n {\r\n for (let i=0;i\r\n {\r\n let aniobj = this.objects[obj.objidx];\r\n if (aniobj)\r\n {\r\n for (let i=0;i\r\n {\r\n for (let j=0;j\r\n {\r\n let animation = {};\r\n animation.timelines=[];\r\n for (let i=0;i\r\n {\r\n let animation = {};\r\n animation.timelines=[];\r\n for (let i=0;i\r\n { \r\n let tl = new timeline;\r\n tl.o2=this.o2;\r\n tl.name=obj.name;\r\n if (!obj.uuid)\r\n {\r\n let obj2=new THREE.Object3D();\r\n obj.uuid=obj2.uuid;\r\n }\r\n tl.uuid=obj.uuid;\r\n this.timelines.push(tl);\r\n console.log(this.timelines);\r\n return tl;\r\n }\r\n get_timeline_by_name=(name)=>\r\n { \r\n for (let i=0;i\r\n { \r\n for (let i=0;i\r\n { \r\n this.timelines=[];\r\n if (!obj) return;\r\n for (let i=0;i\r\n { \r\n let timelines=[];\r\n if (!obj) return timelines;\r\n for (let i=0;i\r\n {\r\n let tl = new timeline;\r\n tl.o2=this.o2;\r\n tl.name=obj.name;\r\n tl.total_time=obj.total_time;\r\n tl.LoopType=obj.LoopType;\r\n tl.current_time=obj.current_time;\r\n tl.autoPlay=obj.autoPlay;\r\n tl.uuid = obj.uuid;\r\n if (obj.scripts) tl.scripts=obj.scripts;\r\n for (let i=0;i\r\n {\r\n for (let i=0;i\r\n {\r\n for (let i=0;i\r\n {\r\n if (object.uuid==uuid) return object;\r\n for (let i=0;i\r\n {\r\n for (let i=0;i\r\n {\r\n let new_tls = [];\r\n for (let i=0;i {\r\n this.camera_target2 = new THREE.Vector3(x, y, z)\r\n this.camera_eye2 = new THREE.Vector3(xx, yy, zz)\r\n this.begin_eye2 = this.camera.position.clone()\r\n let camDir = new THREE.Vector3()\r\n this.camera.getWorldDirection(camDir)\r\n this.begin_target2 = this.camera.position\r\n .clone()\r\n .add(camDir.multiplyScalar(this.cameraControls.minDistance))\r\n this.camera_switch_count2 = Math.floor(t * 100)\r\n this.camera_switch_total2 = this.camera_switch_count2\r\n this.cameraControls.target.set(x, y, z)\r\n //this.cameraControls.enableZoom = false;\r\n //console.log(\"move camera:\", this.camera.position);\r\n }\r\n stop_switch_camera() {\r\n this.camera_switch_count2 = 0\r\n this.camera_switch_total2 = 0\r\n }\r\n switch_camera_ex = (x, y, z, xx, yy, zz, t) => {\r\n if (this.model) {\r\n this.model.visible = false\r\n }\r\n let dir = new THREE.Vector3()\r\n dir = this.camera\r\n .getWorldDirection(dir)\r\n .clone()\r\n .multiplyScalar(1000)\r\n this.cameraControls.target = this.camera.position.clone().add(dir)\r\n let targetPos = new THREE.Vector3(x, y, z)\r\n let cameraPos = new THREE.Vector3(xx, yy, zz)\r\n let dis = targetPos.distanceTo(cameraPos)\r\n if (dis < 1000) {\r\n let lastDir = new THREE.Vector3()\r\n lastDir\r\n .set(x - xx, y - yy, z - zz)\r\n .normalize()\r\n .multiplyScalar(1000)\r\n this.switch_camera2(\r\n xx + lastDir.x,\r\n yy + lastDir.y,\r\n zz + lastDir.z,\r\n xx,\r\n yy,\r\n zz,\r\n t\r\n )\r\n } else {\r\n this.switch_camera2(x, y, z, xx, yy, zz, t)\r\n }\r\n\r\n //this.cameraControls.enableZoom = true;\r\n }\r\n switch_camera = (x, y, z, xx, yy, zz, t) => {\r\n this.bSwitchFinish = false\r\n this.switch_camera2(x, y, z, xx, yy, zz, t)\r\n //this.cameraControls.enableZoom = true;\r\n // this.camera_target = new THREE.Vector3(x,y,z);\r\n // this.camera_eye = new THREE.Vector3(xx,yy,zz);\r\n // this.camera_switch_count=100;\r\n }\r\n switch_camera2 = (x, y, z, xx, yy, zz, t) => {\r\n console.log('move_camera')\r\n //begin\r\n this.begin_target2 = this.cameraControls.target.clone()\r\n this.begin_eye2 = this.camera.position.clone()\r\n let verz = new THREE.Vector3(0, 0, 1)\r\n let dst1 = this.begin_target2.clone()\r\n dst1.sub(this.begin_eye2)\r\n this.begin_length = dst1.length()\r\n dst1.normalize()\r\n this.begin_quaterion = new THREE.Quaternion()\r\n this.begin_quaterion.setFromUnitVectors(verz, dst1)\r\n\r\n //end\r\n this.camera_target2 = new THREE.Vector3(x, y, z)\r\n this.camera_eye2 = new THREE.Vector3(xx, yy, zz)\r\n let dst2 = this.camera_target2.clone()\r\n dst2.sub(this.camera_eye2)\r\n this.end_length = dst2.length()\r\n dst2.normalize()\r\n this.end_quaterion = new THREE.Quaternion()\r\n this.end_quaterion.setFromUnitVectors(verz, dst2)\r\n\r\n if (!t) t = 1\r\n this.camera_switch_count2 = 100 * t\r\n this.camera_switch_total2 = 100 * t\r\n }\r\n\r\n collect_visible_object = (obj, objs) => {\r\n if (!obj.visible) return\r\n if (obj.bLock) return\r\n if (obj.type == 'Mesh' || obj.type == 'Sprite' || obj.type == 'Reflector')\r\n objs.push(obj)\r\n for (let i = 0, l = obj.children.length; i < l; i++) {\r\n this.collect_visible_object(obj.children[i], objs)\r\n }\r\n }\r\n ray_test = (event) => {\r\n let mouse = new THREE.Vector2()\r\n mouse.x = (event.offsetX / this.WIDTH) * 2 - 1\r\n mouse.y = -(event.offsetY / this.HEIGHT) * 2 + 1\r\n let raycaster = new THREE.Raycaster()\r\n raycaster.setFromCamera(mouse, this.camera)\r\n let objects = []\r\n for (let i = 0; i < this.scene.children.length; i++) {\r\n if (this.scene.children[i] != this.gizmo) {\r\n if (this.scene.children[i].name == 'no_pick') continue\r\n this.collect_visible_object(this.scene.children[i], objects)\r\n }\r\n }\r\n var intersects = raycaster.intersectObjects(objects)\r\n return intersects\r\n }\r\n\r\n ray_test2 = (object, event) => {\r\n let mouse = new THREE.Vector2()\r\n mouse.x = (event.offsetX / this.WIDTH) * 2 - 1\r\n mouse.y = -(event.offsetY / this.HEIGHT) * 2 + 1\r\n let raycaster = new THREE.Raycaster()\r\n raycaster.setFromCamera(mouse, this.camera)\r\n var intersects = raycaster.intersectObjects(object, true)\r\n return intersects\r\n }\r\n apply_skeleton_mtl = (obj, depth, mtls) => {\r\n let o2 = this\r\n let mtl = mtls[depth]\r\n if (mtl) {\r\n let material = new THREE.MeshPhongMaterial()\r\n if (mtl.map) {\r\n material.map = o2.create_map_with_default(mtl.map)\r\n }\r\n material.uuid = mtl.uuid\r\n material.side = mtl.side\r\n material.transparent = mtl.transparent\r\n if (mtl.opacity) material.opacity = mtl.opacity\r\n if (mtl.alphaTest) material.alphaTest = mtl.alphaTest\r\n if (mtl.blending) material.blending = mtl.blending\r\n if (mtl.shininess) material.shininess = mtl.shininess\r\n material.o2id = mtl.o2id\r\n material.depthTest = mtl.depthTest\r\n material.depthWrite = mtl.depthWrite\r\n material.alphaTest = mtl.alphaTest\r\n\r\n if (mtl.type == 'MeshPhongMaterial') {\r\n material.color.setHex(mtl.color)\r\n if (mtl.combine != null) material.combine = mtl.combine\r\n if (mtl.reflectivity != null) material.reflectivity = mtl.reflectivity\r\n if (mtl.lightMapIntensity != null)\r\n material.lightMapIntensity = mtl.lightMapIntensity\r\n if (mtl.emissiveIntensity != null)\r\n material.emissiveIntensity = mtl.emissiveIntensity\r\n if (mtl.aoMapIntensity != null)\r\n material.aoMapIntensity = mtl.aoMapIntensity\r\n if (mtl.normalScale != null) material.normalScale = mtl.normalScale\r\n if (mtl.alphaMap != null)\r\n material.alphaMap = o2.create_map_with_default(mtl.alphaMap)\r\n if (mtl.emissiveMap != null)\r\n material.emissiveMap = o2.create_map_with_default(mtl.emissiveMap)\r\n if (mtl.normalMap != null)\r\n material.normalMap = o2.create_map_with_default(mtl.normalMap)\r\n if (mtl.specularMap != null)\r\n material.specularMap = o2.create_map_with_default(mtl.specularMap)\r\n if (mtl.aoMap != null)\r\n material.aoMap = o2.create_map_with_default(mtl.aoMap)\r\n if (mtl.lightMap != null)\r\n material.lightMap = o2.create_map_with_default(mtl.lightMap)\r\n material.specular.setHex(mtl.specular)\r\n material.emissive.setHex(mtl.emissive)\r\n if (mtl.shininess) material.shininess = mtl.shininess\r\n material.needsUpdate = true\r\n }\r\n obj.material = material\r\n }\r\n for (let i = 0; i < obj.children.length; i++) {\r\n let depth2 = depth + '_' + i\r\n this.apply_skeleton_mtl(obj.children[i], depth2, mtls)\r\n }\r\n }\r\n animate = () => {\r\n requestAnimationFrame(this.animate)\r\n let time2 = Date.now()\r\n let time_passed = (time2 - this.last_time) / 1000\r\n if (this.is_mobile && time_passed < 0.03) return\r\n //刷新渲染状态\r\n if (this.rendererStats && this.rendererStats.bShow) {\r\n this.rendererStats.update(this.renderer)\r\n }\r\n\r\n //gif动画\r\n if (this.gif_anis) {\r\n for (let i = 0; i < this.gif_anis.length; i++) {\r\n let gifani = this.gif_anis[i]\r\n let tex = gifani.texture\r\n gifani.count++\r\n if (gifani.count >= gifani.frame) {\r\n //更新uv\r\n gifani.count = 0\r\n gifani.current_frame++\r\n let count = gifani.width * gifani.height\r\n if (gifani.current_frame >= count) gifani.current_frame = 0\r\n tex.repeat.set(1 / gifani.width, 1 / gifani.height)\r\n let x = gifani.current_frame % gifani.width\r\n let y =\r\n gifani.height - Math.ceil((gifani.current_frame + 1) / gifani.width)\r\n //console.log(gifani.current_frame,x,y);\r\n tex.offset.set(x / gifani.width, y / gifani.height)\r\n tex.wrapS = tex.wrapT = THREE.RepeatWrapping\r\n }\r\n }\r\n }\r\n if (this.camera_switch_count > 0) {\r\n this.camera_switch_count -= 1\r\n this.cameraControls.target.lerp(this.camera_target, 0.05)\r\n this.camera.position.lerp(this.camera_eye, 0.05)\r\n if (this.camera_switch_count == 0) {\r\n this.cameraControls.target.set(\r\n this.camera_target.x,\r\n this.camera_target.y,\r\n this.camera_target.z\r\n )\r\n this.camera.position.set(\r\n this.camera_eye.x,\r\n this.camera_eye.y,\r\n this.camera_eye.z\r\n )\r\n }\r\n }\r\n if (this.camera_switch_count2 > 0) {\r\n this.camera_switch_count2 -= 1\r\n let target = this.begin_target2.clone()\r\n let eye = this.begin_eye2.clone()\r\n let alpha = 1 - this.camera_switch_count2 / this.camera_switch_total2\r\n let alpha_old = alpha\r\n let ease = -100\r\n if (ease != 0) {\r\n let p = Math.exp(Math.abs(ease / 100.0))\r\n if (ease < 0) {\r\n alpha = 1 - Math.pow(1 - alpha, p)\r\n } else {\r\n alpha = Math.pow(alpha, p)\r\n }\r\n }\r\n\r\n target.lerp(this.camera_target2, alpha)\r\n let eyelen2 = this.begin_length * (1 - alpha) + this.end_length * alpha\r\n let quat2 = this.begin_quaterion.clone()\r\n quat2.slerp(this.end_quaterion, alpha)\r\n let eyedir = new THREE.Vector3(0, 0, 1)\r\n eyedir.applyQuaternion(quat2)\r\n eyedir.multiplyScalar(-eyelen2)\r\n eye.set(target.x, target.y, target.z)\r\n eye.add(eyedir)\r\n // eye.lerp(this.camera_eye2, alpha);\r\n this.cameraControls.target.set(target.x, target.y, target.z)\r\n this.camera.position.set(eye.x, eye.y, eye.z)\r\n //console.log(this.cameraControls.target);\r\n }\r\n //切换镜头完成回调\r\n else if (!this.bSwitchFinish) {\r\n //console.log(\"switch_camera finish\");\r\n this.bSwitchFinish = true\r\n let arr = this.switch_camera_finish\r\n let len = arr.length\r\n if (len > 0) {\r\n for (let i = 0; i < len; i++) {\r\n arr[i](\r\n this.cameraControls.target.x,\r\n this.cameraControls.target.y,\r\n this.cameraControls.target.z,\r\n this.camera.position.x,\r\n this.camera.position.y,\r\n this.camera.position.z\r\n )\r\n }\r\n }\r\n }\r\n\r\n if (time_passed > 0.1) time_passed = 0.1 //间隔不要超过0.1秒\r\n for (let i = 0; i < this.frame_move_recall.length; i++) {\r\n this.frame_move_recall[i](time_passed)\r\n }\r\n\r\n // if (this.camera_move_dir.length() > 0) {\r\n // this.b_camera_move = true;\r\n // let originPos = this.camera.position.clone();\r\n // let move_dir = this.camera_move_dir.clone().multiplyScalar(time_passed);\r\n // this.fpsControls.moveForward(move_dir.z);\r\n // this.fpsControls.moveRight(move_dir.x);\r\n // this.camera.position.y += move_dir.y;\r\n // // let dir = new THREE.Vector3();\r\n // // this.camera.getWorldDirection(dir);\r\n // // dir.multiplyScalar(this.cameraControls.distance);\r\n // let targetDir = this.camera.position.clone().sub(originPos);\r\n // this.cameraControls.target.add(targetDir);\r\n // //this.cameraControls.target = this.camera.position.clone().add(dir);\r\n // }\r\n // else {\r\n // this.b_camera_move = false;\r\n // }\r\n // if (this.script && this.script[\"frame_move\"]) {\r\n // this.script[\"frame_move\"](time_passed);\r\n // }\r\n this.last_time = time2\r\n this.animation.frame_move(time_passed)\r\n this.cameraControls.update()\r\n if (this.custom_render) {\r\n this.custom_render()\r\n } else {\r\n this.render()\r\n }\r\n if (this.div_bind.length > 0) {\r\n let viewMatrix = new THREE.Matrix4()\r\n let viewProjectionMatrix = new THREE.Matrix4()\r\n viewMatrix.copy(this.camera.matrixWorldInverse)\r\n viewProjectionMatrix.multiplyMatrices(\r\n this.camera.projectionMatrix,\r\n viewMatrix\r\n )\r\n\r\n for (let i = 0; i < this.div_bind.length; i++) {\r\n let bind = this.div_bind[i]\r\n let pos = bind.position.clone()\r\n pos.applyMatrix4(viewProjectionMatrix)\r\n pos.x = (pos.x * this.WIDTH) / 2 + this.WIDTH / 2\r\n pos.y = this.HEIGHT / 2 - (pos.y * this.HEIGHT) / 2\r\n bind.div.style.position = 'absolute'\r\n let posx = Math.round(pos.x)\r\n let posy = Math.round(pos.y)\r\n bind.div.style.left = posx.toString() + 'px'\r\n bind.div.style.top = posy.toString() + 'px'\r\n }\r\n }\r\n }\r\n\r\n new_object = (obj) => {\r\n if (obj.guid) {\r\n var obj3 = new THREE.Object3D()\r\n obj3.guid = obj.guid\r\n this.objects[obj.guid] = obj\r\n }\r\n }\r\n select_object = (obj) => {\r\n if (obj.guid) {\r\n var obj3 = this.objects[obj.guid]\r\n if (obj3) {\r\n this.enable_gizmo(obj3)\r\n }\r\n }\r\n }\r\n load_mesh_data = (geometry, saved_object, from_zip) => {\r\n let o2 = this\r\n geometry.meshid = saved_object.meshid\r\n let map = o2.map_white\r\n if (saved_object.material.map) {\r\n map = o2.create_map_with_default(saved_object.material.map)\r\n if (map == null) {\r\n map = o2.map_white\r\n }\r\n if (!saved_object.material.map.o2_default) {\r\n map.offset.set(\r\n saved_object.material.map.offset.x,\r\n saved_object.material.map.offset.y\r\n )\r\n map.repeat.set(\r\n saved_object.material.map.repeat.x,\r\n saved_object.material.map.repeat.y\r\n )\r\n map.rotation = saved_object.material.map.rotation\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n }\r\n if (saved_object.material.map.gifani) {\r\n let gifani = {}\r\n gifani.count = 0\r\n gifani.frame = saved_object.material.map.gifani.frame\r\n gifani.current_frame = 0\r\n gifani.width = saved_object.material.map.gifani.width\r\n gifani.height = saved_object.material.map.gifani.height\r\n gifani.texture = map\r\n map.gifani = saved_object.material.map.gifani\r\n let found = false\r\n for (let i = 0; i < o2.gif_anis.length; i++) {\r\n let ga = o2.gif_anis[i]\r\n if (ga.texture === map) {\r\n found = true\r\n break\r\n }\r\n }\r\n if (!found) o2.gif_anis.push(gifani)\r\n }\r\n }\r\n let material = new THREE.MeshPhongMaterial({ map: map })\r\n if (saved_object.material.lightMap) {\r\n let map2 = o2.create_map_with_default(saved_object.material.lightMap)\r\n material.lightMap = map2\r\n }\r\n let mtl = saved_object.material\r\n material.uuid = mtl.uuid\r\n material.side = mtl.side\r\n material.transparent = mtl.transparent\r\n if (mtl.opacity) material.opacity = mtl.opacity\r\n if (mtl.alphaTest) material.alphaTest = mtl.alphaTest\r\n if (mtl.blending) material.blending = mtl.blending\r\n if (mtl.shininess) material.shininess = mtl.shininess\r\n material.o2id = mtl.o2id\r\n\r\n material.depthTest = mtl.depthTest\r\n material.depthWrite = mtl.depthWrite\r\n material.alphaTest = mtl.alphaTest\r\n // mtl.reflectivity=0;\r\n if (mtl.type == 'MeshPhongMaterial') {\r\n material.color.setHex(mtl.color)\r\n if (mtl.combine != null) material.combine = mtl.combine\r\n if (mtl.reflectivity != null) material.reflectivity = mtl.reflectivity\r\n if (mtl.lightMapIntensity != null)\r\n material.lightMapIntensity = mtl.lightMapIntensity\r\n if (mtl.emissiveIntensity != null)\r\n material.emissiveIntensity = mtl.emissiveIntensity\r\n if (mtl.aoMapIntensity != null)\r\n material.aoMapIntensity = mtl.aoMapIntensity\r\n if (mtl.normalScale != null) material.normalScale = mtl.normalScale\r\n if (saved_object.material.alphaMap != null)\r\n material.alphaMap = o2.create_map_with_default(\r\n saved_object.material.alphaMap\r\n )\r\n if (saved_object.material.emissiveMap != null)\r\n material.emissiveMap = o2.create_map_with_default(\r\n saved_object.material.emissiveMap\r\n )\r\n if (saved_object.material.normalMap != null)\r\n material.normalMap = o2.create_map_with_default(\r\n saved_object.material.normalMap\r\n )\r\n if (saved_object.material.specularMap != null)\r\n material.specularMap = o2.create_map_with_default(\r\n saved_object.material.specularMap\r\n )\r\n if (saved_object.material.aoMap != null)\r\n material.aoMap = o2.create_map_with_default(saved_object.material.aoMap)\r\n material.specular.setHex(mtl.specular)\r\n material.emissive.setHex(mtl.emissive)\r\n if (mtl.shininess) material.shininess = mtl.shininess\r\n material.needsUpdate = true\r\n }\r\n\r\n o2.materials.push({ id: material.o2id, mtl: material })\r\n material.envMap = o2.create_envMap(mtl.envMap, from_zip)\r\n var mesh = new THREE.Mesh(geometry, material)\r\n\r\n mesh.castShadow = saved_object.castShadow\r\n mesh.receiveShadow = saved_object.receiveShadow\r\n\r\n mesh.matrixWorldNeedsUpdate = true\r\n mesh.name = saved_object.name\r\n mesh.uuid = saved_object.uuid\r\n var mat = saved_object.wts\r\n mesh.applyMatrix4(mat)\r\n mesh.visible = saved_object.visible\r\n return mesh\r\n }\r\n load_saved_object = (saved_object, from_zip) => {\r\n let o2 = this\r\n return new Promise((resolve, reject) => {\r\n if (saved_object.type == 'Mesh') {\r\n if (from_zip) {\r\n let xxx = this.all_files[saved_object.meshid]\r\n let geometry = o2.load_mesh2(xxx)\r\n if (geometry) {\r\n o2.meshes[saved_object.meshid] = geometry\r\n let mesh = o2.load_mesh_data(geometry, saved_object, from_zip)\r\n\r\n let xy = saved_object.xy\r\n if (xy && geometry.attributes.uv2) {\r\n mesh.xy = mesh\r\n let fStep = o2.scene.bake_step\r\n let buffer = geometry.attributes.uv2.array\r\n for (let i = 0; i < buffer.length / 2; i++) {\r\n buffer[i * 2] = fStep * xy.ix + fStep * buffer[i * 2]\r\n buffer[i * 2 + 1] =\r\n 1 - (fStep * xy.iy + fStep * (1 - buffer[i * 2 + 1]))\r\n }\r\n mesh.xy = xy\r\n geometry.attributes.uv2.needsUpdate = true\r\n }\r\n\r\n resolve(mesh)\r\n } else {\r\n reject('create geometry fail!')\r\n }\r\n } else {\r\n let mdl_url = o2.project_url + saved_object.meshid\r\n let xhr = new XMLHttpRequest()\r\n xhr.open('get', mdl_url, true)\r\n xhr.responseType = 'arraybuffer'\r\n xhr.send()\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var xxx = xhr.response\r\n let geometry = o2.load_mesh2(xxx)\r\n if (geometry) {\r\n let mesh = o2.load_mesh_data(geometry, saved_object, from_zip)\r\n let xy = saved_object.xy\r\n if (xy && geometry.attributes.uv2) {\r\n mesh.xy = xy\r\n let fStep = o2.scene.bake_step\r\n let buffer = geometry.attributes.uv2.array\r\n for (let i = 0; i < buffer.length / 2; i++) {\r\n buffer[i * 2] = fStep * xy.ix + fStep * buffer[i * 2]\r\n buffer[i * 2 + 1] =\r\n 1 - (fStep * xy.iy + fStep * (1 - buffer[i * 2 + 1]))\r\n }\r\n mesh.xy = xy\r\n geometry.attributes.uv2.needsUpdate = true\r\n }\r\n resolve(mesh)\r\n } else {\r\n reject('create geo fail!')\r\n }\r\n } else {\r\n reject(xhr.status)\r\n }\r\n }\r\n if (xhr.status === 404) {\r\n //console.log(\"not found:\"+saved_object);\r\n reject(xhr.status)\r\n }\r\n }\r\n }\r\n } else if (saved_object.type == 'LineSegments') {\r\n if (from_zip) {\r\n let xxx = this.all_files[saved_object.file]\r\n if (xxx) {\r\n let line = o2.load_mesh_line(xxx)\r\n if (line) {\r\n line.name = saved_object.name\r\n line.file = saved_object.file\r\n let mat = saved_object.wts\r\n line.applyMatrix4(mat)\r\n line.material.color.setHex(saved_object.material.color)\r\n resolve(line)\r\n } else {\r\n reject('create geo fail!')\r\n }\r\n } else {\r\n reject('create geometry fail!')\r\n }\r\n } else {\r\n //console.log(\"Lineseg load\",saved_object);\r\n let mdl_url = o2.project_url + saved_object.file\r\n let xhr = new XMLHttpRequest()\r\n xhr.open('get', mdl_url, true)\r\n xhr.responseType = 'arraybuffer'\r\n xhr.send()\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var xxx = xhr.response\r\n let line = o2.load_mesh_line(xxx)\r\n if (line) {\r\n line.name = saved_object.name\r\n line.file = saved_object.file\r\n let mat = saved_object.wts\r\n line.applyMatrix4(mat)\r\n line.material.color.setHex(saved_object.material.color)\r\n resolve(line)\r\n } else {\r\n reject('create geo fail!')\r\n }\r\n } else {\r\n reject(xhr.status)\r\n }\r\n }\r\n if (xhr.status === 404) {\r\n console.log('not found:' + saved_object)\r\n reject(xhr.status)\r\n }\r\n }\r\n }\r\n } else if (saved_object.type == 'Object3D') {\r\n let obj = new THREE.Object3D()\r\n obj.matrixWorldNeedsUpdate = true\r\n obj.name = saved_object.name\r\n obj.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj.applyMatrix4(mat)\r\n obj.visible = saved_object.visible\r\n if (saved_object.children && saved_object.children.length > 0) {\r\n const allRequest = []\r\n if (1) {\r\n var mdls = saved_object.children\r\n for (let index = 0; index < mdls.length; index++) {\r\n const model_obj = mdls[index]\r\n var promise = o2.load_saved_object(model_obj, from_zip)\r\n promise.then((obj3) => {\r\n if (obj3) obj.add(obj3)\r\n })\r\n allRequest.push(promise)\r\n }\r\n Promise.all(allRequest).then(\r\n () => {\r\n resolve(obj)\r\n },\r\n () => {\r\n reject()\r\n }\r\n )\r\n }\r\n } else {\r\n resolve(obj)\r\n }\r\n } else if (saved_object.type == 'Sprite') {\r\n let mtl = saved_object.material\r\n let map = null\r\n if (mtl.map) {\r\n map = o2.create_map_with_default(mtl.map)\r\n if (map) {\r\n map.offset.set(\r\n saved_object.material.map.offset.x,\r\n saved_object.material.map.offset.y\r\n )\r\n map.repeat.set(\r\n saved_object.material.map.repeat.x,\r\n saved_object.material.map.repeat.y\r\n )\r\n map.rotation = saved_object.material.map.rotation\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n if (saved_object.material.map.gifani) {\r\n let gifani = {}\r\n gifani.count = 0\r\n gifani.frame = saved_object.material.map.gifani.frame\r\n gifani.current_frame = 0\r\n gifani.width = saved_object.material.map.gifani.width\r\n gifani.height = saved_object.material.map.gifani.height\r\n gifani.texture = map\r\n map.gifani = saved_object.material.map.gifani\r\n let found = false\r\n for (let i = 0; i < o2.gif_anis.length; i++) {\r\n let ga = o2.gif_anis[i]\r\n if (ga.texture === map) {\r\n found = true\r\n break\r\n }\r\n }\r\n if (!found) o2.gif_anis.push(gifani)\r\n }\r\n }\r\n }\r\n if (map == null) {\r\n map = o2.map_white\r\n }\r\n\r\n let sprite = new THREE.Sprite(\r\n new THREE.SpriteMaterial({ map: map, color: '#69f' })\r\n )\r\n sprite.material.color.setHex(mtl.color)\r\n if (mtl.opacity) sprite.material.opacity = mtl.opacity\r\n sprite.material.uuid = mtl.uuid\r\n sprite.material.uuid = mtl.uuid\r\n sprite.material.uuid = mtl.uuid\r\n sprite.material.side = mtl.side\r\n sprite.material.o2id = mtl.o2id\r\n if (mtl.alphaTest) sprite.material.alphaTest = mtl.alphaTest\r\n sprite.material.transparent = mtl.transparent\r\n sprite.material.depthWrite = mtl.depthWrite\r\n sprite.material.blending = mtl.blending\r\n sprite.material.depthTest = mtl.depthTest\r\n\r\n sprite.position.set(\r\n saved_object.position.x,\r\n saved_object.position.y,\r\n saved_object.position.z\r\n )\r\n sprite.scale.set(\r\n saved_object.scale.x,\r\n saved_object.scale.y,\r\n saved_object.scale.z\r\n )\r\n sprite.uuid = saved_object.uuid\r\n sprite.name = saved_object.name\r\n sprite.visible = saved_object.visible\r\n resolve(sprite)\r\n } else if (saved_object.type == 'AmbientLight') {\r\n let obj1 = new THREE.AmbientLight(saved_object.color)\r\n obj1.intensity = saved_object.intensity\r\n obj1.matrixWorldNeedsUpdate = true\r\n obj1.name = saved_object.name\r\n obj1.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj1.applyMatrix4(mat)\r\n obj1.visible = saved_object.visible\r\n resolve(obj1)\r\n } else if (saved_object.type == 'Group' && saved_object.bSkeleton) {\r\n let o2 = this\r\n //console.log(\"load skeleton\", saved_object);\r\n let url = this.project_url + saved_object.url\r\n if (from_zip) {\r\n let f1 = o2.all_files[saved_object.url]\r\n let blob = new Blob([f1])\r\n url = URL.createObjectURL(blob)\r\n }\r\n this.load_skeleton_animate(url, saved_object.name, (skeleton) => {\r\n skeleton.obj.clips = saved_object.clips\r\n skeleton.obj.bSkeleton = true\r\n skeleton.obj.url = saved_object.url\r\n skeleton.obj.clip_name = saved_object.clip_name\r\n let obj = skeleton.obj\r\n obj.matrixWorldNeedsUpdate = true\r\n obj.name = saved_object.name\r\n obj.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj.applyMatrix4(mat)\r\n obj.visible = saved_object.visible\r\n obj.traverse(function (child) {\r\n if (child.material && child.material.type == 'MeshPhongMaterial') {\r\n child.material.color.setRGB(1, 1, 1)\r\n child.material.lightMap = o2.map_white\r\n }\r\n })\r\n //加载材质\r\n if (saved_object.mtls) {\r\n o2.apply_skeleton_mtl(obj, '0', saved_object.mtls)\r\n }\r\n //加载动作\r\n let count = 0\r\n if (skeleton.obj.clips.length > 0) {\r\n for (let i = 0; i < skeleton.obj.clips.length; i++) {\r\n let clip = skeleton.obj.clips[i]\r\n let url = o2.project_url + clip.url\r\n let f1 = o2.all_files[clip.url]\r\n if (f1) {\r\n let blob = new Blob([f1])\r\n url = URL.createObjectURL(blob)\r\n }\r\n o2.load_skeleton_clip(url, skeleton.obj, clip.name, () => {\r\n count++\r\n if (count == skeleton.obj.clips.length) {\r\n o2.play_skeleton_clip(\r\n skeleton.obj,\r\n skeleton.obj.clip_name,\r\n true\r\n )\r\n resolve(obj)\r\n }\r\n })\r\n }\r\n } else {\r\n resolve(obj)\r\n }\r\n })\r\n } else if (saved_object.type == 'DirectionalLight') {\r\n let obj1 = new THREE.DirectionalLight(saved_object.color, 0.5)\r\n obj1.intensity = saved_object.intensity\r\n obj1.matrixWorldNeedsUpdate = true\r\n obj1.name = saved_object.name\r\n obj1.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj1.applyMatrix4(mat)\r\n obj1.visible = saved_object.visible\r\n if (true) {\r\n obj1.castShadow = true\r\n obj1.shadow.camera.near = 100\r\n obj1.shadow.camera.far = 1000000\r\n obj1.shadow.camera.right = 200000\r\n obj1.shadow.camera.left = -200000\r\n obj1.shadow.camera.top = 200000\r\n obj1.shadow.camera.bottom = -200000\r\n obj1.shadow.mapSize.width = 1024\r\n obj1.shadow.mapSize.height = 1024\r\n }\r\n resolve(obj1)\r\n } else if (saved_object.type == 'PointLight') {\r\n //console.log(\"PointLight\");\r\n let obj1 = new THREE.PointLight(saved_object.color, 1, 1000)\r\n obj1.intensity = saved_object.intensity\r\n obj1.matrixWorldNeedsUpdate = true\r\n obj1.name = saved_object.name\r\n obj1.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj1.applyMatrix4(mat)\r\n obj1.decay = saved_object.decay\r\n obj1.distance = saved_object.distance\r\n obj1.visible = saved_object.visible\r\n obj1.castShadow = true\r\n if (obj1.castShadow) {\r\n obj1.shadow.camera.near = 100\r\n obj1.shadow.camera.far = 60000\r\n obj1.shadow.bias = 0.0001\r\n obj1.shadow.mapSize.width = 1024\r\n obj1.shadow.mapSize.height = 1024\r\n }\r\n resolve(obj1)\r\n } else if (saved_object.type == 'SpotLight') {\r\n let obj1 = new THREE.SpotLight(saved_object.color)\r\n obj1.intensity = saved_object.intensity\r\n obj1.matrixWorldNeedsUpdate = true\r\n obj1.name = saved_object.name\r\n obj1.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj1.applyMatrix4(mat)\r\n obj1.decay = saved_object.decay\r\n obj1.penumbra = saved_object.penumbra\r\n obj1.distance = saved_object.distance\r\n obj1.angle = saved_object.angle\r\n obj1.visible = saved_object.visible\r\n obj1.castShadow = saved_object.castShadow\r\n if (obj1.castShadow) {\r\n obj1.shadow.camera.near = 100\r\n obj1.shadow.camera.far = 60000\r\n obj1.shadow.bias = 0.0001\r\n obj1.shadow.mapSize.width = 1024\r\n obj1.shadow.mapSize.height = 1024\r\n }\r\n obj1.target_uuid = saved_object.target_uuid\r\n resolve(obj1)\r\n } else if (saved_object.type == 'Reflector') {\r\n if (saved_object.material == null) {\r\n resolve(null)\r\n } else {\r\n let uv = new UVTransformNode()\r\n let masktex = this.create_map_with_default(\r\n saved_object.material.alphaMap\r\n )\r\n const mask = new SwitchNode(new TextureNode(masktex), 'w')\r\n const planeGeo = new THREE.PlaneGeometry(10000, 10000)\r\n let geometry\r\n geometry = new THREE.PlaneGeometry(10000, 10000)\r\n let groundMirror = new ReflectorRTT(geometry, {\r\n clipBias: 0.003,\r\n textureWidth: this.WIDTH,\r\n textureHeight: this.HEIGHT\r\n })\r\n const mirror = new ReflectorNode(groundMirror)\r\n\r\n let map_normal = this.create_map_with_default(\r\n saved_object.material.normalMap\r\n )\r\n const normalMap = new TextureNode(map_normal)\r\n normalMap.uv = uv\r\n const normalXY = new SwitchNode(normalMap, 'xy')\r\n const normalXYFlip = new MathNode(normalXY, MathNode.INVERT)\r\n const offsetNormal = new OperatorNode(\r\n normalXYFlip,\r\n new FloatNode(0.5),\r\n OperatorNode.SUB\r\n )\r\n mirror.offset = new OperatorNode(\r\n offsetNormal, // normal\r\n new FloatNode(saved_object.material.XnormalScale), // scale\r\n OperatorNode.MUL\r\n )\r\n let diffusemap = this.create_map_with_default(\r\n saved_object.material.map\r\n )\r\n let light_map = this.create_map_with_default(\r\n saved_object.material.lightMap\r\n )\r\n const map = new TextureNode(diffusemap)\r\n let color_node = new ColorNode(saved_object.material.color)\r\n const diffuseNode = new OperatorNode(\r\n map,\r\n color_node,\r\n OperatorNode.MUL\r\n )\r\n\r\n const lightmap = new TextureNode(light_map)\r\n //console.log(saved_object);\r\n map.uv = uv\r\n map.uv.setUvTransform(\r\n saved_object.material.map.offset.x,\r\n saved_object.material.map.offset.y,\r\n saved_object.material.map.repeat.x,\r\n saved_object.material.map.repeat.y,\r\n saved_object.material.map.rotation\r\n )\r\n map.uv._u = saved_object.material.map.offset.x\r\n map.uv._v = saved_object.material.map.offset.y\r\n map.uv._sx = saved_object.material.map.repeat.x\r\n map.uv._sy = saved_object.material.map.repeat.y\r\n map.uv._rotation = saved_object.material.map.rotation\r\n\r\n let groundMirrorMaterial = new PhongNodeMaterial()\r\n groundMirrorMaterial.environment = mirror\r\n groundMirrorMaterial.environmentAlpha = mask\r\n groundMirrorMaterial.color = diffuseNode\r\n groundMirrorMaterial.light = lightmap\r\n\r\n let mtl = saved_object.material\r\n let material = groundMirrorMaterial\r\n material.uuid = mtl.uuid\r\n material.side = mtl.side\r\n material.transparent = mtl.transparent\r\n if (mtl.opacity) material.opacity = mtl.opacity\r\n if (mtl.alphaTest) material.alphaTest = mtl.alphaTest\r\n if (mtl.blending) material.blending = mtl.blending\r\n if (mtl.shininess) material.shininess = mtl.shininess\r\n material.o2id = mtl.o2id\r\n\r\n material.depthTest = mtl.depthTest\r\n material.depthWrite = mtl.depthWrite\r\n material.alphaTest = mtl.alphaTest\r\n\r\n let mirrorMesh = new THREE.Mesh(planeGeo, groundMirrorMaterial)\r\n groundMirror.add(mirrorMesh)\r\n let obj = groundMirror\r\n obj.matrixWorldNeedsUpdate = true\r\n obj.name = saved_object.name\r\n obj.uuid = saved_object.uuid\r\n let mat = saved_object.wts\r\n obj.applyMatrix4(mat)\r\n obj.visible = saved_object.visible\r\n const ua = navigator.userAgent.toLowerCase()\r\n let isIos = !!ua.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/i)\r\n //console.log(\"是不是IOS\" + isIos);\r\n if (isIos) {\r\n var ver = ua.match(/cpu iphone os (.*?) like mac os/)\r\n //console.log(\"ios版本:\" + ver[1]);\r\n if (!ver) {\r\n console.log('获取不到IOS版本')\r\n } else {\r\n var arrStr = ver[1].split('_')\r\n if (parseInt(arrStr[0]) >= 15) {\r\n console.log('ios版本:' + ver[1])\r\n let panelMat = new THREE.MeshPhongMaterial()\r\n panelMat.lightMap = light_map\r\n panelMat.map = diffusemap\r\n panelMat.alphaMap = masktex\r\n panelMat.normalMap = map_normal\r\n let panelMesh = new THREE.Mesh(planeGeo, panelMat)\r\n panelMesh.applyMatrix4(mat)\r\n resolve(panelMesh)\r\n return\r\n }\r\n }\r\n }\r\n resolve(obj)\r\n }\r\n } else {\r\n resolve(null)\r\n }\r\n })\r\n }\r\n load_mesh_line_url = (mdl_url, model_obj) => {\r\n return new Promise((resolve, reject) => {\r\n let xhr = new XMLHttpRequest()\r\n xhr.open('get', mdl_url, true)\r\n xhr.responseType = 'arraybuffer'\r\n let o2 = this\r\n xhr.send()\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var xxx = xhr.response\r\n let p = o2.load_mesh_line(xxx)\r\n if (p) {\r\n var mat = new THREE.Matrix4()\r\n mat.elements = model_obj.wts\r\n p.applyMatrix4(mat)\r\n p.name = model_obj.name\r\n p.file = model_obj.mesh\r\n resolve(p)\r\n } else {\r\n reject()\r\n }\r\n } else {\r\n reject(xhr.status)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n load_mesh_url = (mdl_url, model_obj) => {\r\n return new Promise((resolve, reject) => {\r\n let xhr = new XMLHttpRequest()\r\n xhr.open('get', mdl_url, true)\r\n xhr.responseType = 'arraybuffer'\r\n let o2 = this\r\n xhr.send()\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var xxx = xhr.response\r\n let p = o2.load_mesh(xxx, model_obj)\r\n p.then((val) => {\r\n resolve(xhr.response)\r\n })\r\n } else {\r\n reject(xhr.status)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n _process_after_load = (object) => {\r\n if (object.type == 'SpotLight') {\r\n if (object.target_uuid) {\r\n let obj = this.search_obj_by_guid2(object.target_uuid)\r\n if (obj) {\r\n object.target = obj\r\n }\r\n }\r\n }\r\n //////////////\r\n for (let i = 0; i < object.children.length; i++) {\r\n this._process_after_load(object.children[i])\r\n }\r\n }\r\n\r\n process_after_load = () => {\r\n for (let i = 0; i < this.scene.children.length; i++) {\r\n this._process_after_load(this.scene.children[i])\r\n }\r\n ///exhibition绑定\r\n if (this.exhibition && this.exhibition.objects_ids) {\r\n this.exhibition.objects = []\r\n for (let i = 0; i < this.exhibition.objects_ids.length; i++) {\r\n let obj = this.search_obj_by_guid2(this.exhibition.objects_ids[i].uuid)\r\n if (obj) this.exhibition.objects.push(obj)\r\n }\r\n }\r\n }\r\n\r\n load_model = (mdl_url) => {\r\n var xhr = new XMLHttpRequest()\r\n xhr.open('get', mdl_url, true)\r\n xhr.responseType = 'json'\r\n var o2 = this\r\n xhr.onload = function () {\r\n if (this.status == 200) {\r\n var model_obj = this.response\r\n o2.load_mesh_url(model_obj['mesh'], model_obj)\r\n }\r\n }\r\n xhr.send()\r\n }\r\n\r\n renew_all_uuid = (obj) => {\r\n let obj2 = new THREE.Object3D()\r\n obj.uuid = obj2.uuid\r\n for (let i = 0; i < obj.children.length; i++) {\r\n this.renew_all_uuid(obj.children[i])\r\n }\r\n }\r\n reset_scene() {\r\n // scene\r\n //var JSZip = require(\"jszip\");\r\n this.gif_anis = [] //序列帧动画\r\n this.same_texture_count = 0\r\n this.same_mesh_count = 0\r\n this.div_bind = []\r\n this.cameras = []\r\n this.script = {}\r\n var scene = this.scene\r\n this.scene.children = []\r\n this.objects = []\r\n this.materials = []\r\n this.material_buffer = null //材质刷\r\n this.maps = {}\r\n this.envmaps = {}\r\n this.selection = null\r\n this.import_root = null\r\n this.skeletons = [] //声明骨骼动画\r\n //light\r\n // var ambientLight = new THREE.PointLight( 0xffffff, 1,1000 );\r\n // ambientLight.name=\"AmbientLight\";\r\n // scene.add( ambientLight );\r\n scene.background = new THREE.Color(0xffffff)\r\n //grid\r\n // var grid = new THREE.GridHelper(10000, 10, 0xffffff, 0xffffff);\r\n // grid.name = \"grid\";\r\n // grid.material.opacity = 0.3;\r\n // grid.position.set(0, -40, 0);\r\n // grid.material.transparent = true;\r\n // grid.visible = false;\r\n // this.scene.add(grid);\r\n // this.grid = grid;\r\n //env\r\n // var urls = [\r\n // './static/textures/cube/Park2/posx.jpg', './static/textures/cube/Park2/negx.jpg',\r\n // './static/textures/cube/Park2/posy.jpg', './static/textures/cube/Park2/negy.jpg',\r\n // './static/textures/cube/Park2/posz.jpg', './static/textures/cube/Park2/negz.jpg'\r\n // ];\r\n // var reflectionCube = new THREE.CubeTextureLoader().load( urls );\r\n // reflectionCube.format = THREE.RGBFormat;\r\n scene.background = new THREE.Color(0, 0, 0)\r\n this.cubemap = null\r\n\r\n // //lights\r\n // const width = 500;\r\n // const height = 500;\r\n // const intensity = 10;\r\n // const blueRectLight = new THREE.RectAreaLight( 0xf3aaaa, intensity, width, height );\r\n // blueRectLight.position.set( 0, 500, 0 );\r\n // blueRectLight.lookAt( 0, 5, 0 );\r\n // this.scene.add( blueRectLight );\r\n\r\n // const blueRectLightHelper = new RectAreaLightHelper( blueRectLight );\r\n // blueRectLight.add( blueRectLightHelper );\r\n }\r\n\r\n import_object_url = (url) =>\r\n new Promise((resolve, reject) => {\r\n let import_zip = {}\r\n let o2 = this\r\n let obj\r\n let item_file\r\n import_zip.zip = new JSZip()\r\n var on_unzipped = function () {\r\n //console.log(\"导入对象解压完成,加载模型...\");\r\n if (item_file != undefined) {\r\n o2.from_zip = true\r\n var rt = item_file\r\n var xxx = JSON.parse(rt)\r\n // console.log(xxx);\r\n /////////////////\r\n const allRequest = []\r\n let model_obj = xxx\r\n model_obj.from_zip = true\r\n var promise = o2.load_saved_object(model_obj, true)\r\n let timelines = []\r\n if (model_obj.timelines) {\r\n timelines = o2.animation.from_json_export(model_obj.timelines)\r\n }\r\n allRequest.push(promise)\r\n promise.then((obj3) => {\r\n if (obj3) {\r\n obj3.timelines = timelines\r\n //绑定元素\r\n o2.animation.bind_objects_export(timelines, obj3)\r\n o2.renew_all_uuid(obj3)\r\n obj = obj3\r\n }\r\n })\r\n Promise.all(allRequest).then(\r\n () => {\r\n o2.from_zip = false\r\n resolve(obj)\r\n },\r\n () => {\r\n o2.from_zip = false\r\n reject()\r\n }\r\n )\r\n }\r\n }\r\n\r\n var xhr = new XMLHttpRequest()\r\n xhr.open('get', url, true)\r\n xhr.responseType = 'blob'\r\n xhr.onload = function () {\r\n if (this.status == 200) {\r\n var xxx = this.response\r\n import_zip.zip.loadAsync(xxx).then(function (zip) {\r\n var counts = 0\r\n zip.forEach(function (v) {\r\n counts++\r\n var type_read = 'arraybuffer'\r\n if (v.substr(v.length - 4, v.length) != 'json') {\r\n type_read = 'arraybuffer'\r\n }\r\n if (v == 'item.json') {\r\n type_read = 'string'\r\n }\r\n if (import_zip.zip.file(v)) {\r\n import_zip.zip\r\n .file(v)\r\n .async(type_read)\r\n .then(function (content) {\r\n if (v == 'item.json') {\r\n item_file = content\r\n }\r\n o2.all_files[v] = content\r\n counts--\r\n if (counts == 0) {\r\n on_unzipped()\r\n }\r\n })\r\n } else {\r\n counts--\r\n }\r\n })\r\n })\r\n }\r\n }\r\n xhr.send()\r\n })\r\n load_common_scene = (xxx, from_zip) => {\r\n //全屏特效\r\n let o2 = this\r\n if (xxx.scene.postEffect) {\r\n o2.postEffect = xxx.scene.postEffect\r\n o2.postEffect.from_zip = from_zip;\r\n o2.create_render_pass()\r\n }\r\n //scene_id\r\n o2.scene.scene_id = xxx.scene.scene_id\r\n if (o2.scene.scene_id == null) {\r\n let abc = new THREE.Object3D()\r\n o2.scene.scene_id = abc.uuid\r\n }\r\n if (xxx.scene.bake_step) {\r\n o2.scene.bake_step = xxx.scene.bake_step\r\n } else {\r\n o2.scene.bake_step = 1\r\n }\r\n //场景背景\r\n let obj = xxx.scene.background\r\n if (obj.type == 0) {\r\n if (o2.scene.background.constructor == THREE.Color) {\r\n o2.scene.background.setHex(obj.color)\r\n } else {\r\n o2.scene.background = new THREE.Color()\r\n o2.scene.background.setHex(obj.color)\r\n }\r\n }\r\n if (obj.type == 1) {\r\n let map = o2.create_map(obj.map)\r\n if (map != null) {\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n o2.scene.background = map\r\n }\r\n }\r\n if (obj.type == 2) {\r\n o2.scene.background = o2.create_envMap(obj.envMap, from_zip)\r\n o2.cubemap = o2.scene.background\r\n }\r\n //动画模块\r\n o2.animation.from_json(xxx.scene.animation)\r\n //展馆模块\r\n if (xxx.scene.exhibition) {\r\n o2.exhibition = {}\r\n o2.exhibition.objects_ids = xxx.scene.exhibition.objects\r\n }\r\n }\r\n load_zip_scene = (url) =>\r\n new Promise((resolve, reject) => {\r\n this.project_url = url.substring(0, url.lastIndexOf('/') + 1)\r\n if (!this.zip) {\r\n this.zip = new JSZip()\r\n }\r\n this.from_zip = true\r\n this.all_files = {}\r\n let o2 = this\r\n var on_unzipped = function () {\r\n //console.log(\"解压完成,加载模型...\");\r\n //console.log(o2.all_files);\r\n if (o2.all_files['scene.json'] != undefined) {\r\n var rt = o2.all_files['scene.json']\r\n var xxx = JSON.parse(rt)\r\n o2.load_common_scene(xxx, true)\r\n /////////////////\r\n const allRequest = []\r\n var mdls = xxx['children']\r\n for (let index = 0; index < mdls.length; index++) {\r\n const model_obj = mdls[index]\r\n model_obj.from_zip = true\r\n var promise = o2.load_saved_object(model_obj, true)\r\n promise.then((obj3) => {\r\n if (obj3) o2.scene.add(obj3)\r\n })\r\n allRequest.push(promise)\r\n }\r\n if (o2.on_loading_msg) {\r\n o2.on_loading_msg('加载完成', 100)\r\n }\r\n if (o2.onload) {\r\n o2.onload()\r\n }\r\n\r\n Promise.all(allRequest).then(\r\n () => {\r\n resolve()\r\n o2.animation.bind_objects()\r\n o2.process_after_load()\r\n if (o2.script['init']) {\r\n o2.script['init']()\r\n o2.cameraControls.minDistance = Math.max(\r\n o2.cameraControls.minDistance,\r\n 10\r\n )\r\n }\r\n },\r\n () => {\r\n reject()\r\n }\r\n )\r\n }\r\n }\r\n // let script_url = this.project_url+\"/script.js\";\r\n // loadJs(script_url,function(){console.log('script load done');});\r\n var xhr = new XMLHttpRequest()\r\n xhr.open('get', url, true)\r\n xhr.responseType = 'blob'\r\n xhr.addEventListener(\r\n 'progress',\r\n function (event) {\r\n // 响应头要有Content-Length\r\n if (event.lengthComputable) {\r\n let percentComplete = event.loaded / event.total\r\n //console.log(percentComplete); // 最后输出1\r\n if (o2.on_loading_msg) {\r\n o2.on_loading_msg(\r\n '正在下载:',\r\n String(Math.ceil(percentComplete * 99)),\r\n '%'\r\n )\r\n }\r\n }\r\n },\r\n false\r\n )\r\n xhr.onload = function () {\r\n if (this.status == 200) {\r\n var xxx = this.response\r\n o2.zip.loadAsync(xxx).then(function (zip) {\r\n //console.log(zip);\r\n var counts = 0\r\n zip.forEach(function (v) {\r\n //console.log(v);\r\n counts++\r\n var type_read = 'arraybuffer'\r\n if (v.substr(v.length - 4, v.length) != 'json') {\r\n //console.log(v);\r\n type_read = 'arraybuffer'\r\n }\r\n if (v == 'scene.json') {\r\n type_read = 'string'\r\n }\r\n if (o2.zip.file(v)) {\r\n o2.zip\r\n .file(v)\r\n .async(type_read)\r\n .then(function (content) {\r\n //console.log(v,content);\r\n o2.all_files[v] = content\r\n counts--\r\n\r\n if (counts == 0) {\r\n on_unzipped()\r\n }\r\n })\r\n } else {\r\n counts--\r\n //console.log(v)\r\n }\r\n })\r\n })\r\n }\r\n }\r\n xhr.send()\r\n })\r\n load_o2_scene = (url) =>\r\n new Promise((resolve, reject) => {\r\n this.from_zip = false\r\n this.project_url = url.substring(0, url.lastIndexOf('/') + 1)\r\n //console.log(this.project_url);\r\n var xhr = new XMLHttpRequest()\r\n let o2 = this\r\n xhr.open('get', url, true)\r\n xhr.responseType = 'text'\r\n xhr.send()\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n let aaa = xhr.response\r\n //console.log(aaa);\r\n var xxx = JSON.parse(aaa)\r\n if (xxx.type == 'save_project') {\r\n /////////////////\r\n o2.load_common_scene(xxx, false)\r\n // if (xxx.scene.postEffect) {\r\n // o2.postEffect = xxx.scene.postEffect;\r\n // o2.create_render_pass();\r\n // }\r\n // o2.scene.scene_id = xxx.scene.scene_id;\r\n // if (o2.scene.scene_id == null) {\r\n // let abc = new THREE.Object3D;\r\n // o2.scene.scene_id = abc.uuid;\r\n // }\r\n // if (xxx.scene.bake_step) {\r\n // o2.scene.bake_step = xxx.scene.bake_step;\r\n // } else {\r\n // o2.scene.bake_step = 1;\r\n // }\r\n // /////\r\n // this.animation.from_json(xxx.scene.animation);\r\n // let obj = xxx.scene.background;\r\n // if (obj.type == 0) {\r\n // if (this.scene.background.constructor == THREE.Color) {\r\n // this.scene.background.setHex(obj.color);\r\n // } else {\r\n // this.scene.background = new THREE.Color();\r\n // this.scene.background.setHex(obj.color);\r\n // }\r\n // }\r\n // if (obj.type == 1) {\r\n // let map = this.create_map(obj.map);\r\n // if (map != null) {\r\n // map.wrapS = THREE.RepeatWrapping;\r\n // map.wrapT = THREE.RepeatWrapping;\r\n // this.scene.background = map;\r\n // }\r\n // }\r\n // if (obj.type == 2) {\r\n // this.scene.background = this.create_envMap(obj.envMap);\r\n // this.cubemap = this.scene.background;\r\n // }\r\n /////\r\n const allRequest = []\r\n var mdls = xxx['children']\r\n for (let index = 0; index < mdls.length; index++) {\r\n const model_obj = mdls[index]\r\n var promise = o2.load_saved_object(model_obj, false)\r\n promise.then((obj3) => {\r\n if (obj3) o2.scene.add(obj3)\r\n })\r\n allRequest.push(promise)\r\n }\r\n Promise.all(allRequest).then(\r\n () => {\r\n o2.animation.bind_objects()\r\n o2.process_after_load()\r\n if (o2.script['init']) {\r\n o2.script['init']()\r\n }\r\n resolve()\r\n },\r\n () => {\r\n reject()\r\n }\r\n )\r\n } else {\r\n //刚刚导出的scene.json\r\n o2.scene.background = o2.create_envMap(xxx['evn'].cube, false)\r\n o2.cubemap = o2.scene.background\r\n\r\n const allRequest = []\r\n var mdls = xxx['models']\r\n for (let index = 0; index < mdls.length; index++) {\r\n const model_obj = mdls[index]\r\n allRequest.push(\r\n o2.load_mesh_url(\r\n o2.project_url + model_obj['mesh'],\r\n model_obj\r\n )\r\n )\r\n }\r\n o2.tree = xxx['tree']\r\n Promise.all(allRequest).then(\r\n () => {\r\n o2.animation.bind_objects()\r\n o2.process_after_load()\r\n if (o2.script['init']) {\r\n o2.script['init']()\r\n }\r\n resolve()\r\n },\r\n () => {\r\n reject()\r\n }\r\n )\r\n }\r\n } else {\r\n reject(xhr.status)\r\n }\r\n }\r\n }\r\n })\r\n\r\n import_url = (url) =>\r\n new Promise((resolve, reject) => {\r\n this.project_url = url.substring(0, url.lastIndexOf('/') + 1)\r\n //console.log(this.project_url);\r\n var xhr = new XMLHttpRequest()\r\n let o2 = this\r\n xhr.open('get', url, true)\r\n xhr.responseType = 'text'\r\n xhr.send()\r\n let import_root = new THREE.Object3D()\r\n import_root.name = 'import'\r\n this.scene.add(import_root)\r\n this.import_root = import_root\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n let aaa = xhr.response\r\n //console.log(aaa);\r\n var xxx = JSON.parse(aaa)\r\n if (xxx.type == 'save_project') {\r\n /////\r\n this.animation.from_json(xxx.scene.animation)\r\n let obj = xxx.scene.background\r\n if (obj.type == 0) {\r\n if (this.scene.background.constructor == THREE.Color) {\r\n this.scene.background.setHex(obj.color)\r\n } else {\r\n this.scene.background = new THREE.Color()\r\n this.scene.background.setHex(obj.color)\r\n }\r\n }\r\n if (obj.type == 1) {\r\n let map = this.create_map(obj.map)\r\n if (map != null) {\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n this.scene.background = map\r\n }\r\n }\r\n if (obj.type == 2) {\r\n this.scene.background = this.create_envMap(obj.envMap, false)\r\n this.cubemap = this.scene.background\r\n }\r\n /////\r\n const allRequest = []\r\n var mdls = xxx['children']\r\n for (let index = 0; index < mdls.length; index++) {\r\n const model_obj = mdls[index]\r\n var promise = o2.load_saved_object(model_obj, false)\r\n promise.then((obj3) => {\r\n if (obj3) import_root.add(obj3)\r\n })\r\n allRequest.push(promise)\r\n }\r\n Promise.all(allRequest).then(\r\n () => {\r\n o2.animation.bind_objects()\r\n if (o2.script['init']) {\r\n o2.script['init']()\r\n }\r\n resolve()\r\n },\r\n () => {\r\n reject()\r\n }\r\n )\r\n } else {\r\n const allRequest = []\r\n var mdls = xxx['models']\r\n for (let index = 0; index < mdls.length; index++) {\r\n const model_obj = mdls[index]\r\n allRequest.push(\r\n o2.load_mesh_url(\r\n o2.project_url + model_obj['mesh'],\r\n model_obj\r\n )\r\n )\r\n }\r\n o2.tree = xxx['tree']\r\n Promise.all(allRequest).then(\r\n () => {\r\n o2.animation.bind_objects()\r\n if (o2.script['init']) {\r\n o2.script['init']()\r\n }\r\n resolve()\r\n },\r\n () => {\r\n reject()\r\n }\r\n )\r\n }\r\n } else {\r\n reject(xhr.status)\r\n }\r\n }\r\n }\r\n })\r\n\r\n create_envMap = (evn, from_zip) => {\r\n if (undefined == evn || evn == 'use_scene') {\r\n return this.cubemap\r\n }\r\n let map = this.envmaps[evn]\r\n if (map == null) {\r\n if (from_zip) {\r\n let o2 = this\r\n var urls2 = []\r\n var urls = [\r\n 'image/' + evn + '/posx.jpg',\r\n 'image/' + evn + '/negx.jpg',\r\n 'image/' + evn + '/posy.jpg',\r\n 'image/' + evn + '/negy.jpg',\r\n 'image/' + evn + '/posz.jpg',\r\n 'image/' + evn + '/negz.jpg'\r\n ]\r\n for (let i = 0; i < 6; i++) {\r\n let fnn = urls[i]\r\n let f1 = this.all_files[fnn]\r\n let blob = new Blob([f1], { type: 'image/jpg' })\r\n let url = URL.createObjectURL(blob)\r\n urls2.push(url)\r\n }\r\n map = new THREE.CubeTextureLoader().load(urls2)\r\n } else {\r\n let o2 = this\r\n var urls = [\r\n o2.project_url + 'image/' + evn + '/posx.jpg',\r\n o2.project_url + 'image/' + evn + '/negx.jpg',\r\n o2.project_url + 'image/' + evn + '/posy.jpg',\r\n o2.project_url + 'image/' + evn + '/negy.jpg',\r\n o2.project_url + 'image/' + evn + '/posz.jpg',\r\n o2.project_url + 'image/' + evn + '/negz.jpg'\r\n ]\r\n map = new THREE.CubeTextureLoader().load(urls)\r\n }\r\n map.cubename = evn\r\n map.format = THREE.RGBFormat\r\n this.envmaps[evn] = map\r\n }\r\n if (map == null) {\r\n map = this.cubemap\r\n }\r\n return map\r\n }\r\n load_image_to_texture = (map_url, url) => {\r\n const RGBFormat = 1022\r\n const RGBAFormat = 1023\r\n let texture = new THREE.Texture()\r\n if (this.unload_textures[map_url]) {\r\n //console.log(\"same image:\" + (this.same_texture_count++) + \"(\" + map_url + \")\");\r\n texture = this.unload_textures[map_url]\r\n return texture\r\n // let image = this.loaded_images.map_url;\r\n // if (image)\r\n // {\r\n // console.log(\"image clone\");\r\n // texture=image.clone();\r\n // // texture.image = image;\r\n // // const isJPEG = url.search( /\\.jpe?g($|\\?)/i ) > 0 || url.search( /^data\\:image\\/jpeg/ ) === 0;\r\n // // texture.format = isJPEG ? RGBFormat : RGBAFormat;\r\n // // texture.needsUpdate = true;\r\n // // texture.name = map_url;\r\n // // texture.wrapS = THREE.RepeatWrapping;\r\n // // texture.wrapT = THREE.RepeatWrapping;\r\n // }else{\r\n // console.log(\"image map_white\");\r\n // return this.map_white;\r\n // this.unload_textures.map_url.push(texture);\r\n // }\r\n //return texture;\r\n }\r\n this.unload_textures[map_url] = texture\r\n let o2 = this\r\n\r\n \r\n this.image_loader.load(url, function (image) {\r\n const isJPEG =\r\n url.search(/\\.jpe?g($|\\?)/i) > 0 ||\r\n url.search(/^data\\:image\\/jpeg/) === 0\r\n \r\n\r\n if (o2.is_mobile) {//11.24 1/2贴图尺寸加载\r\n let canvas = document.createElement(\"canvas\");\r\n canvas.width = Math.ceil(image.width / 2);\r\n canvas.height = Math.ceil(image.height / 2);\r\n const drawingContext = canvas.getContext(\"2d\");\r\n drawingContext.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n let url2 = canvas.toDataURL(\"image/png\");\r\n o2.image_loader.load(url2, function (img) {\r\n texture.raw_url = url\r\n texture.image = img\r\n texture.format = isJPEG ? RGBFormat : RGBAFormat\r\n texture.needsUpdate = true\r\n texture.name = map_url\r\n texture.wrapS = THREE.RepeatWrapping\r\n texture.wrapT = THREE.RepeatWrapping\r\n });\r\n } else {\r\n\r\n \r\n texture.raw_url = url\r\n texture.image = image\r\n texture.format = isJPEG ? RGBFormat : RGBAFormat\r\n texture.needsUpdate = true\r\n texture.name = map_url\r\n texture.wrapS = THREE.RepeatWrapping\r\n texture.wrapT = THREE.RepeatWrapping\r\n }\r\n })\r\n\r\n\r\n return texture\r\n }\r\n\r\n create_map_with_default = (map_obj, from_zip) => {\r\n if (map_obj && map_obj.o2_default) {\r\n if (map_obj.o2_default == 'white') return this.map_white\r\n if (map_obj.o2_default == 'alpha') return this.map_alpha\r\n if (map_obj.o2_default == 'half_alpha') return this.half_alpha\r\n if (map_obj.o2_default == 'red') return this.map_red\r\n if (map_obj.o2_default == 'normal_map') return this.map_normal\r\n }\r\n let map\r\n if (map_obj) map = this.create_map(map_obj.name, from_zip)\r\n if (map == null) map = this.map_white\r\n return map\r\n }\r\n create_map = (map_url) => {\r\n if (map_url == null || map_url == '') return null\r\n let absurl = false\r\n let url = this.project_url + map_url\r\n let mapurl = map_url\r\n mapurl.toLowerCase()\r\n if (mapurl.indexOf('http') == 0) {\r\n url = map_url\r\n absurl = true\r\n }\r\n let fnn = map_url\r\n let f1 = this.all_files[fnn]\r\n if (f1 && !absurl) {\r\n let blob = new Blob([f1], { type: 'image/jpg' })\r\n let url = URL.createObjectURL(blob)\r\n let map = this.load_image_to_texture(map_url, url)\r\n return map\r\n }\r\n let map = this.load_image_to_texture(mapurl, url)\r\n this.maps.map_url = map\r\n return map\r\n }\r\n\r\n create_render_pass() {\r\n // this.postEffect.bDefaultRender=true;\r\n if (this.postEffect == null || this.postEffect.bDefaultRender) return\r\n\r\n //基础场景渲染\r\n const finalComposer = new EffectComposer(this.renderer)\r\n\r\n // const ssaaRenderPassP = new SSAARenderPass( this.scene, this.camera );\r\n // finalComposer.addPass( ssaaRenderPassP );\r\n // ssaaRenderPassP.sampleLevel=16;\r\n // this.ssaaRenderPass=ssaaRenderPassP;\r\n\r\n // const pass = new SMAAPass( this.WIDTH * this.renderer.getPixelRatio(), this.HEIGHT * this.renderer.getPixelRatio() );\r\n // finalComposer.addPass( pass );\r\n\r\n const renderScene = new RenderPass(this.scene, this.camera)\r\n finalComposer.addPass(renderScene)\r\n\r\n let postEffect = this.postEffect\r\n if (postEffect.glow) {\r\n const bloomPass = new UnrealBloomPass(\r\n new THREE.Vector2(this.WIDTH, this.HEIGHT),\r\n 1.5,\r\n 0.4,\r\n 0.85\r\n )\r\n bloomPass.threshold = postEffect.glow_threshold\r\n bloomPass.strength = postEffect.glow_strength\r\n bloomPass.radius = postEffect.glow_radius\r\n this.bloomPass = bloomPass\r\n finalComposer.addPass(bloomPass)\r\n }\r\n\r\n //Sobel\r\n if (this.postEffect.sobel) {\r\n // const effectGrayScale = new ShaderPass(LuminosityShader);\r\n // finalComposer.addPass(effectGrayScale);\r\n this.effectSobel = new ShaderPass(SobelOperatorShader2)\r\n this.effectSobel.uniforms['resolution'].value.x =\r\n this.WIDTH * window.devicePixelRatio\r\n this.effectSobel.uniforms['resolution'].value.y =\r\n this.HEIGHT * window.devicePixelRatio\r\n finalComposer.addPass(this.effectSobel)\r\n }\r\n\r\n //film\r\n if (this.postEffect.film) {\r\n finalComposer.addPass(new FilmPass(0.35, 0.025, 648, false))\r\n }\r\n\r\n //FXAA\r\n if (true) {\r\n this.fxaaPass = new ShaderPass(FXAAShader)\r\n const pixelRatio = this.renderer.getPixelRatio()\r\n this.fxaaPass.material.uniforms['resolution'].value.x =\r\n 1 / (this.WIDTH * pixelRatio)\r\n this.fxaaPass.material.uniforms['resolution'].value.y =\r\n 1 / (this.HEIGHT * pixelRatio)\r\n finalComposer.addPass(this.fxaaPass)\r\n }\r\n\r\n var u = navigator.userAgent\r\n var isiOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/) //ios终端\r\n\r\n if (this.postEffect.lut) {\r\n this.lutPass = new LUTPass()\r\n this.lutPass.enabled = false\r\n if (!this.postEffect.lutPower) {\r\n this.postEffect.lutPower = 1\r\n }\r\n this.lutPass.intensity = this.postEffect.lutPower\r\n finalComposer.addPass(this.lutPass)\r\n let o2 = this\r\n if (!this.postEffect.lutFile)\r\n this.postEffect.lutFile = 'luts/Bourbon.CUBE'\r\n let url = this.postEffect.lutFile\r\n if (url.substr(0, 4) != 'http') {\r\n url = this.project_url + url\r\n if (postEffect.from_zip) {\r\n let f1 = this.all_files[this.postEffect.lutFile]\r\n let blob = new Blob([f1])\r\n url = URL.createObjectURL(blob)\r\n }\r\n }\r\n new LUTCubeLoader().load(url, function (result) {\r\n if (!isiOS) o2.lutPass.lut = result.texture\r\n //暂时全部用2D的,很多设备不支持\r\n // o2.lutPass.lut = result.texture3D;\r\n else o2.lutPass.lut = result.texture\r\n o2.lutPass.enabled = true\r\n })\r\n }\r\n //outline\r\n if (this.postEffect.outline) {\r\n this.OutlinePass = new OutlinePass(\r\n new THREE.Vector2(this.WIDTH, this.HEIGHT),\r\n this.scene,\r\n this.camera\r\n )\r\n this.OutlinePass.visibleEdgeColor.set('#ffffff')\r\n this.OutlinePass.hiddenEdgeColor.set('#190a05')\r\n this.OutlinePass.edgeStrength = Number(5) //0.01-10\r\n this.OutlinePass.edgeGlow = Number(0.5) //0-1\r\n this.OutlinePass.edgeThickness = Number(2) //1-4\r\n finalComposer.addPass(this.OutlinePass)\r\n }\r\n //SSAO\r\n if (this.postEffect.ao) {\r\n let saoPass = new SAOPass(this.scene, this.camera, false, true)\r\n\r\n saoPass.params.saoIntensity = 0.002\r\n saoPass.params.saoKernelRadius = 20\r\n saoPass.params.saoScale = 1000\r\n\r\n if (this.postEffect.aoIntensity)\r\n saoPass.params.saoIntensity = this.postEffect.aoIntensity\r\n if (this.postEffect.aoRadius)\r\n saoPass.params.saoKernelRadius = this.postEffect.aoRadius\r\n if (this.postEffect.aoScale)\r\n saoPass.params.saoScale = this.postEffect.aoScale\r\n this.postEffect.aoIntensity = saoPass.params.saoIntensity\r\n this.postEffect.aoRadius = saoPass.params.saoKernelRadius\r\n this.postEffect.aoScale = saoPass.params.saoScale\r\n this.ao = saoPass\r\n finalComposer.addPass(this.ao)\r\n }\r\n\r\n this.finalComposer = finalComposer\r\n }\r\n\r\n init(container) {\r\n this.image_loader = new THREE.ImageLoader()\r\n this.loaded_images = {}\r\n this.unload_textures = {}\r\n this.meshes = {}\r\n\r\n this.last_time = Date.now()\r\n this.container = container //document.getElementById( 'container' );\r\n var WIDTH = this.container.clientWidth\r\n var HEIGHT = this.container.clientHeight\r\n this.WIDTH = WIDTH\r\n this.HEIGHT = HEIGHT\r\n this.maps = {}\r\n this.copy_maps = []\r\n //\r\n // let map = new THREE.TextureLoader().load( './static/textures/white.png' );\r\n {\r\n const width = 1\r\n const height = 1\r\n const size = 1\r\n const data = new Uint8Array(3 * size)\r\n for (let i = 0; i < size; i++) {\r\n const stride = i * 3\r\n data[stride] = 255 //r;\r\n data[stride + 1] = 0 //g;\r\n data[stride + 2] = 0 //b;\r\n }\r\n let map = new THREE.DataTexture(data, width, height, THREE.RGBFormat)\r\n map.o2_default = 'red'\r\n this.map_red = map\r\n }\r\n {\r\n const width = 1\r\n const height = 1\r\n const size = 1\r\n const data = new Uint8Array(3 * size)\r\n for (let i = 0; i < size; i++) {\r\n const stride = i * 3\r\n data[stride] = 0 //r;\r\n data[stride + 1] = 0 //g;\r\n data[stride + 2] = 0 //b;\r\n }\r\n let map = new THREE.DataTexture(data, width, height, THREE.RGBFormat)\r\n map.o2_default = 'black'\r\n this.map_black = map\r\n }\r\n {\r\n let map = new THREE.TextureLoader().load(require('../images/white.png'))\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n map.filpX = false\r\n map.filpY = false\r\n map.needsUpdate = true\r\n map.o2_default = 'white'\r\n this.map_white = map\r\n }\r\n {\r\n let map = new THREE.TextureLoader().load(require('../images/alpha.png'))\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n map.filpX = false\r\n map.filpY = false\r\n map.needsUpdate = true\r\n map.o2_default = 'alpha'\r\n this.map_alpha = map\r\n }\r\n {\r\n let map = new THREE.TextureLoader().load(\r\n require('../images/half_alpha.png')\r\n )\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n map.filpX = false\r\n map.filpY = false\r\n map.needsUpdate = true\r\n map.o2_default = 'half_alpha'\r\n this.half_alpha = map\r\n }\r\n {\r\n let map = new THREE.TextureLoader().load(\r\n require('../images/normalmap.jpg')\r\n )\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n map.filpX = false\r\n map.filpY = false\r\n map.needsUpdate = true\r\n map.o2_default = 'normal_map'\r\n this.map_normal = map\r\n }\r\n // renderer\r\n if (this.is_mobile) {\r\n this.renderer = new THREE.WebGLRenderer({\r\n antialias: true,\r\n alpha: true,\r\n powerPreference: 'low-power'\r\n })\r\n } else {\r\n this.renderer = new THREE.WebGLRenderer({\r\n antialias: true,\r\n alpha: true\r\n })\r\n }\r\n\r\n this.renderer.setPixelRatio(window.devicePixelRatio)\r\n this.renderer.shadowMap.enabled = true\r\n this.renderer.shadowMap.type = THREE.PCFSoftShadowMap\r\n // this.renderer.toneMapping = THREE.ACESFilmicToneMapping;\r\n // this.renderer.toneMappingExposure = 1;\r\n //this.renderer.toneMapping = THREE.ReinhardToneMapping;\r\n this.renderer.setSize(WIDTH, HEIGHT)\r\n\r\n //css2drender\r\n // this.css3dRenderer = new CSS3DRenderer();\r\n // this.css3dRenderer.setSize(WIDTH,HEIGHT);\r\n // this.css3dRenderer.domElement.style.position = 'absolute';\r\n // this.css3dRenderer.domElement.style.top = 0;\r\n\r\n //scene\r\n var scene = new THREE.Scene()\r\n this.scene = scene\r\n // camera\r\n var VIEW_ANGLE = 60\r\n var ASPECT = this.WIDTH / this.HEIGHT\r\n var NEAR = 100\r\n var FAR = 500000\r\n this.camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR)\r\n this.camera.position.set(0, 3000, -5000)\r\n // camera control\r\n this.cameraControls = new OrbitControls(\r\n this.camera,\r\n this.renderer.domElement\r\n )\r\n this.cameraControls.target.set(0, 0, 0)\r\n this.cameraControls.enableZoom = true\r\n this.cameraControls.enableDamping = true\r\n this.cameraControls.rotateSpeed = 1\r\n this.cameraControls.minDistance = 100\r\n this.cameraControls.maxDistance = 500000\r\n //this.cameraControls.maxPolarAngle = Math.PI / 2 - Math.PI / 15;\r\n this.cameraControls.update()\r\n //camera fpscontrols\r\n this.fpsControls = new PointerLockControls(\r\n this.camera,\r\n this.renderer.domElement\r\n )\r\n //light\r\n\r\n //clock\r\n var clock = new THREE.Clock()\r\n this.clock = clock\r\n // reset scene\r\n this.reset_scene()\r\n this.create_render_pass()\r\n //FINAL\r\n this.container.appendChild(this.renderer.domElement)\r\n //this.container.appendChild(this.css3dRenderer.domElement);\r\n window.addEventListener('resize', this.onWindowResize, false)\r\n this.animate()\r\n this.animate_skeleton()\r\n }\r\n\r\n render = () => {\r\n if (this.postEffect == null || this.postEffect.bDefaultRender) {\r\n this.renderer.render(this.scene, this.camera)\r\n //this.css3dRenderer.render(this.scene,this.camera);\r\n return\r\n }\r\n if (this.postEffect.glow && this.bloomComposer) {\r\n this.camera.layers.set(1)\r\n this.bloomComposer.render()\r\n this.camera.layers.set(0)\r\n }\r\n\r\n this.finalComposer.render()\r\n }\r\n\r\n onWindowResize = () => {\r\n var WIDTH = this.container.clientWidth\r\n var HEIGHT = this.container.clientHeight\r\n this.WIDTH = WIDTH\r\n this.HEIGHT = HEIGHT\r\n this.camera.aspect = WIDTH / HEIGHT\r\n this.camera.updateProjectionMatrix()\r\n this.renderer.setSize(WIDTH, HEIGHT)\r\n if (this.finalComposer) this.finalComposer.setSize(WIDTH, HEIGHT)\r\n //this.css3dRenderer.setSize(WIDTH,HEIGHT);\r\n\r\n if (this.effectSobel) {\r\n this.effectSobel.uniforms['resolution'].value.x =\r\n WIDTH * window.devicePixelRatio\r\n this.effectSobel.uniforms['resolution'].value.y =\r\n HEIGHT * window.devicePixelRatio\r\n }\r\n\r\n if (this.fxaaPass) {\r\n const pixelRatio = this.renderer.getPixelRatio()\r\n this.fxaaPass.material.uniforms['resolution'].value.x =\r\n 1 / (WIDTH * pixelRatio)\r\n this.fxaaPass.material.uniforms['resolution'].value.y =\r\n 1 / (HEIGHT * pixelRatio)\r\n }\r\n if (this.bloomComposer) this.bloomComposer.setSize(WIDTH, HEIGHT)\r\n if (this.finalComposer) this.finalComposer.setSize(WIDTH, HEIGHT)\r\n }\r\n add_empty_object = () => {\r\n var obj = new THREE.Object3D()\r\n obj.name = 'Object'\r\n this.scene.add(obj)\r\n }\r\n load_mesh2 = (xxx) => {\r\n var intarray = new Uint32Array(xxx, 0, 5)\r\n var num_faces = intarray[0]\r\n var num_pos = intarray[1]\r\n var num_nor = intarray[2]\r\n var num_uv = intarray[3]\r\n var num_uv2 = intarray[4]\r\n var limits1 = new Float32Array(xxx, 20, 20)\r\n var posmin = []\r\n var posmax = []\r\n var posstep = []\r\n posmin[0] = limits1[0]\r\n posmin[1] = limits1[1]\r\n posmin[2] = limits1[2]\r\n posmax[0] = limits1[3]\r\n posmax[1] = limits1[4]\r\n posmax[2] = limits1[5]\r\n posstep[0] = (posmax[0] - posmin[0]) / 65535\r\n posstep[1] = (posmax[1] - posmin[1]) / 65535\r\n posstep[2] = (posmax[2] - posmin[2]) / 65535\r\n\r\n var normin = []\r\n var normax = []\r\n var norstep = []\r\n normin[0] = limits1[6]\r\n normin[1] = limits1[7]\r\n normin[2] = limits1[8]\r\n normax[0] = limits1[9]\r\n normax[1] = limits1[10]\r\n normax[2] = limits1[11]\r\n norstep[0] = (normax[0] - normin[0]) / 65535\r\n norstep[1] = (normax[1] - normin[1]) / 65535\r\n norstep[2] = (normax[2] - normin[2]) / 65535\r\n\r\n var uvmin = []\r\n var uvmax = []\r\n var uvstep = []\r\n uvmin[0] = limits1[12]\r\n uvmin[1] = limits1[13]\r\n uvmax[0] = limits1[14]\r\n uvmax[1] = limits1[15]\r\n uvstep[0] = (uvmax[0] - uvmin[0]) / 65535\r\n uvstep[1] = (uvmax[1] - uvmin[1]) / 65535\r\n\r\n var uv2min = []\r\n var uv2max = []\r\n var uv2step = []\r\n uv2min[0] = limits1[16]\r\n uv2min[1] = limits1[17]\r\n uv2max[0] = limits1[18]\r\n uv2max[1] = limits1[19]\r\n uv2step[0] = (uv2max[0] - uv2min[0]) / 65535\r\n uv2step[1] = (uv2max[1] - uv2min[1]) / 65535\r\n var ppos = new Float32Array(num_pos * 3)\r\n var pnor = new Float32Array(num_pos * 3)\r\n var puv = new Float32Array(num_pos * 2)\r\n var puv2 = new Float32Array(num_pos * 2)\r\n //console.log(model_json);\r\n var a1 = new Uint16Array(xxx, 100, num_pos * 3)\r\n var a2 = new Uint16Array(xxx, 100 + num_pos * 6, num_nor * 3)\r\n var a3 = new Uint16Array(xxx, 100 + num_pos * 6 + num_nor * 6, num_uv * 2)\r\n var a4 = new Uint16Array(\r\n xxx,\r\n 100 + num_pos * 6 + num_nor * 6 + num_uv * 4,\r\n num_uv2 * 2\r\n )\r\n var pfaces = new Uint16Array(\r\n xxx,\r\n 100 + num_pos * 6 + num_nor * 6 + num_uv * 4 + num_uv2 * 4,\r\n num_faces * 3\r\n )\r\n for (var i = 0; i < a1.length; i++) {\r\n var idx = i % 3\r\n ppos[i] = posmin[idx] + a1[i] * posstep[idx]\r\n }\r\n var snor = []\r\n snor[0] = 0\r\n snor[1] = 1\r\n snor[2] = 0\r\n for (var i = 0; i < a1.length; i++) {\r\n var idx = i % 3\r\n pnor[i] = normin[idx] + a2[i] * norstep[idx]\r\n }\r\n for (var i = 0; i < a3.length; i++) {\r\n var idx = i % 2\r\n puv[i] = uvmin[idx] + a3[i] * uvstep[idx]\r\n // puv[i]=a3[i];\r\n }\r\n for (var i = 0; i < a4.length; i++) {\r\n var idx = i % 2\r\n puv2[i] = uv2min[idx] + a4[i] * uv2step[idx]\r\n // puv2[i]=a4[i];\r\n }\r\n\r\n var geometry = new THREE.BufferGeometry()\r\n geometry.setAttribute('position', new THREE.BufferAttribute(ppos, 3))\r\n if (pnor.length > 0)\r\n geometry.setAttribute('normal', new THREE.BufferAttribute(pnor, 3))\r\n if (puv.length > 0)\r\n geometry.setAttribute('uv', new THREE.BufferAttribute(puv, 2))\r\n if (puv2.length > 0)\r\n geometry.setAttribute('uv2', new THREE.BufferAttribute(puv2, 2))\r\n var ba = new THREE.BufferAttribute(pfaces, 1, true)\r\n geometry.setIndex(ba)\r\n geometry.computeBoundingBox()\r\n var uvs = geometry.attributes.uv.array\r\n for (var i = 0; i < uvs.length; i += 2) {\r\n //uvs[ i ] += 1;\r\n uvs[i + 1] += 1\r\n }\r\n\r\n return geometry\r\n }\r\n load_mesh_line = (xxx) => {\r\n var intarray = new Uint32Array(xxx, 0, 1)\r\n var num_pos = intarray[0]\r\n var limits1 = new Float32Array(xxx, 4, 6)\r\n var posmin = []\r\n var posmax = []\r\n var posstep = []\r\n posmin[0] = limits1[0]\r\n posmin[1] = limits1[1]\r\n posmin[2] = limits1[2]\r\n posmax[0] = limits1[3]\r\n posmax[1] = limits1[4]\r\n posmax[2] = limits1[5]\r\n posstep[0] = (posmax[0] - posmin[0]) / 65535\r\n posstep[1] = (posmax[1] - posmin[1]) / 65535\r\n posstep[2] = (posmax[2] - posmin[2]) / 65535\r\n\r\n var ppos = new Float32Array(num_pos * 3)\r\n var a1 = new Uint16Array(xxx, 28, num_pos * 3)\r\n for (var i = 0; i < a1.length; i++) {\r\n var idx = i % 3\r\n ppos[i] = posmin[idx] + a1[i] * posstep[idx]\r\n }\r\n var geometry = new THREE.BufferGeometry()\r\n geometry.setAttribute('position', new THREE.BufferAttribute(ppos, 3))\r\n geometry.computeBoundingBox()\r\n var mtl = new THREE.LineBasicMaterial({ color: 0x000000 })\r\n var mdl = new THREE.LineSegments(geometry, mtl)\r\n return mdl\r\n }\r\n load_mesh = (bb, model_obj) => {\r\n return new Promise((resolve, reject) => {\r\n var xxx = bb\r\n if (xxx == undefined) {\r\n reject()\r\n }\r\n var o2 = this\r\n let geometry = this.load_mesh2(xxx)\r\n geometry.meshid = model_obj['mesh']\r\n let map = o2.map_white\r\n if (\r\n model_obj.mtl &&\r\n model_obj.mtl.map &&\r\n model_obj.mtl.map.image &&\r\n model_obj.mtl.map.image != ''\r\n ) {\r\n map = o2.create_map(model_obj.mtl.map.image)\r\n map.wrapS = THREE.RepeatWrapping\r\n map.wrapT = THREE.RepeatWrapping\r\n map.repeat.set(model_obj.mtl.map.repeat[0], model_obj.mtl.map.repeat[1])\r\n map.offset.set(\r\n model_obj.mtl.map.offset[0],\r\n -model_obj.mtl.map.offset[1]\r\n )\r\n map.rotation = model_obj.mtl.map.rotation\r\n }\r\n let map2 = o2.map_white\r\n if (model_obj.bake_tex != '') {\r\n map2 = o2.create_map(model_obj.bake_tex)\r\n }\r\n let material = new THREE.MeshPhongMaterial({ map: map, lightMap: map2 })\r\n material.o2id = model_obj.mtl.id\r\n o2.materials.push({ id: material.o2id, mtl: material })\r\n if (model_obj.cullMode == 1) {\r\n material.side = THREE.BackSide\r\n } else if (model_obj.cullMode == 2) {\r\n material.side = THREE.DoubleSide\r\n } else {\r\n material.side = THREE.FrontSide\r\n }\r\n material.transparent = model_obj.mtl.transparent\r\n material.alphaTest = model_obj.mtl.alphaTest\r\n if (model_obj.mtl.transparent) {\r\n material.opacity = model_obj.mtl.alpha\r\n }\r\n material.reflectivity = 0\r\n //material.envMap=o2.cubemap;\r\n material.envMap = o2.create_envMap(model_obj.mtl.envMap)\r\n\r\n if (model_obj.aoTex && model_obj.aoTex != '') {\r\n let map3 = o2.create_map(model_obj.aoTex)\r\n if (!model_obj.bake_tex || model_obj.bake_tex == '') {\r\n material.lightMap = map3\r\n } else {\r\n material.aoMap = map3\r\n }\r\n }\r\n material.color = new THREE.Color(model_obj.mtl.dif_color)\r\n //console.log(model_obj);\r\n //new THREE.MeshBasicMaterial( { color: 0xff0000 } )\r\n var mesh = new THREE.Mesh(geometry, material)\r\n mesh.name = model_obj.name\r\n mesh.uuid = model_obj.uuid\r\n var mat = new THREE.Matrix4()\r\n mat.elements = model_obj.wts\r\n mesh.applyMatrix4(mat)\r\n if (o2.import_root != null) {\r\n o2.import_root.add(mesh)\r\n } else {\r\n o2.scene.add(mesh)\r\n }\r\n //return geometry;\r\n resolve(geometry)\r\n })\r\n }\r\n\r\n // 单击事件\r\n // onSceneClick = event => {\r\n // event.preventDefault();\r\n // // var dx = downx - event.offsetX;\r\n // // var dy = downy - event.offsetY;\r\n // var dx = event.offsetX;\r\n // var dy = event.offsetY;\r\n // //if (Math.sqrt(dx * dx + dy * dy) > 4) return;\r\n // this.mouse.x = (event.offsetX / this.WIDTH) * 2 - 1;\r\n // this.mouse.y = - (event.offsetY / (this.HEIGHT)) * 2 + 1;\r\n // this.mouse_down = this.mouse - this.mouse_down;\r\n // this.removeEdgeLine();\r\n // this.unhover_all();\r\n\r\n // console.log('3333')\r\n // console.log(this)\r\n // console.log(event.offsetX)\r\n // console.log(this.WIDTH)\r\n\r\n // this.raycaster.setFromCamera(this.mouse, this.camera);\r\n // //pick\r\n // let allobjs = this.scene.children;\r\n // var intersects = this.raycaster.intersectObjects(allobjs);\r\n // console.log(intersects)\r\n // if (intersects.length > 0) {\r\n // console.log('picked')\r\n // var obj = intersects[0].object;\r\n // return obj;\r\n // }\r\n // }\r\n\r\n getObjById = (id) => {\r\n if (this.scene.children == undefined || this.scene.children.length <= 0) {\r\n return null\r\n }\r\n\r\n let array = this.scene.children\r\n for (let index = 0; index < array.length; index++) {\r\n const element = array[index]\r\n if (element.id == id) {\r\n return element\r\n }\r\n }\r\n }\r\n bind_div_to_world = (posx, posy, posz, earthDiv) => {\r\n if (earthDiv) {\r\n let bind = {}\r\n bind.div = earthDiv\r\n bind.type = 0\r\n bind.position = new THREE.Vector3(posx, posy, posz)\r\n o2.div_bind.push(bind)\r\n }\r\n }\r\n\r\n search_obj_by_guid2 = (uuid) => {\r\n for (let i = 0; i < this.scene.children.length; i++) {\r\n var found = this.search_obj_by_guid(this.scene.children[i], uuid)\r\n if (found) {\r\n return found\r\n }\r\n }\r\n return null\r\n }\r\n search_obj_by_guid = (target, uuid) => {\r\n if (target.uuid == uuid) {\r\n return target\r\n }\r\n for (let i = 0; i < target.children.length; i++) {\r\n var found = this.search_obj_by_guid(target.children[i], uuid)\r\n if (found) {\r\n return found\r\n }\r\n }\r\n return null\r\n }\r\n _search_obj_by_name = (target, name) => {\r\n if (target.name == name) {\r\n return target\r\n }\r\n for (let i = 0; i < target.children.length; i++) {\r\n var found = this._search_obj_by_name(target.children[i], name)\r\n if (found) {\r\n return found\r\n }\r\n }\r\n return null\r\n }\r\n\r\n search_obj_by_name = (name) => {\r\n for (let i = 0; i < this.scene.children.length; i++) {\r\n var found = this._search_obj_by_name(this.scene.children[i], name)\r\n if (found) {\r\n return found\r\n }\r\n }\r\n return null\r\n }\r\n ///\r\n\r\n //20210927 by wmf\r\n load_skeleton_animate = (skeleton_url, name, callback) => {\r\n var loader = new FBXLoader() //创建一个FBX加载器\r\n var that = this\r\n loader.load(skeleton_url, function (obj) {\r\n // console.log(obj)\r\n obj.name = name\r\n obj.clips = []\r\n obj.traverse(function (child) {\r\n if (child.isMesh) {\r\n child.castShadow = true\r\n child.receiveShadow = true\r\n }\r\n })\r\n\r\n // obj作为参数创建一个混合器,解析播放obj及其子对象包含的动画数据\r\n var mixer = new THREE.AnimationMixer(obj)\r\n var skeleton = { name: name, obj: obj, mixer: mixer }\r\n that.skeletons.push(skeleton)\r\n if (callback) {\r\n callback(skeleton)\r\n }\r\n })\r\n }\r\n load_skeleton_clip = (clip_url, skeleton_obj, clipName, callback) => {\r\n var loader = new FBXLoader()\r\n loader.load(clip_url, (obj) => {\r\n this.skeletons.forEach((e) => {\r\n if (\r\n e.obj == skeleton_obj &&\r\n obj.animations &&\r\n obj.animations.length > 0\r\n ) {\r\n if (!e.clips) {\r\n e.clips = {}\r\n }\r\n e.clips[clipName] = obj.animations[0]\r\n if (callback) {\r\n callback()\r\n }\r\n }\r\n })\r\n })\r\n }\r\n set_skeleton = (name, pos, scale, rot) => {\r\n var that = this\r\n that.skeletons.forEach((element) => {\r\n if (element['name'] == name) {\r\n if (pos) {\r\n element['obj'].position.set(pos.x, pos.y, pos.z)\r\n }\r\n if (scale) {\r\n element['obj'].scale.set(scale.x, scale.y, scale.z)\r\n }\r\n if (rot) {\r\n element['obj'].rotation.set(rot.x, rot.y, rot.z)\r\n }\r\n //\r\n }\r\n })\r\n }\r\n play_skeleton = (name, id, loop) => {\r\n var that = this\r\n that.skeletons.forEach((element) => {\r\n if (element['name'] == name) {\r\n // 查看动画数据\r\n //console.log(element[\"obj\"].animations)\r\n if (element['mixer'] != null) {\r\n var AnimationAction = element['mixer'].clipAction(\r\n element['obj'].animations[id]\r\n )\r\n // console.log(element[\"mixer\"]);\r\n // AnimationAction.timeScale = 1; //默认1,可以调节播放速度\r\n if (loop) {\r\n AnimationAction.loop = THREE.LoopRepeat //不循环播放\r\n } else {\r\n AnimationAction.loop = THREE.LoopOnce\r\n }\r\n // AnimationAction.loop = THREE.LoopOnce; //不循环播放\r\n // AnimationAction.clampWhenFinished=true;//暂停在最后一帧播放的状态\r\n AnimationAction.play() //播放动画\r\n }\r\n }\r\n })\r\n }\r\n play_skeleton_clip = (object, clipName, loop) => {\r\n var that = this\r\n that.skeletons.forEach((element) => {\r\n if (element['obj'] == object) {\r\n // 查看动画数据\r\n //console.log(clip)\r\n if (element.clips && element.clips[clipName]) {\r\n let clip = element.clips[clipName]\r\n if (element['mixer'] != null && clip) {\r\n var action = element['mixer'].clipAction(clip, element.obj)\r\n if (element.curAction) {\r\n element.curAction.enabled = true\r\n element.curAction.crossFadeTo(action, 0.2)\r\n }\r\n action.enabled = true\r\n element.curAction = action\r\n // AnimationAction.timeScale = 1; //默认1,可以调节播放速度\r\n if (loop) {\r\n action.loop = THREE.LoopRepeat //不循环播放\r\n object.clip_name = clipName\r\n } else {\r\n action.loop = THREE.LoopOnce\r\n }\r\n // AnimationAction.loop = THREE.LoopOnce; //不循环播放\r\n // AnimationAction.clampWhenFinished=true;//暂停在最后一帧播放的状态\r\n action.play() //播放动画\r\n }\r\n }\r\n }\r\n })\r\n }\r\n animate_skeleton = () => {\r\n requestAnimationFrame(this.animate_skeleton) //请求再次执行渲染函数render,渲染下一帧\r\n\r\n var that = this\r\n let passTime = that.clock.getDelta()\r\n that.skeletons.forEach((element) => {\r\n if (element['mixer'] !== null) {\r\n //clock.getDelta()方法获得两帧的时间间隔\r\n element['mixer'].update(passTime)\r\n //console.log(that.clock.getDelta());\r\n }\r\n })\r\n }\r\n\r\n rebuild_list_tree = () => {\r\n if (this.tree) {\r\n let _tree = this.tree\r\n for (var i in _tree) {\r\n let target = this.search_obj_by_guid(this.scene, _tree[i].uuid)\r\n if (target == null) {\r\n target = new THREE.Object3D()\r\n target.name = _tree[i].parent_name\r\n target.uuid = _tree[i].uuid\r\n target.type = 'Object3D'\r\n\r\n let mat0 = new THREE.Matrix4()\r\n mat0.elements = _tree[i].wts\r\n if (_tree[i].offset) {\r\n let offset = new THREE.Matrix4()\r\n offset.elements = _tree[i].offset\r\n mat0.multiply(offset)\r\n }\r\n target.applyMatrix4(mat0)\r\n\r\n this.scene.add(target)\r\n\r\n let _childs = _tree[i].child_guid\r\n for (var j in _childs) {\r\n let guid = _childs[j]\r\n let obj = this.search_obj_by_guid(this.scene, guid)\r\n if (obj && target) {\r\n // let mat1 = obj.matrixWorld.clone();\r\n // let mat = target.matrixWorld.clone();\r\n // mat.getInverse(mat);\r\n // mat.multiply(mat1);\r\n\r\n let mat1 = new THREE.Matrix4()\r\n mat1.elements = _tree[i].local[j]\r\n if (_tree[i].offset) {\r\n let offset = new THREE.Matrix4()\r\n offset.elements = _tree[i].offset\r\n var offsetinv = new THREE.Matrix4().getInverse(offset)\r\n mat1.premultiply(offsetinv)\r\n }\r\n obj.parent.remove(obj)\r\n target.add(obj)\r\n obj.position.set(0, 0, 0)\r\n obj.scale.set(1, 1, 1)\r\n obj.quaternion.set(0, 0, 0, 1)\r\n obj.applyMatrix(mat1)\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.tree = []\r\n }\r\n }\r\n get_video_tex(src, loop) {\r\n if (!this.video) {\r\n this.video = document.createElement('video')\r\n //this.video.setAttribute(\"type\",'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"');\r\n this.video.setAttribute('style', 'display: none')\r\n this.video.setAttribute('crossOrigin', 'anonymous')\r\n this.video.preload = 'none'\r\n this.video.setAttribute('webkit-playsinline', 'true')\r\n this.video.setAttribute('playsinline', 'true')\r\n }\r\n this.video.setAttribute('src', src)\r\n this.video.load()\r\n if (loop) {\r\n this.video.setAttribute('loop', 'loop')\r\n } else {\r\n this.video.setAttribute('loop', '')\r\n }\r\n let tex = new THREE.VideoTexture(this.video)\r\n tex.wrapS = THREE.RepeatWrapping\r\n tex.wrapT = THREE.RepeatWrapping\r\n this.video.play()\r\n return tex\r\n }\r\n shot() {\r\n let image = new Image()\r\n this.renderer.render(this.scene, this.camera) //renderer为three.js里的渲染器,scene为场景 camera为相机\r\n let imgData = this.renderer.domElement.toDataURL('image/jpeg') //这里可以选择png格式jpeg格式\r\n image.src = imgData\r\n return imgData\r\n //document.body.appendChild(image);//这样就可以查看截出来的图片了\r\n }\r\n\r\n stop_video_tex() {\r\n if (this.video) {\r\n this.video.pause()\r\n }\r\n }\r\n create_video_stream_tex(id) {\r\n if (!this.video_stream_data_list) {\r\n this.video_stream_data_list = []\r\n }\r\n let video_stream_data\r\n for (let i = 0; i < this.video_stream_data_list.length; i++) {\r\n let data = this.video_stream_data_list[i]\r\n if (data.id == id) {\r\n video_stream_data = data\r\n break\r\n }\r\n }\r\n if (!video_stream_data) {\r\n video_stream_data = {}\r\n video_stream_data.id = id\r\n video_stream_data.videoPlayer = document.createElement('video')\r\n video_stream_data.videoPlayer.setAttribute('style', 'display: none')\r\n video_stream_data.videoPlayer.setAttribute('crossOrigin', 'anonymous')\r\n video_stream_data.videoPlayer.preload = 'none'\r\n video_stream_data.videoPlayer.id = id\r\n video_stream_data.tex = new THREE.VideoTexture(this.video)\r\n video_stream_data.tex.wrapS = THREE.RepeatWrapping\r\n video_stream_data.tex.wrapT = THREE.RepeatWrapping\r\n this.video_stream_data_list.push(video_stream_data)\r\n }\r\n video_stream_data.videoPlayer.play()\r\n return video_stream_data.tex\r\n }\r\n stop_video_stream_tex(id) {\r\n if (this.video_stream_data_list) {\r\n let video_stream_data\r\n for (let i = 0; i < this.video_stream_data_list.length; i++) {\r\n let data = this.video_stream_data_list[i]\r\n if (data.id == id) {\r\n video_stream_data = data\r\n break\r\n }\r\n }\r\n if (video_stream_data) {\r\n video_stream_data.videoPlayer.pause()\r\n video_stream_data.tex.dispose()\r\n document.removeChild(video_stream_data.videoPlayer)\r\n this.video_stream_data.remove(video_stream_data)\r\n video_stream_data = undefined\r\n }\r\n }\r\n }\r\n show_renderer_stats() {\r\n if (!this.rendererStats) {\r\n this.create_renderer_stats()\r\n }\r\n this.rendererStats.bShow = !this.rendererStats.bShow\r\n if (this.rendererStats.bShow) {\r\n this.container.appendChild(this.rendererStats.domElement)\r\n } else {\r\n this.container.removeChild(this.rendererStats.domElement)\r\n }\r\n }\r\n create_renderer_stats() {\r\n //console.log(\"create renderer stats\");\r\n this.rendererStats = this.RendererStats()\r\n this.rendererStats.bShow = false\r\n this.rendererStats.domElement.style.position = 'absolute'\r\n this.rendererStats.domElement.style.right = '0px'\r\n this.rendererStats.domElement.style.top = '0px'\r\n }\r\n RendererStats = function () {\r\n var msMin = 100\r\n var msMax = 0\r\n\r\n var container = document.createElement('div')\r\n container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer'\r\n\r\n var msDiv = document.createElement('div')\r\n msDiv.style.cssText =\r\n 'padding:0 0 3px 3px;text-align:left;background-color:#200;'\r\n container.appendChild(msDiv)\r\n\r\n var msText = document.createElement('div')\r\n msText.style.cssText =\r\n 'color:#f00;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'\r\n msText.innerHTML = 'WebGLRenderer'\r\n msDiv.appendChild(msText)\r\n\r\n var msTexts = []\r\n var nLines = 9\r\n for (var i = 0; i < nLines; i++) {\r\n msTexts[i] = document.createElement('div')\r\n msTexts[i].style.cssText =\r\n 'color:#f00;background-color:#311;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'\r\n msDiv.appendChild(msTexts[i])\r\n msTexts[i].innerHTML = '-'\r\n }\r\n\r\n var lastTime = Date.now()\r\n return {\r\n domElement: container,\r\n\r\n update: function (webGLRenderer) {\r\n // sanity check\r\n console.assert(webGLRenderer instanceof THREE.WebGLRenderer)\r\n\r\n // refresh only 30time per second\r\n //if( Date.now() - lastTime < 1000/30 )\treturn;\r\n //lastTime\t= Date.now()\r\n\r\n var i = 0\r\n msTexts[i++].textContent = '== Memory ====='\r\n msTexts[i++].textContent =\r\n 'Programs: ' + webGLRenderer.info.memory.programs\r\n msTexts[i++].textContent =\r\n 'Geometries: ' + webGLRenderer.info.memory.geometries\r\n msTexts[i++].textContent =\r\n 'Textures: ' + webGLRenderer.info.memory.textures\r\n\r\n msTexts[i++].textContent = '== Render ====='\r\n msTexts[i++].textContent = 'Calls: ' + webGLRenderer.info.render.calls\r\n msTexts[i++].textContent =\r\n 'Vertices: ' + webGLRenderer.info.render.vertices\r\n msTexts[i++].textContent = 'Faces: ' + webGLRenderer.info.render.faces\r\n //msTexts[i++].textContent = \"Points: \"\t+ webGLRenderer.info.render.points;\r\n msTexts[i++].textContent =\r\n 'frame: ' + Math.floor(1000 / (Date.now() - lastTime))\r\n lastTime = Date.now()\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport { o2vr }\r\n","import axios from \"axios\";\r\nimport QS from \"qs\";\r\n\r\n// axios.defaults.baseURL = \"http://localhost/vryun/php/\";\r\naxios.defaults.baseURL = \"https://api.wh12345.net/vryun/\";\r\n\r\naxios.defaults.headers.post[\"Content-Type\"] =\r\n \"application/x-www-form-urlencoded; charset=UTF-8\";\r\n// axios.defaults.headers.post['token'] = \"76faf1a8f39fece2bc988612ddff11c340bca638fce2e508c5bb82d398a0639d\"\r\n\r\nexport function get(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get(url, {\r\n params: params,\r\n })\r\n .then((res) => {\r\n resolve(res.data);\r\n })\r\n .catch((err) => {\r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\nexport function post(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(url, QS.stringify(params))\r\n .then((res) => {\r\n resolve(res.data);\r\n })\r\n .catch((err) => {\r\n\r\n\r\n \r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\nexport function getuser(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .post(\r\n url,\r\n {\r\n params: params,\r\n },\r\n {\r\n headers: {\r\n \"XX-Token\": localStorage.getItem(\"token\"),\r\n \"XX-Device-Type\": \"pc\",\r\n },\r\n }\r\n )\r\n .then((res) => {\r\n resolve(res.data)\r\n })\r\n .catch((err) => {\r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\n\r\n\r\n\r\nexport function update(url, params) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get(url, {\r\n params: params,\r\n })\r\n .then((res) => {\r\n resolve(res.data);\r\n })\r\n .catch((err) => {\r\n reject(err.data);\r\n });\r\n });\r\n}\r\n\r\nexport default axios.create({\r\n baseURL: \"\",\r\n timeout: 10000,\r\n});\r\n","\r\nimport { LUTCubeLoader } from 'three/examples/jsm/loaders/LUTCubeLoader.js';\r\n\r\nimport * as THREE from 'three/build/three.module';\r\nimport { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';\r\nimport { TransformControls } from 'three/examples/jsm/controls/TransformControls';\r\nimport {\r\n gen_oss_url, get_solo_media\r\n} from \"../../showroom/assets/api/index\";\r\nimport Bus from \"./bus\"\r\nclass _area_hot_trigger {\r\n constructor() {\r\n this.enter_type = 0;//进入触发 0=无 1=触发一个展项 2=关闭展项 3=打开一个动画 4=关闭一个动画\r\n this.enter_target = \"\";//触发对象的名称 type==1的时候是showbox的title type==2||type==3的时候是动画的名称 \r\n this.leave_type = 0;//离开热点区域,同上\r\n this.leave_target = \"\";\r\n this.wts = null;//位置,存储用\r\n this.type_geo = 0;//0=BOX 1=SPHERE\r\n this.bInside = false;//临时存储,角色是否在区域内\r\n }\r\n\r\n to_json = () => {\r\n let obj = {};\r\n if (this.enter_type != 0) obj.enter_type = this.enter_type;\r\n if (this.enter_target != \"\") obj.enter_target = document.showroom.encode64(document.showroom.utf16to8(this.enter_target));\r\n if (this.leave_type != 0) obj.leave_type = this.leave_type;\r\n if (this.leave_target != \"\") obj.leave_target = document.showroom.encode64(document.showroom.utf16to8(this.leave_target));\r\n if (this.type_geo != 0) obj.type_geo = this.type_geo;\r\n return obj;\r\n }\r\n from_json = (json_obj) => {\r\n if (json_obj.enter_type) this.enter_type = json_obj.enter_type;\r\n if (json_obj.leave_type) this.leave_type = json_obj.leave_type;\r\n if (json_obj.enter_target) this.enter_target = document.showroom.utf8to16(document.showroom.decode64(json_obj.enter_target));\r\n if (json_obj.leave_target) this.leave_target = document.showroom.utf8to16(document.showroom.decode64(json_obj.leave_target));\r\n if (json_obj.type_geo) this.type_geo = json_obj.type_geo;\r\n }\r\n}\r\nclass _showbox {\r\n constructor() {\r\n this.title = null;//标题\r\n this.Hyperlinks = null;//超链接\r\n this.text = null;//文字\r\n this.res_list = [];\r\n this.voice_res = null;//音频资源\r\n this.url = null;\r\n this.urlPopType = 0;//0=新窗口弹窗 1=iframe嵌入\r\n this.bPopUp = false;//是否弹出,没有的话触发会直接播放音视频而不弹出信息框\r\n this.linkFlag = null;\r\n }\r\n\r\n to_json = () => {\r\n\r\n let obj = {};\r\n\r\n\r\n\r\n if (this.linkFlag) obj.linkFlag = this.linkFlag;\r\n\r\n if (this.linkValue) obj.linkValue = this.linkValue\r\n if (this.Hyperlinks) obj.Hyperlinks = this.Hyperlinks;\r\n if (this.title) obj.title = document.showroom.encode64(document.showroom.utf16to8(this.title));\r\n\r\n console.log(obj.title)\r\n if (this.text) obj.text = document.showroom.encode64(document.showroom.utf16to8(this.text));\r\n if (this.voice_res) obj.voiceid = this.voice_res.id;\r\n if (this.bPopUp) {\r\n obj.bPopUp = this.bPopUp\r\n }\r\n else {\r\n obj.bPopUp = false\r\n };\r\n\r\n\r\n if (this.urlPopType != 0) obj.b\r\n if (this.res_list.length) {\r\n obj.res_list = [];\r\n for (let i = 0; i < this.res_list.length; i++) obj.res_list.push(this.res_list[i].id);\r\n }\r\n return obj;\r\n }\r\n collect_res = (sets) => {\r\n\r\n if (this.voice_res) sets.add(this.voice_res.id);\r\n if (this.res_list.length) {\r\n for (let i = 0; i < this.res_list.length; i++) sets.add(this.res_list[i].id);\r\n }\r\n }\r\n from_json = (json_obj, sr) => {\r\n\r\n this.res_list = [];\r\n if (json_obj.Hyperlinks) this.Hyperlinks = json_obj.Hyperlinks;\r\n if (json_obj.linkFlag) this.linkFlag = json_obj.linkFlag;\r\n if (json_obj.title) this.title = document.showroom.utf8to16(\r\n document.showroom.decode64(json_obj.title)\r\n );\r\n if (json_obj.text) this.text = document.showroom.utf8to16(\r\n document.showroom.decode64(json_obj.text)\r\n );;\r\n\r\n if (json_obj.bPopUp) { this.bPopUp = json_obj.bPopUp } else {\r\n this.bPopUp = false\r\n };\r\n if (json_obj.resid) {\r\n let res = sr.user_item_info[json_obj.resid.toString()];\r\n if (res) this.res_list.push(res);\r\n }\r\n if (json_obj.voiceid) {\r\n this.voice_res = sr.user_item_info[json_obj.voiceid.toString()];\r\n }\r\n if (json_obj.res_list) {\r\n for (let i = 0; i < json_obj.res_list.length; i++) {\r\n let res = sr.user_item_info[json_obj.res_list[i].toString()];\r\n if (res) this.res_list.push(res);\r\n }\r\n }\r\n\r\n if (json_obj.linkValue) {\r\n this.linkValue = json_obj.linkValue\r\n }\r\n }\r\n}\r\nclass showroom {\r\n constructor() {\r\n this.o2 = null;\r\n this.room = {\r\n\r\n }\r\n this.moveFlag = true\r\n this.hots = [];\r\n this.models = [];\r\n this.show_boxes = [];\r\n this.hot_areas = [];\r\n this.hot_urls = [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"\r\n // document.showroom.getUrl(\"hotpot/6.zip\"),\r\n // document.showroom.getUrl(\"hotpot/6.zip\"),\r\n ];\r\n\r\n }\r\n focus = () => {\r\n document.showroom.moveFlag = false\r\n\r\n }\r\n blur = () => {\r\n document.showroom.moveFlag = true\r\n }\r\n test_bind_click = (object) => {\r\n return object.showbox;\r\n }\r\n record_guide_view = () => {\r\n this.room.guide = this.o2.getView();\r\n }\r\n get_object_bind = (object) => {\r\n if (!this.room.bind) return null;\r\n for (let i = 0; i < this.room.bind.length; i++) {\r\n let bind = this.room.bind[i];\r\n if (bind.uuid == object.uuid) return bind;\r\n }\r\n return null;\r\n }\r\n _collect_obj_showbox = (obj1, sbs) => {\r\n if (obj1.showbox) {\r\n sbs.push(obj1);\r\n }\r\n for (let i = 0; i < obj1.children.length; i++) {\r\n let obj = obj1.children[i];\r\n this._collect_obj_showbox(obj, sbs);\r\n }\r\n }\r\n collect_showboxes = () => {\r\n let sbs = [];\r\n for (let i = 0; i < this.o2.scene.children.length; i++) {\r\n let obj = this.o2.scene.children[i];\r\n this._collect_obj_showbox(obj, sbs);\r\n }\r\n return sbs;\r\n }\r\n collect_animations = () => {\r\n return this.o2.animation.timelines;\r\n }\r\n before_save = () => {\r\n //收集用户资源\r\n this.room.user_item = [];\r\n let sets = new Set;\r\n if (this.room.bind) {\r\n for (let i = 0; i < this.room.bind.length; i++) {\r\n sets.add(this.room.bind[i].resid);\r\n }\r\n }\r\n for (let i = 0; i < this.o2.exhibition.objects.length; i++) {\r\n let object = this.o2.exhibition.objects[i];\r\n let bind = this.get_object_bind(object);\r\n if (bind && object.showbox) {\r\n bind.sb = object.showbox.to_json();\r\n if (object.bind_id)\r\n { \r\n sets.add(object.bind_id);\r\n }\r\n object.showbox.collect_res(sets);\r\n }\r\n }\r\n this.room.hots = [];\r\n for (let i = 0; i < this.hots.length; i++) {\r\n let hot = this.hots[i];\r\n let obj = {};\r\n obj.id = hot.hot_idx;\r\n obj.wts = hot.matrix;\r\n obj.scale = hot.hot_scale;\r\n if (hot.showbox) {\r\n obj.sb = hot.showbox.to_json();\r\n hot.showbox.collect_res(sets);\r\n }\r\n this.room.hots.push(obj);\r\n }\r\n if (this.lutName)\r\n {\r\n this.room.lutName=this.lutName;\r\n }\r\n this.room.hot_areas = [];\r\n for (let i = 0; i < this.hot_areas.length; i++) {\r\n let hot = this.hot_areas[i];\r\n let obj = hot.aht.to_json();\r\n obj.wts = hot.matrix;\r\n this.room.hot_areas.push(obj);\r\n }\r\n\r\n if (this.models) {\r\n this.room.user_model = [];\r\n for (let i = 0; i < this.models.length; i++) {\r\n let model = this.models[i];\r\n if (model.item) {\r\n let mdl_item = {};\r\n mdl_item.resid = model.item.id;\r\n mdl_item.wts = model.matrix;\r\n mdl_item.binds = [];\r\n this.collect_model_bind(model, mdl_item.binds, \"\", sets);\r\n this.room.user_model.push(mdl_item);\r\n sets.add(model.item.id);\r\n }\r\n }\r\n }\r\n for (let item of sets.keys()) {\r\n this.room.user_item.push(item);\r\n }\r\n //camera\r\n this.room.camera_record = null;\r\n if (this.get_record_json) {\r\n this.room.camera_record = this.get_record_json();\r\n }\r\n }\r\n\r\n collect_model_bind = (model, binds, depth, sets) => {\r\n if (model.bind_id) {\r\n let b = {};\r\n b.depth = depth;\r\n b.bind_id = model.bind_id;\r\n sets.add(b.bind_id);\r\n if (model.showbox) {\r\n model.showbox.collect_res(sets);\r\n b.sb = model.showbox.to_json();\r\n }\r\n binds.push(b);\r\n }\r\n for (let i = 0; i < model.children.length; i++) {\r\n let depth2 = depth + \"_\" + i;\r\n this.collect_model_bind(model.children[i], binds, depth2, sets);\r\n }\r\n }\r\n\r\n bind_items = () => {\r\n if (this.room.bind) {\r\n for (let i = 0; i < this.room.bind.length; i++) {\r\n let resid = this.room.bind[i].resid;\r\n let object_id = this.room.bind[i].uuid;\r\n let sb = this.room.bind[i].sb;\r\n let object;\r\n\r\n for (let i = 0; i < this.o2.exhibition.objects.length; i++) {\r\n let obj = this.o2.exhibition.objects[i];\r\n if (obj.uuid == object_id) { object = obj; break; }\r\n }\r\n let res = this.user_item_info[resid.toString()];\r\n if (object && res) {\r\n\r\n this.add_exhibition_item(object, res);\r\n\r\n if (sb)//有保存showbox\r\n {\r\n\r\n object.showbox.from_json(sb, this);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n get_model_exhibition_item = (model, objects) => {\r\n if (model.type == \"Mesh\" && (model.bChangeMap == true || model.material.map == this.o2.map_red || model.bind_id)) {\r\n objects.push(model);\r\n }\r\n\r\n for (let i = 0, l = model.children.length; i < l; i++) {\r\n this.get_model_exhibition_item(model.children[i], objects);\r\n }\r\n }\r\n\r\n getUrl = () => {\r\n this.hot_urls = [\r\n \"https://o2vr.net/hots/6.zip\",\r\n \"https://o2vr.net/hots/7.zip\",\r\n \"https://o2vr.net/hots/8.zip\",\r\n \"https://o2vr.net/hots/9.zip\",\r\n \"https://o2vr.net/hots/11.zip\",\r\n \"https://o2vr.net/hots/12.zip\",\r\n \"https://o2vr.net/hots/13.zip\",\r\n \"https://o2vr.net/hots/15.zip\",\r\n \"https://o2vr.net/hots/16.zip\",\r\n \"https://o2vr.net/hots/17.zip\",\r\n ]\r\n // list.forEach((e, i) => {\r\n // setTimeout(() => {\r\n // gen_oss_url({ object: e }).then(res => {\r\n // // console.log(this.hot_urls, res)\r\n // this.hot_urls[i] = res\r\n // // console.log(this.hot_urls)\r\n // })\r\n // }, 500);\r\n // })\r\n // console.log(this.hot_urls);\r\n }\r\n get_all_exhibition_items = () => {\r\n if (!this.o2.exhibition) {\r\n this.o2.exhibition = {};\r\n }\r\n if (!this.o2.exhibition.objects) {\r\n this.o2.exhibition.objects = [];\r\n }\r\n let objects = this.o2.exhibition.objects;\r\n for (let i = 0; i < this.models.length; i++) {\r\n this.get_model_exhibition_item(this.models[i], objects);\r\n }\r\n return objects;\r\n }\r\n\r\n\r\n add_hot_area = (intersection, item) => {\r\n let showroom = this;\r\n let geometry;\r\n if (item == 0) geometry = new THREE.BoxGeometry(2000, 2000, 2000);\r\n else geometry = new THREE.SphereGeometry(1000, 12, 12);\r\n let obj3 = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({ opacity: 0.5, transparent: true }));\r\n if (!this.hot_area_parent) {\r\n this.hot_area_parent = new THREE.Object3D();\r\n showroom.o2.scene.add(this.hot_area_parent);\r\n }\r\n if (obj3) {\r\n obj3.bHot_area = true;\r\n obj3.aht = new _area_hot_trigger;\r\n obj3.aht.type_geo = item;\r\n showroom.o2.renew_all_uuid(obj3);\r\n showroom.hot_areas.push(obj3);\r\n obj3.position.set(intersection.point.x, intersection.point.y, intersection.point.z);\r\n //移动到物体表面来\r\n let nor = intersection.face.normal.clone();\r\n nor.applyEuler(intersection.object.rotation);\r\n nor.multiplyScalar(100);\r\n obj3.position.add(nor);\r\n this.hot_area_parent.add(obj3);\r\n //添加鼠标工具\r\n {\r\n showroom.set_gizmo_object(obj3);\r\n showroom.set_gizmo_mode(1);\r\n }\r\n }\r\n return obj3;\r\n }\r\n\r\n add_hot_item = (intersection, item) => {\r\n let showroom = this;\r\n let idx = item;\r\n if (item.name == \"手势\") idx = 1;\r\n let url = this.hot_urls[idx];\r\n\r\n let promise = this.o2.import_object_url(url);\r\n promise.then((obj3) => {\r\n if (obj3) {\r\n obj3.hot = true;\r\n obj3.hot_idx = idx;\r\n obj3.hot_scale = 1;\r\n showroom.o2.renew_all_uuid(obj3);\r\n showroom.hots.push(obj3);\r\n showroom.o2.scene.add(obj3);\r\n obj3.position.set(intersection.point.x, intersection.point.y, intersection.point.z);\r\n //移动到物体表面来\r\n let nor = intersection.face.normal.clone();\r\n nor.applyEuler(intersection.object.rotation);\r\n nor.multiplyScalar(100);\r\n obj3.position.add(nor);\r\n\r\n\r\n obj3.showbox = new _showbox;\r\n //添加鼠标工具\r\n {\r\n showroom.set_gizmo_object(obj3);\r\n showroom.set_gizmo_mode(1);\r\n }\r\n if (this.on_add_hot_finish) {\r\n this.on_add_hot_finish(obj3)\r\n }\r\n }\r\n })\r\n }\r\n scale_hot = (item, scale) => {\r\n if (item) {\r\n if (item.hot_scale == null) {\r\n item.hot_scale = 1;\r\n }\r\n let s = scale / item.hot_scale;\r\n item.hot_scale = scale;\r\n item.scale.multiplyScalar(s);\r\n console.log(\"scale_hot\" + s);\r\n }\r\n }\r\n generate_guide_bb = () => {\r\n if (this.guide_obj) this.o2.scene.remove(this.guide_obj);\r\n this.guide_obj = new THREE.Object3D;\r\n this.o2.scene.add(this.guide_obj);\r\n this.guide_obj.visible = false;\r\n if (this.room.viewList) {\r\n for (let i = 0; i < this.room.viewList.length; i++) {\r\n let viewstr = this.room.viewList[i].view;\r\n var view = viewstr.split(\",\");\r\n let pos = new THREE.Vector3;\r\n pos.set(parseInt(view[6]), parseInt(view[7]), parseInt(view[8]));\r\n let canvas = document.createElement(\"canvas\");\r\n canvas.width = 160;\r\n canvas.height = 16;\r\n const drawingContext = canvas.getContext(\"2d\");\r\n drawingContext.fillStyle = \"#000000\";\r\n drawingContext.globalAlpha = 0.8;\r\n drawingContext.fillRect(0, 0, 160, 16);\r\n drawingContext.globalAlpha = 1;\r\n drawingContext.fillStyle = \"#ffffff\";\r\n drawingContext.font = \"12px Georgia\";\r\n drawingContext.textAlign = \"center\";\r\n drawingContext.fillText(this.room.viewList[i].name, 80, 13);\r\n let map = new THREE.CanvasTexture(canvas);\r\n let sprite = new THREE.Sprite(\r\n new THREE.SpriteMaterial({ map: map, color: \"#ffffff\" })\r\n );\r\n sprite.guide_view = viewstr;\r\n sprite.position.set(pos.x, pos.y + 3000, pos.z);\r\n sprite.scale.set(3000, 300, 1);\r\n sprite.material.depthWrite = false;\r\n sprite.material.depthTest = false;\r\n this.guide_obj.add(sprite);\r\n }\r\n }\r\n }\r\n switch_lut=(name)=>\r\n {\r\n if (name==\"原始\")\r\n {\r\n if (this.o2.lutPass) {\r\n this.o2.lutPass.intensity = 0;\r\n }\r\n }else{\r\n if (this.o2.postEffect.bDefaultRender)\r\n {\r\n console.log(this.o2.postEffect);\r\n this.o2.postEffect.bDefaultRender = false;\r\n this.o2.postEffect.fxaa = true;\r\n this.o2.postEffect.lut = true;\r\n this.o2.postEffect.glow = false;\r\n this.o2.postEffect.lutFile = \"https://o2vr.net/luts/\"+name+\".cube\";\r\n this.o2.postEffect.lutPower = 1;\r\n this.o2.create_render_pass();\r\n }else{\r\n if (this.o2.lutPass) {\r\n this.o2.lutPass.intensity = 1;\r\n let o2 = this.o2;\r\n if (1) {\r\n new LUTCubeLoader()\r\n .load(\"https://o2vr.net/luts/\"+name+\".cube\", function (result) {\r\n o2.lutPass.lut = result.texture3D;\r\n o2.lutPass.enabled = true;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n this.lutName=name;\r\n }\r\n prepare_run = () => {\r\n let all_objects = this.get_all_exhibition_items();\r\n this.click_able_items = [];\r\n for (let i = 0; i < all_objects.length; i++) {\r\n let obj = all_objects[i];\r\n if (obj.showbox) {\r\n this.click_able_items.push(obj);\r\n }\r\n }\r\n\r\n if (this.room.view) {\r\n this.o2.toView(this.room.view);\r\n }\r\n for (let i = 0; i < this.o2.animation.timelines.length; i++) {\r\n let tl = this.o2.animation.timelines[i];\r\n if (tl.name.substr(0, 5) == \"_loop\") {\r\n tl.play();\r\n }\r\n }\r\n this.generate_guide_bb();\r\n if (this.gizmo) {\r\n this.gizmo.detach();\r\n }\r\n }\r\n set_fbx_mtl = (obj)=>\r\n {\r\n if (obj.type==\"Mesh\"&&obj.material&&obj.material.type==\"MeshPhongMaterial\")\r\n {\r\n obj.material.lightMap=this.o2.map_white;\r\n }\r\n for (let i=0;i {\r\n console.log(item)\r\n let ext = item.name.substr(-3, 3);\r\n console.log(ext);\r\n ext = ext.toLowerCase();\r\n let _o2=this.o2;\r\n let showroom=this;\r\n if (ext==\"fbx\")//FBX装载\r\n {\r\n\r\n // model\r\n const loader = new FBXLoader();\r\n loader.load( item.url, function ( object ) {\r\n console.log(object);\r\n let obj3=object;\r\n obj3.user_model = true;\r\n obj3.item = item;\r\n showroom.models.push(obj3);\r\n showroom.set_fbx_mtl(obj3);\r\n showroom.o2.scene.add(obj3);\r\n obj3.position.set(intersection.point.x, intersection.point.y, intersection.point.z);\r\n if (!showroom.user_item_info[item.id.toString()])//插入到userinfo\r\n {\r\n let info = {};\r\n info.id = item.id;\r\n info.name = item.name;\r\n info.preview = item.preview;\r\n info.url = item.url;\r\n showroom.user_item_info[item.id.toString()] = info;\r\n }\r\n //添加鼠标工具\r\n showroom.set_gizmo_object(obj3);\r\n showroom.set_gizmo_mode(1);\r\n } );\r\n return;\r\n }\r\n\r\n let promise = this.o2.import_object_url(item.url);\r\n promise.then((obj3) => {\r\n if (obj3) {\r\n obj3.user_model = true;\r\n obj3.item = item;\r\n showroom.o2.renew_all_uuid(obj3);\r\n showroom.models.push(obj3);\r\n showroom.o2.scene.add(obj3);\r\n obj3.position.set(intersection.point.x, intersection.point.y, intersection.point.z);\r\n //判断是不是竖立面,如果是竖立面需要旋转对象角度\r\n let nor = intersection.face.normal.clone();\r\n nor.applyEuler(intersection.object.rotation);\r\n\r\n let dir2 = new THREE.Vector3;\r\n this.o2.camera.getWorldDirection(dir2);\r\n if (dir2.dot(nor) > 0) nor.multiplyScalar(-1);\r\n\r\n //nor.applyNormalMatrix(intersection.object.matrixWorld);\r\n let dir_up = new THREE.Vector3(0, 1, 0);\r\n let dot = nor.dot(dir_up);\r\n if (Math.abs(dot < 0.5)) {\r\n let angle = Math.asin(nor.x);\r\n if (nor.z < 0) angle = 3.1415 - angle;\r\n obj3.rotation.set(0, angle, 0);\r\n }\r\n }\r\n\r\n if (!showroom.user_item_info[item.id.toString()])//插入到userinfo\r\n {\r\n let info = {};\r\n info.id = item.id;\r\n info.name = item.name;\r\n info.preview = item.preview;\r\n info.url = item.url;\r\n showroom.user_item_info[item.id.toString()] = info;\r\n }\r\n //添加鼠标工具\r\n {\r\n showroom.set_gizmo_object(obj3);\r\n showroom.set_gizmo_mode(1);\r\n\r\n }\r\n })\r\n }\r\n\r\n change_bind_item_texture = (obj, map) => {\r\n if (obj.type == \"Mesh\" && obj.material.map == this.o2.map_red) {\r\n obj.bChangeMap = true;\r\n obj.material.map = map;\r\n }\r\n for (let i = 0; i < obj.children.length; i++) {\r\n this.change_bind_item_texture(obj.children[i], map);\r\n }\r\n }\r\n\r\n load_hot_areas = () => {\r\n this.hot_areas = [];\r\n if (this.hot_area_parent)//之前有,新建一个\r\n {\r\n this.o2.scene.children.remove(this.hot_area_parent);\r\n }\r\n\r\n\r\n this.hot_area_parent = new THREE.Object3D();\r\n this.hot_area_parent.visible = false;\r\n this.o2.scene.add(this.hot_area_parent);\r\n let saved = this.room.hot_areas;\r\n this.room.hot_areas = null;\r\n if (!saved) return;\r\n for (let i = 0; i < saved.length; i++) {\r\n let aht_saved = saved[i];\r\n let aht = new _area_hot_trigger;\r\n aht.from_json(aht_saved);\r\n let geometry;\r\n if (aht.type_geo == 0) geometry = new THREE.BoxGeometry(2000, 2000, 2000);\r\n else geometry = new THREE.SphereGeometry(1000, 12, 12);\r\n\r\n let obj3 = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({ opacity: 0.5, transparent: true }));\r\n obj3.bHot_area = true;\r\n obj3.aht = aht;\r\n let mat = aht_saved.wts;\r\n obj3.position.set(0, 0, 0);\r\n obj3.scale.set(1, 1, 1);\r\n obj3.rotation.set(0, 0, 0);\r\n obj3.applyMatrix4(mat);\r\n aht.bInside = false;\r\n this.hot_areas.push(obj3);\r\n this.hot_area_parent.add(obj3);\r\n }\r\n }\r\n\r\n load_hots = () => {\r\n this.hots = [];\r\n let saved = this.room.hots;\r\n this.room.hots = null;\r\n let showroom = this;\r\n if (!saved) return;\r\n for (let i = 0; i < saved.length; i++) {\r\n let savedhot = saved[i];\r\n let url = this.hot_urls[savedhot.id];\r\n let promise = this.o2.import_object_url(url);\r\n promise.then((obj3) => {\r\n if (obj3) {\r\n obj3.hot = true;\r\n obj3.hot_idx = savedhot.id;\r\n obj3.hot_scale = savedhot.scale;\r\n console.log(\"scale:\" + savedhot.scale);\r\n showroom.o2.renew_all_uuid(obj3);\r\n showroom.hots.push(obj3);\r\n showroom.o2.scene.add(obj3);\r\n let mat = savedhot.wts;\r\n obj3.position.set(0, 0, 0);\r\n obj3.scale.set(1, 1, 1);\r\n obj3.rotation.set(0, 0, 0);\r\n obj3.applyMatrix4(mat);\r\n if (savedhot.sb) {\r\n let showbox = new _showbox;\r\n showbox.from_json(savedhot.sb, this);\r\n obj3.showbox = showbox;\r\n } else {\r\n let showbox = new _showbox;\r\n obj3.showbox = showbox;\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n apply_mode_bind = (model, depth, binds) => {\r\n let b;\r\n for (let i = 0; i < binds.length; i++) {\r\n let bind = binds[i];\r\n if (bind.depth == depth) {\r\n b = bind;\r\n break;\r\n }\r\n }\r\n if (b) {\r\n if (b.bind_id) {\r\n let res = this.user_item_info[b.bind_id];\r\n if (res && model.material) {\r\n model.bind_id = b.bind_id;\r\n model.material.map = this.o2.create_map(res.preview);\r\n }\r\n\r\n if (b.sb) {\r\n let showbox = new _showbox;\r\n showbox.from_json(b.sb, this);\r\n model.showbox = showbox;\r\n } else {\r\n let showbox = new _showbox;\r\n model.showbox = showbox;\r\n if (item.type == \"image\") {\r\n showbox.bPopUp = true;\r\n }\r\n let res = this.user_item_info[b.bind_id];\r\n if (res) showbox.res_list.push(res);\r\n }\r\n }\r\n }\r\n for (let i = 0; i < model.children.length; i++) {\r\n let depth2 = depth + \"_\" + i;\r\n this.apply_mode_bind(model.children[i], depth2, binds);\r\n }\r\n }\r\n load_models = () => {\r\n console.log(\"load_models\");\r\n let sr = this;\r\n let showroom=this;\r\n sr.models = [];\r\n if (!this.room.user_model) return;\r\n for (let i = 0; i < this.room.user_model.length; i++) {\r\n let um = this.room.user_model[i];\r\n let res = sr.user_item_info[um.resid.toString()];\r\n if (res&&res.name) {\r\n\r\n let ext = res.name.substr(-3, 3);\r\n console.log(ext);\r\n ext = ext.toLowerCase();\r\n if (ext==\"fbx\")//FBX装载\r\n {\r\n // model\r\n const loader = new FBXLoader();\r\n loader.load( res.url, function ( object ) {\r\n console.log(object);\r\n let obj3=object;\r\n\r\n \r\n obj3.user_model = true;\r\n obj3.item = res;\r\n sr.models.push(obj3);\r\n sr.o2.scene.add(obj3);\r\n let mat = um.wts;\r\n obj3.position.set(0, 0, 0);\r\n obj3.scale.set(1, 1, 1);\r\n obj3.rotation.set(0, 0, 0);\r\n obj3.applyMatrix4(mat);\r\n sr.set_fbx_mtl(obj3);\r\n } );\r\n }else{\r\n let promise = this.o2.import_object_url(res.url);\r\n promise.then((obj3) => {\r\n if (obj3) {\r\n obj3.user_model = true;\r\n obj3.item = res;\r\n sr.o2.renew_all_uuid(obj3);\r\n sr.models.push(obj3);\r\n sr.o2.scene.add(obj3);\r\n let mat = um.wts;\r\n obj3.position.set(0, 0, 0);\r\n obj3.scale.set(1, 1, 1);\r\n obj3.rotation.set(0, 0, 0);\r\n obj3.applyMatrix4(mat);\r\n this.apply_mode_bind(obj3, \"\", um.binds);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n set_gizmo_mode = (mode) => {\r\n if (!this.gizmo) return;\r\n let oldmode = this.gizmo_mode;\r\n if (this.gizmo_mode == mode) return;\r\n this.gizmo_mode = mode;\r\n // if (oldmode && oldmode != 0 && this.gizmo_mode == 0) {\r\n // this.o2.scene.remove(this.gizmo);\r\n // return;\r\n // }\r\n if (!oldmode && this.gizmo_mode != 0) {\r\n this.o2.scene.add(this.gizmo);\r\n }\r\n if (mode == 1) {\r\n this.gizmo.setMode('translate');\r\n }\r\n if (mode == 2) {\r\n this.gizmo.setMode('rotate');\r\n }\r\n if (mode == 3) {\r\n this.gizmo.setMode('scale');\r\n }\r\n\r\n }\r\n remove_hot = (model) => {\r\n if (model.bHot_area) {\r\n if (this.hot_area_parent) {\r\n this.hot_area_parent.remove(model);\r\n let newlst = [];\r\n for (let i = 0; i < this.hot_areas.length; i++) {\r\n if (this.hot_areas[i] != model) {\r\n newlst.push(this.hot_areas[i]);\r\n }\r\n }\r\n this.hot_areas = newlst;\r\n }\r\n if (model == this.selected_model) {\r\n this.set_gizmo_object(null);\r\n }\r\n return;\r\n }\r\n console.log(model)\r\n let left_list = [];\r\n for (let i = 0; i < this.hots.length; i++) {\r\n let mdl = this.hots[i];\r\n if (mdl != model) {\r\n left_list.push(mdl);\r\n }\r\n }\r\n this.hots = left_list;\r\n this.o2.scene.remove(model);\r\n if (model == this.selected_model) {\r\n this.set_gizmo_object(null);\r\n }\r\n }\r\n remove_model = (model) => {\r\n let left_list = [];\r\n for (let i = 0; i < this.models.length; i++) {\r\n let mdl = this.models[i];\r\n if (mdl != model) {\r\n left_list.push(mdl);\r\n }\r\n }\r\n this.models = left_list;\r\n this.o2.scene.remove(model);\r\n if (model == this.selected_model) {\r\n this.set_gizmo_object(null);\r\n }\r\n }\r\n\r\n set_gizmo_object = (obj) => {\r\n\r\n if (!this.gizmo) {\r\n this.gizmo = new TransformControls(this.o2.camera, this.o2.renderer.domElement);\r\n this.gizmo.ctrl = this.o2.cameraControls;\r\n this.gizmo.addEventListener('dragging-changed', function (event) {\r\n this.ctrl.enabled = !event.value;\r\n if(document.showroom.bCopyModel){\r\n document.showroom.bCopyModel = false;\r\n let curObj = document.showroom.selected_model;\r\n let item = curObj.item;\r\n if(!item)return;\r\n let promise = document.o2.import_object_url(item.url);\r\n promise.then((obj3) => {\r\n if (obj3) {\r\n obj3.user_model = true;\r\n obj3.item = item;\r\n document.showroom.o2.renew_all_uuid(obj3);\r\n document.showroom.models.push(obj3);\r\n document.showroom.o2.scene.add(obj3);\r\n obj3.position.set(curObj.position.x,curObj.position.y,curObj.position.z);\r\n obj3.rotation.set(curObj.rotation.x,curObj.rotation.y,curObj.rotation.z);\r\n obj3.scale.set(curObj.scale.x,curObj.scale.y,curObj.scale.z);\r\n }\r\n })\r\n }\r\n });\r\n }\r\n\r\n this.selected_model = obj;\r\n if (obj) {\r\n this.gizmo.attach(obj);\r\n this.gizmo.setSpace(\"local\");\r\n } else {\r\n this.gizmo.detach();\r\n this.gizmo.setSpace(\"world\");\r\n }\r\n }\r\n\r\n add_exhibition_item = (object, item) => {\r\n //console.log(object);\r\n let map = this.o2.create_map(item.preview);\r\n object.material.map = map;\r\n let oldbind_id = object.bind_id;\r\n object.bind_id = item.id;\r\n object.bChangeMap = true;\r\n let showbox;\r\n if (object.showbox) {//已经有了\r\n showbox = object.showbox;\r\n if (showbox.res_list.length == 1)//只有一个的时候再替换\r\n {\r\n if (showbox.res_list[0].id == oldbind_id)//旧资源和旧展项一致\r\n {\r\n showbox.res_list = [];\r\n showbox.res_list.push(item);\r\n }\r\n }\r\n } else {//新画板\r\n showbox = new _showbox;\r\n object.showbox = showbox;\r\n if (item.type == \"image\") {\r\n showbox.bPopUp = true;\r\n showbox.linkFlag = 1;\r\n }\r\n showbox.res_list.push(item);\r\n }\r\n\r\n //判断素材是不是用户自己布置的\r\n let user_object;\r\n let obj2 = object;\r\n while (obj2 && obj2 != this.o2.scene) {\r\n if (obj2.user_model == true) {\r\n user_object = obj2;\r\n break;\r\n }\r\n obj2 = obj2.parent;\r\n }\r\n if (user_object)//用户自定义展项\r\n {\r\n user_object.bind = item;\r\n return;\r\n }\r\n if (!this.room.bind) this.room.bind = [];\r\n let bind = this.get_object_bind(object);\r\n if (bind) {\r\n bind.resid = item.id;\r\n }\r\n else {\r\n bind = {};\r\n bind.uuid = object.uuid;\r\n bind.resid = item.id;\r\n this.room.bind.push(bind);\r\n if (!this.user_item_info) {\r\n this.user_item_info = {};\r\n }\r\n if (!this.user_item_info[item.id.toString()])//插入到userinfo\r\n {\r\n let info = {};\r\n info.id = item.id;\r\n info.name = item.name;\r\n info.preview = item.preview;\r\n info.url = item.url;\r\n this.user_item_info[item.id.toString()] = info;\r\n }\r\n }\r\n }\r\n load_lut = () =>\r\n {\r\n if (this.room.lutName)\r\n {\r\n let name = this.room.lutName;\r\n this.switch_lut(name);\r\n }\r\n }\r\n load_camera_record = () => {\r\n //camera\r\n if (this.room.camera_record && this._load_camera_record) {\r\n this._load_camera_record(this.room.camera_record);\r\n }\r\n }\r\n load(params, template) {\r\n this.room = params\r\n console.log(\"开始加载\", this.room);\r\n this.getUrl()\r\n\r\n if (this.room.viewHeight) {\r\n Bus.$emit(\"viewHeight\", this.room.viewHeight)\r\n }\r\n\r\n if (!this.room.moveSpd) {\r\n this.room.moveSpd = 5\r\n }\r\n\r\n Bus.$emit(\"moveSpd\", this.room.moveSpd * 400 + 2000)\r\n if (!this.room.view && template && template.view) {\r\n this.room.view = template.view\r\n }\r\n\r\n if (document.showroom.room.logo) {\r\n\r\n } else {\r\n console.log(document.showroom.room);\r\n document.showroom.room.logo = {\r\n preview: require(\"../../preview/assets/img/logo.png\"),\r\n };\r\n }\r\n \r\n\r\n // console.log(this.getUrl, 321321)\r\n let container = document.getElementById(\"container\");\r\n this.SCREEN_WIDTH = container.clientWidth;\r\n this.SCREEN_HEIGHT = container.clientHeight;\r\n var _o2 = document.o2vr;\r\n _o2.init(container);\r\n let ppp = _o2.load_zip_scene(params.url);\r\n var that = this\r\n\r\n {\r\n _o2.script = {};\r\n let scripts = _o2.script;\r\n _o2.dist_appear = false;\r\n scripts[\"init\"] = function init() {\r\n that.bPrepare = false;\r\n console.log(\"inited\");\r\n _o2.on_loading_msg(\"正在下载:\", String(Math.ceil(100)), \"%\");\r\n if (that.room.view) {\r\n console.log(that.room.view)\r\n var view = that.room.view.split(\",\");\r\n _o2.cameraControls.target.set(\r\n view[0],\r\n view[1],\r\n view[2]\r\n );\r\n _o2.camera.position.set(\r\n view[3],\r\n view[4],\r\n view[5]\r\n );\r\n }\r\n _o2.cameraControls.panSpeed = 0.5;\r\n\r\n // _o2.cameraControls.minDistance = 0.1;\r\n // _o2.cameraControls.maxDistance = 15000;\r\n // if (params.maxDistance) {\r\n // this.cameraMaxDistance = params.maxDistance;\r\n // }\r\n // if (params.minDistance) {\r\n // this.cameraMinDistance = params.minDistance;\r\n // }\r\n\r\n\r\n\r\n _o2.cameraControls.maxPolarAngle = Math.PI - Math.PI / 10;\r\n _o2.cameraControls.minPolarAngle = Math.PI / 10;\r\n that.user_item_info = that.room.user_item_info;\r\n that.room.user_item_info = null;\r\n\r\n if (_o2.init_play) _o2.init_play();\r\n that.load_models();\r\n that.bind_items();\r\n that.load_camera_record();\r\n that.load_hots();\r\n that.load_hot_areas();\r\n that.prepare_run();\r\n that.load_lut();\r\n };\r\n }\r\n\r\n ppp.then(() => {\r\n console.log(\"load ended\");\r\n document.o2.camera.fov = this.room.fov?this.room.fov:60;\r\n document.o2.camera.updateProjectionMatrix();\r\n\r\n });\r\n }\r\n\r\n save() {\r\n return this.room\r\n }\r\n\r\n\r\n //播放音频\r\n playAudio(e) {\r\n var audio = new Audio()\r\n audio.autoplay = true\r\n audio.id = 'audio'\r\n audio.src = e\r\n document.body.appendChild(audio)\r\n }\r\n\r\n //移除音频\r\n removeAudio() {\r\n document.body.removeChild(document.getElementById(\"audio\"))\r\n }\r\n\r\n set_camera_controls(bEdit) {\r\n let _o2 = document.o2;\r\n if (_o2) {\r\n if (!bEdit) {\r\n if (this.room.maxDistance) {\r\n _o2.cameraControls.maxDistance = this.room.maxDistance;\r\n } else {\r\n _o2.cameraControls.maxDistance = 20000;\r\n }\r\n if (this.room.minDistance) {\r\n _o2.cameraControls.minDistance = this.room.minDistance;\r\n } else {\r\n _o2.cameraControls.minDistance = 0.1;\r\n }\r\n }\r\n else {\r\n _o2.cameraControls.minDistance = 0.1;\r\n _o2.cameraControls.maxDistance = Number.POSITIVE_INFINITY;\r\n }\r\n }\r\n }\r\n encode64(input) {\r\n\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var output = \"\";\r\n var chr1, chr2, chr3 = \"\";\r\n var enc1, enc2, enc3, enc4 = \"\";\r\n var i = 0;\r\n do {\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)\r\n + keyStr.charAt(enc3) + keyStr.charAt(enc4);\r\n chr1 = chr2 = chr3 = \"\";\r\n enc1 = enc2 = enc3 = enc4 = \"\";\r\n } while (i < input.length);\r\n return output;\r\n }\r\n\r\n\r\n\r\n\r\n //将Base64编码字符串转换成Ansi编码的字符串\r\n decode64(input) {\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var output = \"\";\r\n var chr1, chr2, chr3 = \"\";\r\n var enc1, enc2, enc3, enc4 = \"\";\r\n var i = 0;\r\n if (input.length % 4 != 0) {\r\n return \"\";\r\n }\r\n var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\r\n if (base64test.exec(input)) {\r\n return \"\";\r\n }\r\n do {\r\n enc1 = keyStr.indexOf(input.charAt(i++));\r\n enc2 = keyStr.indexOf(input.charAt(i++));\r\n enc3 = keyStr.indexOf(input.charAt(i++));\r\n enc4 = keyStr.indexOf(input.charAt(i++));\r\n chr1 = (enc1 << 2) | (enc2 >> 4);\r\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n chr3 = ((enc3 & 3) << 6) | enc4;\r\n output = output + String.fromCharCode(chr1);\r\n if (enc3 != 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 != 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n chr1 = chr2 = chr3 = \"\";\r\n enc1 = enc2 = enc3 = enc4 = \"\";\r\n } while (i < input.length);\r\n return output;\r\n }\r\n utf16to8(str) {\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var out, i, len, c;\r\n out = \"\";\r\n len = str.length;\r\n for (i = 0; i < len; i++) {\r\n c = str.charCodeAt(i);\r\n if ((c >= 0x0001) && (c <= 0x007F)) {\r\n out += str.charAt(i);\r\n } else if (c > 0x07FF) {\r\n out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));\r\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n } else {\r\n out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n }\r\n }\r\n return out;\r\n }\r\n utf8to16(str) {\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var out, i, len, c;\r\n var char2, char3;\r\n out = \"\";\r\n len = str.length;\r\n i = 0;\r\n while (i < len) {\r\n c = str.charCodeAt(i++);\r\n switch (c >> 4) {\r\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\r\n // 0xxxxxxx\r\n out += str.charAt(i - 1);\r\n break;\r\n case 12: case 13:\r\n // 110x xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\r\n break;\r\n case 14:\r\n // 1110 xxxx 10xx xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n char3 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x0F) << 12) |\r\n ((char2 & 0x3F) << 6) |\r\n ((char3 & 0x3F) << 0));\r\n break;\r\n }\r\n }\r\n return out;\r\n }\r\n}\r\n\r\nexport { showroom };","import axios from 'axios'\r\nimport TRTC from 'trtc-js-sdk'\r\nimport Bus from './bus'\r\n\r\n// import * as LibGenerateTestUserSig from './lib-generate-test-usersig.min.js'\r\nclass o2vrClient {\r\n constructor() {\r\n //凭证\r\n this.config = {\r\n mode: 'rtc',\r\n sdkAppId: '',\r\n userId: '',\r\n usersig: ''\r\n }\r\n //客户端\r\n this.client = ''\r\n this.list = []\r\n this.audioflag = false\r\n this.videoflag = false\r\n }\r\n\r\n //登录client\r\n async login(userid, roomId) {\r\n console.log(userid)\r\n //获取签证\r\n // const SDKAPPID = 1400601861;\r\n // const EXPIRETIME = 604800;\r\n // const SECRETKEY = 'fe1ea13d889fc1a987cc2164bca5818e172dd777659827521606da9418a8c472';\r\n // const generator = new LibGenerateTestUserSig(SDKAPPID, SECRETKEY, EXPIRETIME)\r\n // const userSig = generator.genTestUserSig(userID)\r\n // this.config.userId = userid\r\n // this.config.userSig = generator.genTestUserSig(userid)\r\n Bus.$on('mute', (target) => {\r\n if (!this.videoflag & !this.audioflag) {\r\n this.client.publish(localStream)\r\n Bus.$emit('localFlag', true)\r\n }\r\n this.audioflag = target\r\n if (target) {\r\n localStream.unmuteAudio()\r\n } else {\r\n localStream.muteAudio()\r\n }\r\n console.log(this.videoflag, this.audioflag)\r\n if (!this.videoflag & !this.audioflag) {\r\n this.client.unpublish(localStream)\r\n Bus.$emit('localFlag', false)\r\n }\r\n })\r\n\r\n Bus.$on('vmute', (target) => {\r\n if (!this.videoflag & !this.audioflag) {\r\n this.client.publish(localStream)\r\n Bus.$emit('localFlag', true)\r\n }\r\n this.videoflag = target[0]\r\n if (target[0]) {\r\n Bus.$emit('spliu', localStream)\r\n localStream.unmuteVideo()\r\n } else {\r\n localStream.muteVideo()\r\n }\r\n\r\n if (!this.videoflag & !this.audioflag) {\r\n this.client.unpublish(localStream)\r\n Bus.$emit('localFlag', false)\r\n }\r\n })\r\n await this.get(userid).then((res) => {\r\n this.config.userId = userid\r\n this.config.userSig = res.sig\r\n this.config.sdkAppId = res.appid\r\n })\r\n //建立客户端\r\n this.client = await TRTC.createClient(this.config)\r\n let remoteStreamList = []\r\n //订阅远方流\r\n await this.client.on('stream-added', (event) => {\r\n const remoteStream = event.stream\r\n console.log('远端流增加: ' + remoteStream.getId())\r\n this.client.subscribe(remoteStream)\r\n })\r\n\r\n await this.client.on('stream-removed', ({ stream: remoteStream }) => {\r\n Bus.$emit('removelist', remoteStream)\r\n })\r\n\r\n // 播放远端流\r\n await this.client.on('stream-subscribed', (event) => {\r\n const remoteStream = event.stream\r\n console.log('远端流订阅成功:' + remoteStream.getId())\r\n\r\n Bus.$emit('addlist', remoteStream)\r\n })\r\n\r\n // 开始获取流音量\r\n let getAudioLevelTimer = -1\r\n var that = this\r\n function startGetAudioLevel() {\r\n getAudioLevelTimer = setAnimationFrame(() => {\r\n var list = that.client.getRemoteMutedState()\r\n Bus.$emit('listChange', list)\r\n })\r\n }\r\n // 停止获取流音量\r\n function stopGetAudioLevel() {\r\n if (getAudioLevelTimer !== -1) {\r\n clearAnimationFrame(getAudioLevelTimer)\r\n getAudioLevelTimer = -1\r\n }\r\n }\r\n\r\n // 设置AnimationFrame\r\n function setAnimationFrame(render) {\r\n // 计时器\r\n let timer = {}\r\n function animeLoop() {\r\n render()\r\n timer.id = requestAnimationFrame(animeLoop)\r\n }\r\n animeLoop()\r\n return timer\r\n }\r\n // 清除AnimationFrame\r\n function clearAnimationFrame(timer) {\r\n cancelAnimationFrame(timer.id)\r\n }\r\n //进入房间\r\n await this.client\r\n .join({ roomId })\r\n .catch((error) => {\r\n console.error('进房失败 ' + error)\r\n })\r\n .then(() => {\r\n console.log('进房成功')\r\n startGetAudioLevel()\r\n })\r\n //await this.shareScreen(roomId);\r\n var localStream\r\n await TRTC.getCameras().then((res) => {\r\n console.log(res)\r\n if (res.length != 0) {\r\n console.log('拥有摄像头', res[0])\r\n localStream = TRTC.createStream({\r\n userId: this.config.userId,\r\n audio: true,\r\n video: true\r\n })\r\n } else {\r\n console.log('没有摄像头开启语音')\r\n localStream = TRTC.createStream({\r\n userId: this.config.userId,\r\n audio: true,\r\n video: false\r\n })\r\n\r\n // localStream.muteAudio();\r\n }\r\n })\r\n //创建流\r\n\r\n //初始化本地音视频流。\r\n\r\n await localStream\r\n .initialize()\r\n .catch((error) => {\r\n console.log('初始化本地流失败 ' + error)\r\n return\r\n })\r\n .then(() => {\r\n console.log('初始化本地流成功')\r\n localStream.play('local_stream')\r\n console.log(document.getElementById('local_stream'))\r\n localStream.muteAudio()\r\n localStream.muteVideo()\r\n })\r\n }\r\n\r\n async loginOut() {\r\n this.client\r\n .leave()\r\n .then(() => {\r\n // 退房成功,可再次调用client.join重新进房开启新的通话。\r\n console.log('退房成功')\r\n this.list = []\r\n })\r\n .catch((error) => {\r\n console.error('退房失败 ' + error)\r\n // 错误不可恢复,需要刷新页面。\r\n })\r\n }\r\n\r\n test() {\r\n this.client.leave().then(() => {\r\n this.client.join({ roomId: 1000 }).then(() => {\r\n //this.client.roomId\r\n console.log('重新加入1000频道', this.client)\r\n })\r\n })\r\n }\r\n\r\n //获取签证\r\n get(userid) {\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .get('https://api.wh12345.net/trtc/usersig.php?', {\r\n params: {\r\n userid,\r\n appname: 'vryun'\r\n }\r\n })\r\n .then((res) => {\r\n resolve(res.data)\r\n })\r\n .catch((err) => {\r\n reject(err.data)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport { o2vrClient }\r\n","import SparkMD5 from \"spark-md5\";\r\nimport Bus from \"../js/bus\";\r\nimport axios from 'axios'\r\nclass o2Function {\r\n constructor() {\r\n this.client = \"\",\r\n this.dir_prefix = \"\",\r\n this.t = \"\",\r\n this.r = \"\",\r\n this.s = \"\"\r\n }\r\n\r\n\r\n\r\n //创建oss client\r\n\r\n\r\n createClient() {\r\n const OSS = require(\"ali-oss\");\r\n axios.post(\"https://api.wh12345.net/AliyunOss/assumeRole.php?\").then((res) => {\r\n var data = res.data.body.credentials;\r\n console.log(data);\r\n this.client = new OSS({\r\n // yourRegion填写Bucket所在地域。以华东1(杭州)为例,yourRegion填写为oss-cn-hangzhou。\r\n region: \"oss-cn-beijing\",\r\n // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。\r\n accessKeyId: data.accessKeyId,\r\n accessKeySecret: data.accessKeySecret,\r\n // 从STS服务获取的安全令牌(SecurityToken)。\r\n stsToken: data.securityToken,\r\n // 填写Bucket名称。\r\n bucket: \"o2public\",\r\n });\r\n console.log('创建ossclient成功')\r\n });\r\n }\r\n\r\n upload(data) {\r\n\r\n console.log(data)\r\n Bus.$emit('progress', 0)\r\n return new Promise((resolve, reject) => {\r\n this.getMD5(data, md5 => {\r\n axios\r\n .get(`${document.o2.url}/before_upload.php`, {\r\n params: { md5: md5, s: this.s, t: this.t, r: this.r },\r\n })\r\n .then((res) => {\r\n if (res.data.code == 1) {\r\n var date = new Date();\r\n var nameList = data.name.split('.')\r\n var name = nameList[0] + date.getTime() + '.' + nameList[nameList.length - 1];\r\n var path = `${res.data.dir_prefix}${name}`;\r\n\r\n this.sliceupload(data, name, path).then(res => {\r\n axios\r\n .get(`${document.o2.url}/after_upload.php`, {\r\n params: { md5: md5, name, name2: data.name, s: this.s, t: this.t, r: this.r },\r\n }).then(res => {\r\n resolve(res.data.data)\r\n })\r\n\r\n })\r\n\r\n\r\n } else if (res.data.code == 0) {\r\n Bus.$emit('progress', 1)\r\n resolve(res.data.data)\r\n\r\n }\r\n })\r\n\r\n\r\n })\r\n })\r\n\r\n\r\n }\r\n //简单上传\r\n async simpleUpload(data, name, path) {\r\n var that = this;\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const result = that.client.put(path, data);\r\n resolve(result)\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n })\r\n }\r\n\r\n\r\n //分片上传\r\n async sliceupload(data, name, path) {\r\n var that = this;\r\n\r\n var page\r\n\r\n if (data.size < 10 * 1024 * 1024) {\r\n page = 1\r\n } else if (data.size < 100 * 1024 * 1024) {\r\n page = 5\r\n } else {\r\n page = 10\r\n }\r\n return new Promise((resolve, reject) => {\r\n const options = {\r\n\r\n progress: (p, cpt, res) => {\r\n console.log(p);\r\n Bus.$emit('progress', p)\r\n },\r\n\r\n parallel: page,\r\n\r\n partSize: 1024 * 1024,\r\n\r\n };\r\n\r\n // 监听按钮。\r\n try {\r\n // 分片上传。\r\n const res = that.client.multipartUpload(path, data, {\r\n ...options,\r\n });\r\n\r\n resolve(res)\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n })\r\n\r\n }\r\n\r\n getToken() {\r\n this.t = Math.floor(new Date().getTime() / 1000);\r\n\r\n this.r = Math.floor(Math.random() * 10000);\r\n\r\n var token = \"o2_report2\";\r\n\r\n var arr = String(this.t) + String(this.r) + token;\r\n\r\n var s = sha1(arr);\r\n\r\n this.s = md5(s).toUpperCase();\r\n console.log(this.s);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n //base64编码解码\r\n encode64(input) {\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var output = \"\";\r\n var chr1, chr2, chr3 = \"\";\r\n var enc1, enc2, enc3, enc4 = \"\";\r\n var i = 0;\r\n do {\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)\r\n + keyStr.charAt(enc3) + keyStr.charAt(enc4);\r\n chr1 = chr2 = chr3 = \"\";\r\n enc1 = enc2 = enc3 = enc4 = \"\";\r\n } while (i < input.length);\r\n return output;\r\n }\r\n //将Base64编码字符串转换成Ansi编码的字符串\r\n decode64(input) {\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var output = \"\";\r\n var chr1, chr2, chr3 = \"\";\r\n var enc1, enc2, enc3, enc4 = \"\";\r\n var i = 0;\r\n if (input.length % 4 != 0) {\r\n return \"\";\r\n }\r\n var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\r\n if (base64test.exec(input)) {\r\n return \"\";\r\n }\r\n do {\r\n enc1 = keyStr.indexOf(input.charAt(i++));\r\n enc2 = keyStr.indexOf(input.charAt(i++));\r\n enc3 = keyStr.indexOf(input.charAt(i++));\r\n enc4 = keyStr.indexOf(input.charAt(i++));\r\n chr1 = (enc1 << 2) | (enc2 >> 4);\r\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n chr3 = ((enc3 & 3) << 6) | enc4;\r\n output = output + String.fromCharCode(chr1);\r\n if (enc3 != 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 != 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n chr1 = chr2 = chr3 = \"\";\r\n enc1 = enc2 = enc3 = enc4 = \"\";\r\n } while (i < input.length);\r\n return output;\r\n }\r\n utf16to8(str) {\r\n\r\n var out, i, len, c;\r\n out = \"\";\r\n len = str.length;\r\n for (i = 0; i < len; i++) {\r\n c = str.charCodeAt(i);\r\n if ((c >= 0x0001) && (c <= 0x007F)) {\r\n out += str.charAt(i);\r\n } else if (c > 0x07FF) {\r\n out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));\r\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n } else {\r\n out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n }\r\n }\r\n return out;\r\n }\r\n utf8to16(str) {\r\n\r\n var out, i, len, c;\r\n var char2, char3;\r\n out = \"\";\r\n len = str.length;\r\n i = 0;\r\n while (i < len) {\r\n c = str.charCodeAt(i++);\r\n switch (c >> 4) {\r\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\r\n // 0xxxxxxx\r\n out += str.charAt(i - 1);\r\n break;\r\n case 12: case 13:\r\n // 110x xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\r\n break;\r\n case 14:\r\n // 1110 xxxx 10xx xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n char3 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x0F) << 12) |\r\n ((char2 & 0x3F) << 6) |\r\n ((char3 & 0x3F) << 0));\r\n break;\r\n }\r\n }\r\n return out;\r\n }\r\n //开启拖拽监听\r\n createDrag() {\r\n document.addEventListener('dragover', this.FileDragHover, false)\r\n //监听文件拖拽移出\r\n document.addEventListener('dragleave', this.FileDragLeave, false)\r\n //监听文件拖拽放下(必须)\r\n document.addEventListener('drop', this.Drop, false)\r\n document.drag = this\r\n }\r\n //解除拖拽监听\r\n destroyed() {\r\n document.removeEventListener('dragover', this.FileDragHover, false)\r\n //监听文件拖拽移出\r\n document.removeEventListener('dragleave', this.FileDragLeave, false)\r\n //监听文件拖拽放下(必须)\r\n document.removeEventListener('drop', this.Drop, false)\r\n }\r\n\r\n //处理文件拖入事件\r\n FileDragHover(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n //添加类名修改样式\r\n e.target.classList.add(\"dropBoxHover\")\r\n // e.target.innerText = \"松开鼠标上传\"\r\n }\r\n //处理拖拽离开事件\r\n FileDragLeave(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n //移除类名修改样式\r\n e.target.classList.remove(\"dropBoxHover\")\r\n // e.target.innerText = \"拖拽文件上传\"\r\n }\r\n //处理文件拖拽放下事件\r\n\r\n async Drop(e) {\r\n\r\n\r\n //阻止事件冒泡\r\n e.stopPropagation();\r\n //阻止事件的默认行为\r\n e.preventDefault();\r\n //储存获取到的文件列表\r\n let fileList = [];\r\n let DirectoryEntryList = [];\r\n\r\n //清除样式\r\n e.target.classList.remove(\"dropBoxHover\")\r\n if (e.dataTransfer.items) {\r\n // 拖拽对象列表转换成数组\r\n let items = new Array(...e.dataTransfer.items);\r\n // 获得DirectoryEntry对象列表\r\n for (let index = 0; index < items.length; index++) {\r\n let e = items[index];\r\n let item = null;\r\n //兼容不同内核的浏览器\r\n if (e.webkitGetAsEntry) {\r\n item = e.webkitGetAsEntry();\r\n } else if (e.getAsEntry) {\r\n item = e.getAsEntry();\r\n } else {\r\n this.$alert(\"浏览器不支持拖拽上传\", \"提示\");\r\n return;\r\n }\r\n DirectoryEntryList.push(item);\r\n }\r\n if (DirectoryEntryList.length > 0) {\r\n for (let index = 0; index < DirectoryEntryList.length; index++) {\r\n let item = DirectoryEntryList[index];\r\n if (item) {\r\n //获取文件夹目录\r\n let FileTree = await document.drag.getFileTree(item);\r\n // 拿到目录下的所有文件\r\n if (Array.isArray(FileTree)) {\r\n //展平文件夹\r\n flattenArray(FileTree, fileList);\r\n } else {\r\n //方便后续处理,单文件时也包装成数组\r\n fileList.push(FileTree);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var obj = {\r\n x: e.offsetX,\r\n y: e.offsetY,\r\n file: fileList[0]\r\n }\r\n // var chatroom = document.getElementById('chatroom')\r\n // console this.checkIn(chatroom)\r\n Bus.$emit(\"drag\", obj)\r\n }\r\n\r\n checkIn(obj) {\r\n var x = Number(window.event.clientX) // 鼠标相对屏幕横坐标\r\n var y = Number(window.event.clientY) // 鼠标相对屏幕纵坐标\r\n\r\n var div_x = Number(obj.getBoundingClientRect().left) // obj相对屏幕的横坐标\r\n var div_x_width = Number(\r\n obj.getBoundingClientRect().left + obj.clientWidth\r\n ) // obj相对屏幕的横坐标+width\r\n\r\n var div_y = Number(obj.getBoundingClientRect().top) // obj相对屏幕的纵坐标\r\n var div_y_height = Number(\r\n obj.getBoundingClientRect().top + obj.clientHeight\r\n ) // obj相对屏幕的纵坐标+height\r\n\r\n if (x > div_x && x < div_x_width && y > div_y && y < div_y_height) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n /**\r\n * 获取文件\r\n */\r\n fileSync(item) {\r\n return new Promise((resolve, reject) => {\r\n item.file(res => {\r\n resolve(res);\r\n });\r\n });\r\n }\r\n //读取文件夹下的文件\r\n readEntriesSync(dirReader) {\r\n return new Promise((rel, rej) => {\r\n dirReader.readEntries(res => {\r\n rel(res);\r\n });\r\n });\r\n }\r\n /**\r\n * 获取文件目录结构树\r\n *\r\n */\r\n async getFileTree(item) {\r\n let that = this;\r\n var path = item.fullPath || \"\";\r\n let dir = new Array();\r\n if (item.isFile) {\r\n let resFile = await this.fileSync(item);\r\n resFile.path = path;\r\n return resFile;\r\n // item为文件夹时\r\n } else if (item.isDirectory) {\r\n var dirReader = item.createReader();\r\n let entries = await that.readEntriesSync(dirReader);\r\n for (let i = 0; i < entries.length; i++) {\r\n let proItem = await that.getFileTree(entries[i]);\r\n dir.push(proItem);\r\n }\r\n return dir;\r\n }\r\n }\r\n\r\n\r\n // 文件转MD5\r\n getMD5(file, callBack) {\r\n /*\r\n * file 选取的文件\r\n * callBack 回调函数可以返回获取的MD5\r\n */\r\n let fileReader = new FileReader(),\r\n blobSlice =\r\n File.prototype.mozSlice || File.prototype.webkitSlice || File.prototype.slice,\r\n chunkSize = 2097152,\r\n // read in chunks of 2MB\r\n chunks = Math.ceil(file.size / chunkSize),\r\n currentChunk = 0,\r\n spark = new SparkMD5();\r\n fileReader.onload = function (e) {\r\n spark.appendBinary(e.target.result); // append binary string\r\n currentChunk++;\r\n if (currentChunk < chunks) {\r\n loadNext();\r\n } else {\r\n callBack(spark.end());\r\n }\r\n };\r\n function loadNext() {\r\n let start = currentChunk * chunkSize,\r\n end = start + chunkSize >= file.size ? file.size : start + chunkSize;\r\n fileReader.readAsBinaryString(blobSlice.call(file, start, end));\r\n }\r\n loadNext();\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\nexport { o2Function };","import Bus from './bus'\r\nimport axios from \"axios\";\r\nimport { Group } from 'three';\r\nclass chat {\r\n constructor() {\r\n this.ws = {},\r\n this.msgList = [\r\n []\r\n ],\r\n this.role = {\r\n\r\n },\r\n\r\n this.timmer = \"\"\r\n this.playerList = []\r\n }\r\n login(role) {\r\n var that = this\r\n this.role = role\r\n function wsConnect(role) {\r\n axios\r\n .get('https://api.wh12345.net:9400/assign/', {\r\n params: {\r\n name: role.name,\r\n roomid: role.roomid\r\n },\r\n })\r\n .then((res) => {\r\n if (res.data.code == 0) {\r\n that.ws = new WebSocket(`wss://api.wh12345.net:${res.data.port}/`);\r\n that.port = res.data.port\r\n that.ws.onopen = function () {\r\n // that.ws.send(`login,${role.name},${role.sex},${role.accInfo},${role.bodyColor},${role.hairColor},${role.auth}`);\r\n that.ws.send(`login,${role.name},${role.roomid},${role.rid}`)\r\n // Bus.$emit('loginS', '')\r\n that.ws.onmessage = function (evt) {\r\n var msg = evt.data.split(',')\r\n var cmd = evt.data.split(':')\r\n\r\n\r\n Bus.$emit('playermsg', evt)\r\n if (cmd[0] == '{\"code\"') {\r\n Bus.$emit('player', JSON.parse(evt.data))\r\n this.list = JSON.parse(evt.data)\r\n }\r\n if (msg[0] == 'logsuccess') {\r\n that.role.id = msg[1]\r\n }\r\n\r\n\r\n if (msg[0] == 'chats') {\r\n that.msgList[0].push({\r\n name: msg[1],\r\n msg: msg[2],\r\n })\r\n Bus.$emit('msgList', that.msgList)\r\n }\r\n\r\n\r\n if (msg[0] == 'chat') {\r\n\r\n that.msgList.push([])\r\n var sendid = msg[1]\r\n var reid = msg[2]\r\n var value = msg[4] * 1\r\n\r\n if (that.role.name == sendid) {\r\n that.msgList[value].push({\r\n name: msg[1],\r\n msg: msg[3]\r\n })\r\n Bus.$emit('msgList', that.msgList)\r\n } else if (that.role.name == reid) {\r\n Bus.$emit('reciveMsg', {\r\n name: msg[1],\r\n msg: msg[3],\r\n from: sendid\r\n })\r\n }\r\n }\r\n\r\n if (msg[1] == 'manage') {\r\n if (that.role.name == msg[2]) {\r\n console.log(that.role.name == msg[2])\r\n Bus.$emit('manage', msg[3])\r\n }\r\n }\r\n\r\n if (msg[1] == \"zhuchiren\") {\r\n if (that.role.name == msg[2]) {\r\n Bus.$emit('zhuchirenhuifu', msg[3])\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n };\r\n } else {\r\n Bus.$emit('loginError4', '')\r\n }\r\n })\r\n\r\n }\r\n\r\n wsConnect(role)\r\n setInterval(() => {\r\n // axios\r\n // .get('https://api.wh12345.net:9400/players/')\r\n // .then((res) => {\r\n // that.playerList = res.data;\r\n // Bus.$emit('playerList', that.playerList)\r\n // })\r\n\r\n this.ws.send('players')\r\n // this.ws.send('close')\r\n setTimeout(() => {\r\n if (this.ws.readyState == 1) {\r\n // 已经链接并且可以通讯\r\n this.ws.send('ping')\r\n } else if (this.ws.readyState == 2) {\r\n this.ws.onclose = function (e) {\r\n wsConnect(role)\r\n };\r\n } else if (this.ws.readyState == 3) {\r\n // 连接已关闭或者没有链接成功\r\n wsConnect(role)\r\n }\r\n }, 500)\r\n\r\n\r\n }, 3000)\r\n\r\n };\r\n send(e) {\r\n this.ws.send(e)\r\n }\r\n}\r\nexport { chat }\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport store from './store'\r\nimport ElementUI from 'element-ui'\r\nimport 'element-ui/lib/theme-chalk/index.css'\r\nimport { o2vr } from '../common/js/o2_before'\r\nimport VueAudio from 'vue-audio'\r\nimport '../common/css/common_repair.css'\r\nimport VideoPlayer from 'vue-video-player'\r\nrequire('video.js/dist/video-js.css')\r\nrequire('vue-video-player/src/custom-theme.css')\r\nVue.use(VideoPlayer)\r\nVue.use(VueAudio)\r\nimport { showroom } from '../common/js/showroom'\r\nVue.prototype.Showroom = new showroom()\r\ndocument.showroom = Vue.prototype.Showroom\r\n// import { o2builder } from '../common/js/o2_builder'\r\nimport 'animate.css/animate.compat.css'\r\nVue.config.productionTip = false\r\nVue.prototype.O2vr = new o2vr()\r\ndocument.o2vr = Vue.prototype.O2vr\r\ndocument.o2 = Vue.prototype.O2vr\r\ndocument.showroom.o2 = document.o2vr\r\nVue.use(ElementUI)\r\n// Vue.prototype.O2Builder = new o2builder()\r\nVue.config.productionTip = false\r\n// import Vconsole from 'vconsole'\r\n// let vConsole = new Vconsole()\r\n// Vue.use(vConsole)\r\nimport { o2vrClient } from '../common/js/o2vrClient_repair'\r\nimport { o2Function } from '../common/js/o2Function'\r\n\r\nimport { chat } from '../common/js/chat'\r\nVue.prototype.$chat = new chat()\r\nVue.prototype.$client = new o2vrClient()\r\nVue.prototype.$o2Function = new o2Function()\r\ndocument.o2.type = 'local'\r\nimport Bus from '../common/js/bus'\r\n\r\nVue.prototype.Bus = Bus\r\nnew Vue({\r\n store,\r\n render: (h) => h(App)\r\n}).$mount('#app')\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABX1JREFUWEe1mHlsFFUcx7+/nbK7tYggStpCsSYIKgqSeESlcm+LREJTA6aJRCMKqOEopbQKFANiOEw8YiOCaClQi9xGObz+kSgJWs6UtlCgUIKAiqi0XbbzzHcyU4dhZjtQfMkku3P83uf9rvf7PcE1DKXUTQDuMa9uAG4F0MkUcRHA7wDOAqjiJSKX/IoXPy8qpXoBeArAXQAuA2gGEAPQAkA3ZQQAaAASAIQAdABQC+ALETnS1jxxQZRSPQCMAXAvgL8ANLYl0PE8EcDNAA4B2CQip72+9wRRSj0CYDwAqvefawRwvp4EgGZdJSK73WS5giilRgHg9YdpinZyGJ/TVF1MU21zCrwKRCmVCWA0gN9s9r8RIJRBP+oKYKuI7LALvQJEKdUXwMvtgdB1y3f/myYQ4Pytw4IpERH6jjFaQZRStwF43fQJRobv4Zyc/3Vdl0AgoAw12EDM3zQTfWaBiFDzV4C8CKD39TimObExeSwWMxZnwXFiAiUkJCjzt7VAOnC1iKxoBVFK3QGgAMA5NzX8+NOervMWLB7d0HC6p/25pmmxbVsr3k5O7tYUjUbl0YyswsuxWNApo0+fXlVlK0vWB4NB3QFzO4DFInLCoFdKTQHQ3StPRJ7MeSEYCkVzx+XsSuigtTpBYjgcGzUycoqrj0ajgZ3ffJ/654WLoVhLLKC36FKxYUvGmTNne/TonnJi3dqPy8LhsG5pxoRlnqkXkQ9EKRUGsBTAeS+nuG/AwOLXZk0vy30mp875jmUWglArzc3NAV5z3lg0fN/+g/1SUpIbdF3X1pZ+WJaYmKgTxuG89M18gjwI4FkzZ7iyEGTu7PzSsTljjruB8B4hCNPY2BgonD1/ROXeA/0nT3xuw969B3vWHa9PW/1JyeqkpKQWFxDmljKCPA/g7njpuy0QyzSEySuYm/lL5b7+r74y4fMhGY81LH2n5PG6Y/VpcTTC6DlEkBlmkonGM42bRqzIYKQ0NTUF8grmRPb8vO+B6VMnrhs2OOMU5b215N2BR48eTysv+2h1KBRyMw2d+zxB3jQzKHdS36bxgpgxbVJFVmTYSUtQ+bqNvauqalIXLSz+jlETDAaNMLYN7thCkPfNTOqZwJymaQuCkaFpmpHMrMF71uUAYeR2vmYQPxA0AZMYJ7QnNoI4M62ZVLsQZKFZ4PgyDQXTJ3hNySvKpE9Y5uBEhLBWzkmPHKnrWHu0rtPIzOFGLeLQBm/RNBpBZgG4hRHox0fMCJH8wuKhP+za/fCMaZMrsiJDT7pBUF7+rOJBVdU16V9uLi91geArdNYLBJlg7jGe9aXlI09njzbyCCNk2fJP+6amJl+MDB/SQH+w+4B95XkFcwYdrq5N/2rLZ6UeC2X4VhOElViun4RmgTBf0DTc5CjcC4LPfIAwoa0lCImWeG14FDbgocFF48Zmby+cObXS8hH76izHdPOB3PEvZTdeagpvWr+q3EMj3Phm+tr0ZhbNy9i+49vBaWnd6ylMqSsi05AvcnXVGW2OBn89ey65qGDaGrd9CgA3vQYRec8CSSdVPK2sLF3T++ChwymeycblgaZpelZkaO2wIU+ciaONRSJSb6/QJgJg/9Leit0vKwujGhFZbmjU+kopxc6NpeLfN7By94JiqdgRwHwRMcoPZ/HcD8Aksza5ugr2u9b471nF8zIR2W+96tZOZJnt5f/VTrAQ2iwiO+28Xg3WCLPVvHADzURzdDYhvnYqLV7LyR6HlT1bi/Y6MB2TzfkKey/TpkZsDsyuLJs5zXTi62nC6ZSVADaKCI8tXIffY4k7TVOx7+Hm6OdYgptZjWmKY235uS8Qm4Z4KHM/gP5meckjB24RHNw0eXTBcGQ0HBARHt74Gv8CekW0ccSjLTYAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/role3.80580de3.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAiBJREFUOE+dlD9oFGEQxX+zpyISC8HiwCZFwICNVgpeINYajBgL8cxtREk6bSyEizfnpbCxson45/YS7RQFY2dxkBO1slTRIoXilYIBA2Z35Dt2l826KDjl7Mz73sx7s0JB1Kx5XLApgwpQjkv6Aj1DHnek8SLfJtnEBWvtjwgDYCdwB+gCa3HNMDAOzBqslyhdfCDzH5P+FKhmN45C9Mzg2pLovSKmSc43nTNogTfZkeuvXH4A5JiEhL0IO7Uszd7fQJJv561R8ZCnJUoVx2wA5Ju+juB+nsmMNU8adgXo/4Krj0S/ZB+JmZ3riI5JvNiFQPRQtqhqOlKC9wLb4nw3ED2WZ+ubvjOkLr5pG3gbiC5mi6ZNqx4sJzmDzY7o9gKgOeCw1Ew/CUwEoh9ytH3APZJGILpF5XgtowbPHaOfwJ5AdON/gM6YDu2Cb4VAvulwBCc8uJ0B/x5iE3lVU6Ci0c6a7t0BlwWmgNEY7KZB2BGt55ino7UFedOWhnNyGr7ppCEH4sQGWFngViDaz9bNWHPWsCMybepGaOXljxdZNqgLrKzBy67oZpH8EcwPVKiZrnrIwywr3/QgiDPkiCCfXV0gjWaeTYRVB4bMSLiavZ1/nUlymwJjzjqpL5Lb8ZB6fl95ULeXCFvI3uYWg/mmToG7AkOCLApe9wfhVwe0m9I+Ixo3zF3+usClrIn/cKprigU4XfRji+DJkuhKnuVv71gBhfp+NDMAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/big.873230af.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAjRJREFUWEftl02IT2EUxn8PQ1LGwkeRsPOxUCJGomzIYsxSiWJnxEqmWQn5SBbysbFghWbNlInSoEQikjIbWVFolHyGjs50ZjpzjbmjO4v/4r51N/eezvu8zznPc94rGmSpQXBQAylWomakZqRMnWPqETNbDWwGJqaEn4Arkt74OzObB2wDpqWYn8ANSY8qAzGzFqAX+FZINhl4CawPgA+BBcCPFDcBaALWSXoyGphSRszsMLAfWAEMnD7WTuAssBSYAdwDdgNXU4yz9AA4LulkVSBHgT3AQklejoFlZruAS8AyYC7QA2yRdD3FzAT6HLAkP9A/11gYqYEMo8/MDgCHgE7gc/q4FtgBLAmlPI6eeZ5ipgMngA5J56qWZg5wDVhZSOTSvCBpX/TMxQA2qRB3H2iT9KESkNhkCrAK+JiSfZH0Kic3M4/JMv8FvJZUlP5fmEqbNYA0hzqmpgxvJeUyuJKWA7MyWOCZpFzSEYkpBRKOeQtYXMjwG7gsyf3EQXQBW0fY5SmwUdL7SqUxsw7gWJjVu5RsA7A3AHpTunOeB26mmNnRwJ3j0az/4yOtkrqToXmZfAyckXSkKiM1kKKhHYyhtwbIPbIdOB1Dz2fKXcDnz1BpgPnAbe8xSaeqlsanrm/iBuZKGVwuZb9nbIpRfwdYBHxPMX5/8adF0otKQEKaPmH90vM1JesHugYd08yclXYY9ovid5PuMhCes9RHRjvFeH6rgRTZrBmpGSlTWMP0yB8q6uQjVJdm3gAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/role2.12292406.jpg\";","module.exports = __webpack_public_path__ + \"img/addicon2.75c2408e.png\";","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client.vue?vue&type=style&index=0&id=6f629840&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAA/FJREFUWEfFmG1oVmUYx3/Xns1oTy/M5aqtSNanFPJDUCCDWS2w0iwtISSR+lC6MsqQckovQtaHKCrnhoJCfpHAGitovmDDJX6SCkWylw8SNbWpW6zm3HbL/+E+D8ezc3zO87CXG86Hh+fc1/27r/u6/9d1HaOE4Zy7EbgTqAay3sQg8A/wp5n9W6xZSzvBOXc3cB9wLzATGAHG/CMzZf4pB84DPwHHzOz3NGsUBHHO1QDLgbmAdv0/MFrAeAa43nvrOPClmZ291pxEEOec/nsEWAxc8hAuze5C78jGDcAM4GszO5g0PxbEOaeJzUA9cCHk/iI58q/LQ1XAKaDNzIajhsaBeIhXgVqgv9SVE+bdrGAGPjWzy+F3rgLxx/EKMBsYmGCIwNxNgAK41czyRx0FeRJ4yEf9JHHkzOra7zOzzmCRPIhzTkfRAvRNQEwU2oSuumA2m1mvXg6DrAXuAP4LW/msdcfc9u27ni5kOfE2mI29v7ll5+LHFyo2wkNC+IeZbcuDOOfqgA3AuajB19dvaty3/9CCUkE0b9XKZzveeK35xxgbs4B3pTE5jzjnngHu91px1fuTDKJU0WNmXwUgHwK6TpLtqQSpyB2LWYs5524F3gZiJXiSPSIOrZ8DUSJb6RV03DFGQWbVVPdWZCpG/vq7V4FNXV3t6eHLl2acO9t3m37X18/+ra/v/Mz+/gElxty4RowEV3mHQJqAx5IELArSfaBjSzabHWl4cNE6K7Oxwwc7Px4cHCxvbFryliAPdXW0dx8+UtO8dv3qlCBS2w6BPAoIJraGiIIsXbrou8rK7PDu3XueMLOxFSuWf9N/4WJl57ddTZlMZmT1i6v2Hj/xS+333T0NKUEUsPsFstBn2VQgpVzjAkeTB5GkK9XHJrgpCNb80cwDXkjKL1MAoqDOBest0nzgTJzbpwBE13djIGhbfPk3TtC2te+c07Z911Ojo6OqRYseFeXlw++98+YXMblGtmTTcoLmJX4ZMD/p5kRXHxoaKnvu+TXLTp48NSf834LGhp7PP/kgsRyM2YUC9Qcz2xuA3A5sSlLXODdEYRrmP3C0betHXUW4TGsHSe9MuAx4GbgrLvElGQ9gqquqBoqEkEkV1SoDWnP5JljEOSevbJz2wsjHyhLg4WktFT2IPDTZxbMETMXz1sTi2cOop1HZqKptetqJULxcB7wEqN9Vg1VshxeNb3laDdavQHuqBisEo8nKyspD6nf1lDIqAW2s08wOJBlI04RLgtWE3+Mr/GKacEGcAPaYmT5ZJI6CICEPqftTgR18loircSXZqkP1WeJn4KiZnU7jxtQgYWPOObWNCmYlzAn5UHMFqp2prPBpujAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAbxJREFUSEu9lkEoRFEUhr9R87BCJLImRWFhJ0spRaZkLEaRms0sKImtDSs2s5mVMgtPajTYyJKdsGESa5GG2I2ZQqferde4d96MGd7ynnP//57/3Hv+56Pw1wh0Au1AE1DnpL8DaeAeuAVeTDA+Q0CAh4BewJSjtn4BV8CJjki3uQeYACyP6vLDWcAGrt2BfIJBYKSIU5u4pZoj4FQluAm6gOkywN2SbQM3sqAIRPN5oLpEWUzpH8Am8KoIpoC+CoErmAtgVwgagGWdNIFAoMWyLJ9t24868mAw2Or3+6vi8fiDJi79WBeCAWDUBBCLxcYjkUgyHyQUCrVFo9GxcDi8bzoAkBSCWecxaRVSQG4S3ZpB3pQQLALNhfR3A0qenFxXlQbjWQhWgRqvBisSySsSXFIz/0Kw5AwyYxFlSJSWCuaADhN6mU2+++treqAe2oquAjl9Lpf7LPTQstnsVyKReDIosKZGhYznfq+bVGL8HNhTBPXAAlBbIogpPQNsAG/ucS3WOFOhcb3lWOkPO6yE4RwCZzrDUWvdwOQvvEE8YAdIFbJMFZOeDDseUYzpXwLHonl+U7w2l/3b8g2tB7xkxfg3RQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAB95JREFUeF7tnUtyVTsMRe0JMZGXJoNgRnSZTl6TcTCHS4VvSO7HliVb9l50sWRrba06VVCV1MIfCEDgJoEKGwhA4DYBBGE7IHCHAIKwHhBAEHYAAjYCfEFs3KgSIYAgIkEzpo0Agti4USVCAEFEgmZMGwEEsXGjSoQAgogEzZg2Aghi40aVCIHjBblcLh9qrV9F8mRMZwIKgnwupXyptT47s6OdAAEVQT6WUp6QRGCjnUdUEeRTKeUbkjhvj0A7JUFe4kQSgaX2HFFNECTx3B6BXoqCIInAYnuNqCoIknht0OF9lAVBksOX22M8dUGQxGOLDu6BID/D5V+3Dl7ykdEQ5C89JBnZpENrEeTfYJHk0EW3joUg78khiXWbDqxDkOuhIsmBy24ZCUFuU0MSy0YdVoMg9wNFksMWvnccBHlMDEkeMzr2BIK0RYskbZyOO4Ug7ZEiSTurY04iSF+USNLHa/vTCNIfIZL0M9u2AkFs0SGJjdt2VQhijwxJ7Oy2qUSQsaiQZIxf+moEGY8IScYZpu2AID7RIIkPx3RdEMQvEiTxY5mmE4L4RoEkvjyXd0MQ/wiQxJ/pso4IEoMeSWK4Tu+KIHHIkSSO7bTOCBKLGkli+YZ3R5BwxPxIoXjEcTcgSBzb1535kszh7H4LgrgjvdkQSeaxdrsJQdxQNjVCkiZMeQ4hyPwskGQ+c/ONCGJGN1SIJEP45hUjyDzWb29CknXsm29GkGZUIQeRJASrX1ME8WNp7YQkVnIT6hBkAuSGK5CkAdKKIwiygvr1O5EkTxZ/XoIguUJBklx5FARJFgi/Di5XIAiSK4/fr+FLkiQXBEkSxJVnIEmCbBAkQQh3noAki/NBkMUBNFyPJA2Qoo4gSBRZ375I4suzuRuCNKNafhBJFkSAIAugD1z5Isl/tdb/B3pQ2kEAQTpgJTmKJBODQJCJsB2vQhJHmPdaIcgk0AHXIEkA1LctEWQC5MArkCQQ7ktrBAkGPKE9kgRCRpBAuBNbI0kQbAQJArugLZIEQEeQAKgLWyKJM3wEcQaaoB2SOIaAII4wE7VCEqcwEMQJZMI2SOIQCoI4QEzcAkkGw0GQQYAblCPJQEgIMgBvo1IkMYaFIEZwG5YhiSE0BDFA27gESTrDQ5BOYAccR5KOEBGkA9ZBR5GkMUwEaQR14DEkaQgVQRogHXwESR6EiyAHb3/jaEhyBxSCNG7R4ceQ5EbACHL45neMhyRXYCFIxwYJHEWSNyEjiMDWd46IJK+AIUjn9ogcR5JfQSOIyMYbxkQSfuyPYW20SuQl4QuitfCWaaUlQRDLyujVyEqCIHrLbp1YUhIEsa6LZp2cJAiiuegjU0tJgiAjq6JbKyMJgugu+ejkEpIgyOia6NYjyAnZXy6Xz6WUTyfMkmgGCTleePMFSbR1mzxFRg4E2WQjEz1TSg4ESbR5GzxFTg4E2WArkzxRUg4ESbJ9yZ8hKweCJN/MBM+TlgNBEmxg4ifIy4Egibdz8dOQ41cA/D/I4k1MeD1yvAoFQRJu6MInIccb+AiycBuTXY0cVwJBkGRbuug5yHEDPIIs2shE1yLHnTAQJNGmLngKcjyAjiALtjLJlcjREASCNEA68AhyNIaKII2gDjqGHB1hIkgHrAOOIkdniAjSCWzj48hhCA9BDNA2LEEOY2gIYgS3URlyDISFIAPwNihFjsGQEGQQYOJy5HAIB0EcICZsgRxOoSCIE8hEbZDDMQwEcYSZoBVyOIeAIM5AF7ZDjgD4CBIAdUFL5AiCjiBBYCe2RY5A2AgSCHdCa+QIhowgwYAD2yNHINzfrRFkAuSAK5AjAOq1lggyCbTjNcjhCPNRKwR5RCjX3yPH5DwQZDLwgete5HiqtT4P9KC0kwCCdAJbdBw5FoFHkEXgO65Fjg5Y3kcRxJuobz/k8OXZ3Q1BupFNK0COaahvX4QgCUK48gTkSJILgiQJ4tUzkCNRJgiSKIxSCnLkyqMgSJ5AkCNPFn9egiA5QkGOHDm8ewWCrA8GOdZncPMFCLI2HORYy//h7QjyEFHYAeQIQ+vXGEH8WPZ0Qo4eWgvPIsh8+Mgxn7n5RgQxozMVIocJ27oiBJnHHjnmsXa7CUHcUN5thBxzOLvfgiDuSN81RI54xmE3IEgY2h+NkSOWb3h3BIlDjBxxbKd1RpAY1MgRw3V6VwTxR44c/kyXdUQQX/TI4ctzeTcE8YsAOfxYpumEID5RIIcPx3RdEGQ8EuQYZ5i2A4KMRYMcY/zSVyOIPSLksLPbphJBbFEhh43bdlUI0h8ZcvQz27YCQfqiQ44+XtufRpD2CJGjndUxJxGkLUrkaON03CkEeRwpcjxmdOwJBLkfLXIcu/ptgyHIbU7I0bZDR59CkOvxIsfRa98+HIK8Z4Uc7ftz/EkE+Tdi5Dh+5fsGRJC/vJCjb3ckTiPIz5iRQ2Ld+4dEEOTo3xqhCnVB+HIILbtlVGVBkMOyMWI1qoIgh9iiW8dVFAQ5rNsiWKcmCHIILvnIyEqCIMfIpojWqgjysZTyVGt9Fs2ZsY0EVAT5ghzGDREvUxDkQ631q3jOjG8kcLwgRi6UQeAHAQRhESBwhwCCsB4QQBB2AAI2AnxBbNyoEiGAICJBM6aNAILYuFElQgBBRIJmTBsBBLFxo0qEAIKIBM2YNgIIYuNGlQgBBBEJmjFtBL4DIzcZBf0R8PEAAAAASUVORK5CYII=\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./function.vue?vue&type=style&index=0&id=45ffdc8b&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABHBJREFUWEe9mHtsk1UYxp93dPNGJ2PeEiWCThkXnUTRqAlgvGxhbq5uQWOCES8DWaKOAWpw0chFEWeIWFiz6ZCLtz8YDtHoQMBgogYzxRAdUwwoKFORVB2lo7zmWc7XdN3X9ZStnOT7o+057/fred7zXo4ghaGqZwMYY54LAAwHkG1MBAEcAdAJ4Hs+ItJla15sJqpqHoASAFcA6AZwHMAJABEAJ42NDABDAHgAnAEgE0AHgE0i8mOy9/QLoqqXACgDMBbAPwCOJTMY9/tZALwA9gBoFpFDidYnBFHVGwDcD4Db+1+KAPHTzwFAWdeIyJdutlxBVLUYAJ+/jRQD5OhZTqlyjFQfxRvsA6KqhQBKAfwVo/9ggNAG/SgXQIuIfBxrtBeIqo4DMDtNEM57HZiVIkLf6RlREFU9D8AC4xM8GekclIk+s0hEuPO9QB4BcOUgOKbtH6ADt4tIYxREVS8FMB/AH/FWVqxsHBdoWF1ha72PE4qcXLJwQVNJcdGvLjbOB/CSiOzvkUZVHwNwsVucmDO/dnLbt7vzH62c0cu5bMGWveIvv6eibOvc6qpvXNYwzhwQEb+o6pkAXgbwp5txgvzQ3jHyw/ffedP25bHzbppc9PjdZSU7EoBwKn1zLkGuAzDdxIw+7zoNIIwtawkyA0B+ovB9GkB4evYQpMYEmbCNNFu2f3ZhqOuY586phQc5v7ll8whvtjd825RJh/l53fr3Lh+dP/rIxGsLGJVhIU0W3YIgi00EZSZNKs2EiVOePhGJeD5oXl93vLs7o3zaA9VZWZnhr7/4dGnrtu0XVc95ZmZu7vDOHVtaVlmCMGMLQVaYSOrqi/HSVFbVFIZCoaw1r/s3hUKhjMqqmuJsr7frteUvbg0Gg56HZj3hy7ts1KEXFtV+bgnCkzssZZBUT46FNATJIcgSU+BYSZMGEEozhCBPAjgXgJWzpgGEznqUIA+bHONaX9JHdu1qG39X6dSdsRAF14z/3TkpzvcbWzaP+Gnfftax0fH2uxvuuHear7WfgMbj204QVmL3JQpoqwJNY+sbVvsikQhr0ejweDzhZ2vnrfOVFv/CL+sDTWP8gTcqVJVpPjoyPZ7w8889tTZBruE8BrS3CEKiZW4JL5EMPC3TH5xd3tGxL48wh3/rHEqIW2+ZtHN53eJtKcrHxDcvadKzgeFu3Xzj9V/V++tSTYxMegdF5FUHZCSpUtkVAjo7k5uTEzwFCJrgbiwVkQOxFdpMAOxfBlqx2yrDwmiviDRwQSwIOzeWiv8OYuWeCIql4lAAC0Wkp/yIL56vBjDL1CZOB2f7D23nOcVzQER2O4vc2oki016mq51gIbRRRD6JJU/UYN1uWs2jgygT5RhmIFrjt6+/lpM9Dit7thYDdWA6JgNiY2wvk3RHnAmqyq7MB2CCceJTacLplG0ANogIry1ch+21xCgjFfseJkebawkms71Gip+TebIVSMwO8VLmKgAFprzklQNTBAeTJq8ueBx5Gr4TEV7eWI3/Afru9GI1I5nSAAAAAElFTkSuQmCC\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login1.vue?vue&type=style&index=0&id=128f4cfc&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./box.vue?vue&type=style&index=0&id=99b28a6e&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/bg-right.9e7e41c2.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAldJREFUOE+NVDFoU1EUvff/DBIarJughAwFuwpCBVPIroKiASEm7/2gqIOIo9BO7SbuEWvy3o8BQUWLdapgoREVhHZwUHRwqNjFKQUdknfkhv/DN/20/vH9e8875557HlPKp5Q6zcwXARSJ6HBUss3MXQBPrbWvxts4eVCv14855wwRHSCi+0S0RkTfo5oCEZWI6BqAHd/3rzSbzS9x/whIKXWKiF4AuBOG4VIa0/hMa30dwAIRnbPWvpXzIZAwGQwGXefc+Xa73d0LJP5XrVaLnuc9932/KMyGQFrrd865h2lMSqVSJp/PHwzD8Nf4BRGzirV2lqPBLhpjjseFQRDMOOdO9Pv95Uwm02LmLQBb1tr5FLANAHOstW4R0QdjTCNiNwngCYBlZr4F4HYYhita68fGmEtprIhoRhh9ZeazxpjPUiRSCoXCKoBv4hgzFwF8EiettTdTgKYBvBRGv4nokDHmjxQppe5GNheYWQAmiUis3wSwYq29lwQrl8sT2Wz25y4grfWbCGiXeQA+yryIaNsYc0MKRkDj0vYCSiAbY0wQzXQkTVx532q1ZJNlFYSRyNmMGwFMyaxkZgAyzPw6BgqCQDb9JNdqtTOe5y3E9iulVpl5KhENwZO8TRNRQyRVKpWjnU5HJMrFG865+eFCKqXWPc97FLP6n82WGmHjnLs8XMiEzvVkdvYDi7PJzLOyOqPQxtnxPG9uP2YRk8VkNv95RrTW4sADZp5g5gYzr/V6vR/CLpfLHQFQAiDJ32Hmq/ESj9I/LiMy4ELaw+aceyaRGe/5C3y9Qn5D8dhbAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/close.11bc73ef.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAjtJREFUOE+NlD9oU1EUxn8nKSJSsW6CIhkKdhWECqaQXQVFBaFqUlGqg4ij0pjTppu4V/yTl6ogqGixThUstKKC0A4Oig4ZKnZxsqCDeUdO+l54po/WN9537u9+3z3nu0LKV7TRg4IdN8gDO6KSZYF5Q57UpfKyc5skF85adU9IMwA2A7eAWaAR1eSAAjBssJIle+6elD/H+9ugoo0dgPC5wdVJ0TtpSuO1kukFgypkjtTl+htfb4FcSZPmfIgdvS+j8+tB4n+nrZLPIM+yZPOurAUqmb4N4W6akoJp1242bZuUaz86D4iUDdZFByS62PFAdG9cOGRj/SG27w821QU1gSWDpbpoOQW2YMiIlExrwPtAdCJS12Pw2GBK4LLBlUnR6ZLpo0D0ZJoqoF+Kpl8EDgein7zIreRgxuArSEOwvMFH72Rd9FIKqM/ghSv6BWwPRH97UdH0RtTmnKwCegBv/aIh03Wp3EzCTph2b4Hva0Al09cRaE3zDD74fQHLgehFL2iDOq2tB0qQg0B0KLrTtrWaIO9qUvFJ9lFwRW5nMd5o0CurcWkYdAm8ikFDNjps2H45Y3ooA9W4/UXTGYHeRDSc53nrAybc0qDproeibtEPXgih3BrIoulcBnkQq/qfyfYaVxNip1oDmfA5l8zORrA4mwIDPjrt0MbZySAjGymLlIwns/nPM1Iy9Q7cFugWZELIzP6k+c3VbSW70wgLhnnyVwTOx0PcTn+njagBx9IethCeemQ69/wF7mENhc3pK9oAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/role1.6f93a8f0.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAdRJREFUWEftlrFLl0Ecxj8PKYVgDtZg9AdkQxCGudSYODUGQdDqYFsSBGXRoo5NDW0FzhEotGRBIGIo4ipONhQKUYmVfOUL94PzeH/vCfcbHN7vePd9n3ve5+557sQJKZ0QHjRE0p1oFGkUybnzWGfEzK4DY8CpCPAn8FbSto+Z2UXgLtAb9fwD5iUtFxMxsxHgI3C6AuwrcDMQXAIuVfT8AW5I8t62lVXEzJ4BT2owLgP9wOeankeSpkuJvAAe14BcAS4ACzU9U5L8h4oUaYgckc/MHgIzbTT9CwwGp6wkroo/eSDpZenWDADvgGsJkFvzlaSJYN/XwD2gO+n7AtyW9KOISFjkDDAM7EZgvyVtxuBm5j170dh/YEtSPFbJJ2vfQOQs4O7oiVC+SVpPiFwFzsdkgTVJv+rU8LkskZCYHyrC6gB4I+l+IDsH3KlYcBW4Jel70daY2STQLoz8nHia9gF1ydmRw9qJHHkq6XmpIg2RNND8wqu7J/zSOwd8qpF+UtJs6dYMhUVi67Yw/cYdBbqARcDtm5Zbd0TSRhGRYE3PEH/0+NuiVTvAXCsxzcxVGU8iYR94nyNxrBzJBVGn5rOB1qmFcjgNkVShRpFGkZxrDgHUVpcjEG8sxgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABY1JREFUWEe9mGtsk2UUx/9nlNKtb7d2XdfB2pXLuM0h4IgaIhpJjCiRW8IHMIAz3DIFBeSiLEBkIqJgNi4JdyJoNDED0UTUryRcokCAsSuUdmu3rrt2F7a17DFneUvKaLt3UnyS98PWt+f59ZzznPM/D2EQSwiRAGCi/KQCSAaQKJvwAWgCUA+glB8i6lRqnpS8KITIBPAOgLEA/AC6AQQAPATQK9uIAzAEgArAMABDAVQC+JWIqgbaJyqIEMICYB6ALABtAB4MZLDf5/EAdABKAJwlInek70cEEUK8BGApAHZvxyAB+r+uBcBh/Y6IroSzFRZECDEbAD/NciiekqPv6xwqgxyq3/sbfAJECPEmgDkAGkPiHwsQtsF5ZARwnoj+CDX6GIgQ4jkAec8IIrhvEOYQEXHu9K1HIEKIFABb5Zzgk/EsF4eJc6aAiNjzj4GsADAuBomJQCBA3sZGtTY+/mFiYiIf83CLE7iciI49AhFC2ABsAuAdrBtaW30qh6NaW1JWnmy3Ow3V1dXGhoYmfVt7u1ank9qPHy48FwXGBGAPETn6QiOEWAsgXWmduFNWoTt56swUl9tjbPX5JL/fPzQhIf5BitHYYrWkN460WZoN+qSuwgNH3jpxpOh7my0jUoXlOuMkooMkhNAA+AZAg1JvbMn/fLr9viNt5qsz7mTYLL7Jk7KbUlKSu9s6OlT37zmlsvIqQ2l5eeqly1cnDQDCW3JufsIg0wAskWuGIpaNW7bN6Or2q2a+/kqV0+lKunfXbqpvaND7fO2SP+BXSVptp16va3M4atIVgHBtOc0guQAmKA0LkzLIteu3x0uStiNRJ3VYrelem9XSPHrMyJbsrInNJpOxx+Vyx7+/cu27CkD49JQwyAa5yPQococMEggE4nbuyL8oSQnc+J5YDoczQSGImtOCQb6QK2hYg+E2YY9Q3BCxZ9f2i5HgBwHCHZsYZL9cSZU6pC80MQThk6uPKUhvby88Xi9rEXS2d6pW5q1brCBHGMTAILtkgfNUobl246b+wKFj02tcbnMckTAY9K319d4UBSAcmiEMshlAEoCIyep212mKf/ltdE21yzB8xPDWispKs1YrdQdzpKKqSvpo/dYFE8aPdSxaOP+WJl7z8OipMy/cuV2aqQCEk7WFQZbLPSZs9bt69Z/kgt37Zg0bpu6xWa2eWo8nua7Ok5qTM7U0CFLw5d4cu92RevxI0SOdceny38b87QULTh4/cCbDYomm7Pj4ljMIK7HF4QpaV1dX3LLlH8wbM2p07batG65oNJpe/t+qvA1vm9NSW/qDHD6074JKpRL8zo6de162O6rTTp84eFatVosoJ4EL2g8MwkRfh2t4NW63Zllu3pL93+7+MStrAmvWvvXe8g9njxubWfvZ5o+v8d9379q16zblz9VJUkdamqnZ6XSndvd0q/M/XX/hxWk5rOyjLW58G6M2Pf5luSvWzE0zm5tyly660dn5QPXTz+eyyyoqbYX7dhWPyxzTHtyhhvOo+Hym212blGGzNC9cMKfKZDINVCS56bmIqCgIMpKpwnmlpKQscffewtc8Hi83J1itI+rWrF55acqU7BbFhSfyi+yNr4jIGarQVgHg+eUJxR6sD6zxzGYzzzSxWCyMKojoKBsLBeHJjaUiu/v/kIoSgJ1E1Cc/+ovn5wGslrVJcIKLxa8PtREUz4eJ6Gbwg3DjxCx5vHxW4wTn2jki+jOULtKA9YY8anJCxipMrNz1MsRf/d0cbeTkGYeVPYPEYuTk4fxY6CwzoEeCLwgheCqbD2CqnMT/ZQjnpLwOoJiIIhY3pdcSo+RQ8dzDRUrJtQQ3swo5FPaBMl4RSIiH+FJmEoDJsrzkKwduEby4aXIb4OPIp+EWEfHljaL1L/SRanFFqwwiAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/white.733e7f3a.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chat.vue?vue&type=style&index=0&id=d5124b3a&scoped=true&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAyBJREFUWEftVk1sTFEUPufc+15bTVlQCRG6GJ1po6+RSmdaIbEhFlhKhIQdwkqIlSB+IhaibCxYIdZICIn4CTMy8TelndZELBoSpKS005n37jnyJplnCKbJs2hi7vK9c7/73e8753sPYZosnCY8oEbkVydqitQUqTadU+qRxU4iroDWIoIqA7LIGBTo0tDQw3f+s4gTX2AJbgKipnKNgLjseTeGX6XToYlEnHjCRn0XAPKVYIhis0h2VMZXNk00KLtRPUaERSJYCOpQCAV0QXhFLpN6+jcyVRWJdcQPEdGe/KTbZUNd6fb+QstsRaI+j7kdWWYrTQ88ge1UpMuBapZZoBWlgPnYYH/qRCgibU7iCCLtLI6bllzu8VgZLNrRu00RXGAWBwjmI+BNEV6fzaSulWtaW7vm6Ia6IRbuy2ZSh2pE/qkiUad7ryZ90Hi8n5C+BROBshwRt7jstiFjk9L6CbD0IWB/Rc0sRDrOxuzLvkydCWdNW9c8sOquIsKynz6RAi6AnBt4kdztH9DW2XseAbYAghUcKAAC8sjkixuGh598CkXE39zS0lJvNTR3K60/l8HMpDf++nX6TSV4a/uyblJWMOZGxMt/wbcjI8mfRv93hKqObymsIvGZZINDlpoRgLC8z/YnAxtKdZ09SzVgc2CNx+OjMvbi48BAYOmfVKlKxE9MG9RtQIhBhTeCYID54mAmubVkjdN7BRE2VtaUjAF47lJ+de7Zs4+hrIl2JPYpoqPGyHYk+VDh/yoi2uVOuDHLkllg2U+Z5Syg3AoUAZyrEfuM4f3hm3WKgUaAN9nIuuzL5PUykUhkabPd2JBlltPZ/uThUIpMNVn/HyKxzp4DCLjH9UwPuV7QI1ivNytUp1zD7Ug8R6O+z8zbuOAG1rCyFlo23QGRo4OZ5MlQ1sQ64l1E6j6AH2BgKsBmiED666isaWwkrerlHiJERWAyqPH/XwRV0S0mcgPpV6GI+JujS+IOIG5CwokfOQKjXCheKSem/11RdfYOoR8zjiwF15jr1Uj4mFVz5G+3+JfvakR+VbOmSE2RahM2bXrkO3RfvTK+RwXuAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABBlJREFUWEetmG9olXUUxz9ns+2OtVpzpZYL/4AtxLVQbCvo3140KZGhEitQ7EVTQ+xlsWyE7kXQi0oUIUhHkAnCzF406YXOXujSF0NfZEI1bdFNyG1qtCV04tw9z/W5z33+3usDl4d777nnfO/3nN/3nPMIJVyquhB4CLgXeMBxMQHcAq6JyHhat5LkB6pqdkuA1UCLE/w2oIDd7boHMDu7G6gLwA/ALyJidpFXLBBVXQB0ASuAf5yXGzzMuYGpcV4XgUER+SMKSSgQVa0D1gFPO8H/Bv6L+2e+7yuAWqAaOAMcF5GbQT4Cgaiq/bAHeAz4qwQA/lgGaC7wI/CZiMz4DYqAqGoj8LZTiDfuAgg3poG5zynoj0Rk0gsmCMg2h4kCw5QpiTKvBy6JyIFQIKq6FuhMm44L49QfPscTqxdzpauVsRjQbpqGROQb1zbPiKqaLvSlBZGdIrN+HztnVDPMgbeekyNb2riUAIzpz24RuWa2XiDbgaVAYFWHOT54muZ9p/RV5ghUKMselp++3MRXCVJpp/JnEdmfB6KqjwC7TBXTFueOL7TzzK/yFJWKMdK+lJG9G2QoARBLkWXBWPk9x4iqrgeeAeyUJL4sLa/tp+fGba13GelYLsMfruVUQid2ir4XkUEXiLGR8ch1rJ/sBJn3jvLS6Li2Uim4jPSukYGultiCdf1XmViKyG5RVROafiAbFn3Hp3SOTzDPqKdytrJ+m2RRLngexGyNPFgv2Uy1Ttvnc2uZ3NPJifm1TEf8s/nAOwZkObDVOS2B9qu20YdlNAfEF7zgPdyxmwXd1MDYYLcMRAAxIg4YkHagG7geZrxqK30uGx0rGW5bxlj/12wOYiRXKz5w53vkgwggDcBhA/IK8ELUsfUy0vGkDrc1y1j/Md0cFNTPSF0NUyffkI8jgNgxPpkMSBmMNDVwZbBbDiUBEp8aT42kZaR9ESN7X47UlXxq4ou1DEbWreDErmflbJJitba/J+r4llMjvS/KQNfjkbpix7c3kaCVc2o+3yCftMwjbKS4I2hJJL5URhrr+HNoS+Hc4UtRkcRHNj0vIzk9CRO3Cmt8szpSXSUz/Ws49PySUMUubnoOK6FjwMFvaT5+lra8slZ4RMsNnrtDTRXTTY1kX18poy0LQlNiIYvHAAeIteT3HYVNO63HNkmfgXUsGxmLByMHTEmjYkoU0aOi60xVdwKLIZLWlLELzI2Jy+5k5n4TNMXbXPIucL8zKN2tNLnrxJTplogUbItRC9abQHPaYTqEKqsJk/LLuZafZMHyOlLVjU5ntp23nJXT9uDvbCQMy2kpS7hNW//GFIkppqXYAJS3hPsDqeqjgHXq1gSPJWxfHgVGRORqksqOZSTIiedBjYmSnQK7rJ/YTlTSg5r/ARLBq51pOvXyAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAApJJREFUWEftVjFoE2EUfu//79LWUB1sB6VDhpgmxV4pKb20oKPi5CgUBFcH3SyCUK24qKOTg5tCZxEUXNSiiYS2NrFJmgZxKDpUotQmMbnce3LFXI+YmMJlKHI33r3/ex/f9973H8IBefCA8ACPSLMTniKeIp22c18zckKL6RLEOUSQDUBi3oaqeLK+/vaL9S6o6UMq4wwI0d+oYWCD6vXn+bVk0jWRoKbHfKi8QoSeZjBiWi5y6XR/uU/6/PI9Iob/ashcrjKdKqQSy/8i01GR8Kg+L6Uy1wqEmcEwaQSJjyqqXERsDUemeT2bTtx1RSSixe4IIW+0I0LEGgg4LgBftCNiknkrl0rMe0QaCnRFkWFt8poi1HttrKkZZESQsF8q6pJwbJWz3qybV3MfEw/cWROJHgO15ykiTDhngJkNAH6YWY1fsRpExqYfIcBFRFTt9WUGBn5nVmrn8/mlb66IWIcDgUCv2jc4KRXluy33r3ppYyP5yQkeGpmYFFKt2DXM9coP/Ly5GbfftSPTcX13wyqoHxY+0IQqD9lAxF9z6XjaCRwcmxpXAAdtRepUKvL26lYms9ONQBvygXwJCGFw/L4ggklEj7Op+KVda7TpBUS44KwByxiAD4aonCmsrGy5smZ4NDarSNkyjKw5McpGWFX5CKi+5bY50pVh7UagmXQzl47fdqVIV5L1vyISHpuakyha3hP2pSdoQEHlTdtLj2g2m4rfd2VNeFSPCiGtJnur+weRiBd/Fvms3y8U2cuvEXG8uRkz7NSMWqyQSa65ImIdHj6pa4A4gwLLezkCRarWFhqJGQpFB2SP7zKLvR1H4qphms86kbAw9xVoncKoG989Is0qeop4inTarAMzI78BSn1FMpiRMmYAAAAASUVORK5CYII=\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./handShake.vue?vue&type=style&index=0&id=6c9fdc60&scoped=true&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAcCAYAAADC8vmmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFN0ExMzA3N0YxRDExRUJCQ0JBQTE0RTM0NTc1N0E3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFN0ExMzA4N0YxRDExRUJCQ0JBQTE0RTM0NTc1N0E3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkU3QTEzMDU3RjFEMTFFQkJDQkFBMTRFMzQ1NzU3QTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkU3QTEzMDY3RjFEMTFFQkJDQkFBMTRFMzQ1NzU3QTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6GOllOAAAC0UlEQVR42syYT0hUURTGr6M5hUGLQhECRZQCWwRShK4VCRdBe4V2gYlUiNYiwZRa1KZVC0EREbPsj2kihDuTNIKgQokWiZmioGLi5J/Xd+o8mp4yM/e9c2Y88GMGZjj3cc499/veNY7jDIBCYJS4DLIV89Ozh7Xyh4wxVeAjuAMOG/k4DW6BCyCskP8IKAbHQUg6eZpDZfoXc6ARdAFHaI2HUd9XwBPwVjB/SdT3TTALlqQK5K14LugEY+CMUrcvgQaQp5D/AMgHJ0GWRoHcOAfGQTsXTToKQBOo5qJJRxYXKY+LJl4g9zfq9idwDWRKjzcoA82gHGQoFOoYn085vF7gMyhWTIF6MBzgDIoV86CXBcNWBNIT+F8EfAOrUjvIGyfAKzAAChW6TV2uA1dAtkJ+UtAifvawTYEilgu5tuCuki04xbbg4n6wBfSHDR+LZLISTYMav/MdI+g8qgAtoFQhfxrvWGrGUakR2ytI4TrYFpxV6nYNN6MgFbZAynmSLXijbAsauFhJtQWS1ty1BZ89tiAiOBalPHYVybIFJPPLSl1xbUElOKSQfwE8YolPV8j/xxaEjF7sGP3QXMMxStuUduRt8AD8AueF85PqvgSjYIuNomRs80s77VAnQ7ibpGg3wQ+PQZPqKKnlc74V0IhF8J1vBYzkDhpnBzyp9OBfQR9/asRPMMOfuwxZkJhj+e0WvN8xnvujp9wAjfxx74+oQAd9JKaz5T5oBWsKD05ny2swKGgTvOM6zw3eiWfpbc+IF+xzviht9w88TgtK+Vd4nBIqvM2IkQG86uO6w2Zc+3xcd9io34ztdUciBfLKtnSsg6Eo2baNeCbxP9n289YcT7Zv8LxqnAMk289suxpEtqUKRKpRC94pynaP+XvDl1TZDlqgZMj2YzCRKtn2WyA6W+6BNkXZHuEDPqWy7adAZN2vK8r2e9C/X2TbNn4LMAAvkpLycne/SwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"img/role4.30cab345.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABF1JREFUWEfNmGtsk2UUx39nnTrRdp0XgmVsbjgdVzUx8YMxCyiZcV4TTBSiiA41MmdUphGmMbLN4Eg0g5noFhAJI4QFb/GGTjITP/hJw8Uxal022sUoStd6wWl5zKlvZ9e9bd/hKj7J+6nnOf3lOec5538eYRLLGDMNmGN904HzAI/lIgL8BHwP9OknIr86dS9ODI0xlwA3AxXAH8DvwJ9ADDhp+cgDXEA+cBZwBuAH3hWRb7L9T0YQY0wxcBswF4gCv2VzmPL72YAbOAS8KSLD6fanBTHGXA3cA+jx/jJJgFTzcwAN6xsi8oWdL1sQY0wNoN9xKxT/kiO+XUNVZIXqg1SHE0CMMdXALcCPSfGfChD1oXl0PvCOiHyU7HQciDFmHvBwjiAS/5uAeUVENHfiawzEGHMBsM7KCb0ZuVwaJs2ZJhHRkx8Hsgq41C4xRyKR/PDx8Jm6wev1jhYWevTqpl3j7Iu8o4UeW3tN4H4R6RwDMcaUAk8CP6R6HxmJ5K+oXb00GonqNaSkpDi0tWPz+5lAVtxfVxMMBn1q4/a4o9s627vTwF8IvCgig/HQGGPqgZl2dWJwcGjafQ/UL7/rzqW9s8vLwhUVsyPFvhknMoEEh78r8PsDnkBgwLtzV3fVltfadpSWlthVWa0zQyLSLsaYAmAjcMzOeQKkcW3D24uqrtHy7Xjt6/18elNL660ZQNSX5uYaBbkKuNuqGRP+ROP96GNrq1vWN/b4fDNObO/aXd7z6Wfab9Isw5LFVX3Ll93xrZ7Ms881LX6ptWVvhrzS2rJdQVYClU7L9721dTWxk7G8hfPnHLUjOXCwb5bL5Yply6OkvXp7DinIE1aRGXVy5goyr/KyUMOaR76ys9+wcdMVfYf7Z77eufk9J/4AvY3HFKTZqqDaSbOuHIBoxxYF2WRV0qwQapADEL253v8LSJGCtFgC53SGxqUgTwGFwOlM1rCC1Fo9xpG+XLmq7sZYLOZaMH+u7fXdf/DrWfmTv779CqJKbFmmglb/+NPVzc8/06OlfUfX7vJP9vVWGvNPw0zO8jzJM9ctuvbw3wVtuGBdY/P1bS+/8GGaxqdbtaB1KYgWlFa7hqdW/0GJ18bXcApNryxS7PNlaXrDBX7/gCcQCHh37tqTremFRKQtAXKxUjmTASWhrR1tmWVA7eqbgkdDF8VlgNsd3balvTtNaPQ0NojIULJCexDQ+WWCYncodMZSxaG9CqMjItKhG5NBdHJTqfjzFCr3dNVapeK5wHoRicuPVPG8EHjI0iaJCc5R6Z+EUUI8vyoi+xP77MaJG6zxMlfjhAqht0RkbzJ8ugFriTVqhqcwTBoOrwXxceoJZho5dcZRZa+jxVSMnDqcdybPMllPJGFgjNGp7HbgSiuJT2UI16T8EtgjIvpsYbucPkuUWaHSuUebo5NnCVVeR6xQDGRLZkcgSSekjzILgMsteamzjrYIXdo09elCr6PehgMioo83jtZfkh4McbuI4vAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABWBJREFUWEe1mH1M1HUcx9+fw+g8eTg8T+EOTplIT6MCSZRcbZhpmE6akg+hUWiYCUNDl7n+0bRCIyPD0rVlm7XZktkV+bjmpi5notB5grhDjg4FTx6U4zyJb/vcfufO6+74HdB3+/0B9/19vq/f5/nzJYSwhBAqAI9Jz1gAowFESSK6AdwC0AbAzA8ROeSKJzkbhRBJAOYCmATgHoC7APoA/AOgX5KhABAGYASAhwE8BOAKgJ+JqHGgc4KCCCHiAcwH8DiA2wB6BxLo8/tIAJEATAAOEpEt0PsBQYQQGQCWAWD19oQI4Lt9FAA26z4i+sOfLL8gQog5APjpkEwxRA7362yqGMlU1b4C/wMihJgFYB4Au5f9hwOEZbAfaQAcIqLD3kIfABFCPAHgbTkQLpeLXC6XIiIigh02lOWB+ZKI2Hfc6z6IEGIMgPcln+DICLja2+3hRevey7bbb8XkLph/qiD/tYZQSCQzsc9sISLW/AMgKwAky3FM46+H9eU7d2ezgHi9rvXbb3YZQwTh7ezA9US09z6IEGI8gPUA2uUIdDidik0fbJlua72hKcjPO/1C1nM35LznZ48WwCdEdM1tGiFEEQC93DxxsOqXhEuXL2snp6XZLtbWxa4ufKNuEL7CR3OeaSaiXSSEUALYDuBmoK9qt9vDi0s2Zld+UWaMjorqy8tfNddmux4LCLd1i99ZUT1vbnaL8bej+l6HY8Qjk5I6Teb60RZLc4zV2qLp6OyKrNj5kVGr0bj8nMG++S6DpAPIk3KGX5aGxsaIVatLF1fuKvt+gsHQk7u04NXb3bc5Y7rXksULfn/z9aVXyndWphw7cfJpp9PJH/fA4neTk5Lu+DmAc8t3DJIP4NFgZvEG0cXG9uYsXL68v7+f6wobFjOynv9z44aS8/yXq6+PXpqzsCAEEI4eE4Osk5KMP7W55XmD8FdVHzket31HxctsFl3cuBt7dn9mVCqVnuKHGbNyOALlaiSc3YJBPpQyaMDE5Aty6XJD5Jri9YsYJDk5yVJZUXbM+9QQQVizxCAVUiYNGIG+IF1d3SNeyV2WzyAZUyb/tXXzpjNDAOHIVQ8KxOl0Khblrcxlh509K+ts6do1FwsKS2aPN8TfnJb5jHXbtnKuVXJNwyAxDLJVanBkm4ZPuFBbF910zRr54swsm0qp7L/jcISdOH4y7uSp04k1NXXs/HJB2DRhDLIBQDQ7fCDb+JrGs+/M2XOaaVPS3bViCKZhZ+1kEA41rjEB+8tAIPMXLltUdWDfD0ME4fCtZxDuxJbITWjeSWmYQDih7WcQJioLVvA8GikuWlF99+69sKYmq9rWel1tMpknPps5tS5janrL9MyMtgiVyu1nIYYvF75SWUXvqsUyamXhWtYaVCqVQ6vVdIwdq+1UR6t7G69eHdfcbNUpFIp+gyGhNS01pfnAj4em+5rr692f7p+YmOjb+3LR+5uIPveATGCqYFoxmc1R8Xq9g4ue7yGeiDl3/oL+krne0ONwjNSOGdOh08XaDQnxHampKW3+nBoAa+NjImr27tDeAsDzy1A79oCJ0ecHbowaiGgP/98bhCc3bhW5QgZtFeWeFGQfd/QRADYTkbv98G2enwRQKPUm94vYMBzsLcLTPH9FRLWeH/yNE7Ol8fL/Gie4EaoioiPedIEGrJnSqNk5jGZic6gliKO+Wg42cvKMw30F+8tQHZgdk4fzvd6zzIAa8WwQQvBUlgMgVXLiwQzh7JQ1AH4iIr628LvkXkskSqbimsTFUc61BBczHrzYHywDObwsEC8N8aVMCoCnpPaSG2guEby4aPLVBYcjR0MdEfHljaz1L1kXZnG11+v1AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/half_alpha.1588e218.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAkBJREFUOE+dVDFoFFEQffNXgxxJIVgEbFIEDNhopeAFYq3BiF5xeNmdDYrptLEQYiFJYWNlE1Hv5t+ZTlEwdhYHiaiVpYoWVyheKVxA4bJ/5B97x2ZdFJxydub9N/PeLKEgoig6Q0QXVbUMYDIt6RLRtqo+sda+zLdRNrG0tHTEOScADgC4D6ANoJPWTAGYA3BVVXeCILhcr9c/DftHQFEUnQLwXFVvNpvNh0VMhzlmXlbVVQAL1trXPj8A8kySJNl2zp1vtVrbfwMZfltcXCwbY54FQVD2zAZAzPzGOfcozySO43Oqeh1At9/v39jY2PiafSRldslaO0vpYtdE5Hi2qFarTQdB8IGI9qX5toiczrNl5vequkLM3ADwTkTWs0VhGNaMMa1hTlV3rbX7C4CWAZzwjD4T0byIfMzRZgD+kVGIyB6V07XMqOoLz+gngIMi8ut/gCqVynipVPpeCMTMU865s8aYexnwH0mSzOdVHQEVjVatVg+NjY1d8+4GMJOC3VHVxFq7kmM+Gq1BRG8bjYZ38iiYeUFVj6YJP/YkEd0VkW62Lo5j7/STFIahH2E1L3+6yMmBtESbnU7nVbvd3i2S3zl3a6BCFEVbxpjHWVbMfAyAN+Q0EX3xdSJyO8/GOVcbGDIj4Vb2dv51JsPbJKJZb52RL4a3Y4xZye8rD+r34pxby97mHoMxs1fgARGNE9E6EbV7vd43DzQxMXFYVedU1V/+DhFdyZr4D6f6plSAC0U/Nufc02azuZln+RsRUTF+/6G1vgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAUxJREFUOE+tlLEuhEEUhb+TKBQKhY5iH0CzhUKi8AIqxUYQNnRaso1EJFRaJUFCkOi8ABWdggfYgk6hUGyxyZW7ZuRf2V07s247M9/ce8/JEf9cijwzGwYWgYnEP16BC0kNf9cCBtgD4NDHROAM8AlMOzQC14BNYEqSH/ZdZjYCPAN7ko4jcAcoSap2I5nZkE8QPzSzeWBbUtnMToC6pN0U4BJQkTQXYOfAsqSbXOAqsAIcAj+woEFWhw48AHxnrc4KDskG+sN34CUou+A7zR25BMwWRGsCV5KaPYFBzQrgqsa6l1Tv4YDuIwdfXYZdTQJjQFXSaRawsGj3mavpRt8aCFj0GbABnGUDO5j2FriW5N12rL9EeQL2o8/CThuuZgpwHagB5QHCwZs4+h1fo8Bd31HzfdG9+dEWX4VM9AAYTwS+uRvaAjYR0PP6Fy+57hW1sYImAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/normalmap.8135b487.jpg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=style&index=0&id=3bded8f4&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/small.220731fd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAgJJREFUOE+9lEGIjWEYhZ9TFgplapYUhSjCjiKmFGKjFKIkCVFDEZORhCQKNQsLJTUlUZpsLCwUoowoI4qibMiCxVgfneu7t39+zDU1+Zb3/77nPe95z3vFOB+NM49RgbanAgeAhaXwc6BP0ve/CfkNaHsWsAS4DzwB3gI3gQnAVmAGsBxYBTyQ9LEKHwG0HTXngTNF1Q9J26oPbPcDk4DXwBHgsKRLzTstoO1FwAugJ20B34AFkqKwdWzPB54BHcCeImCxpKFcqgKPpQ1JXbY7ga/AFEnDNWB8TbGOeGn7FjAo6VwdeAhYF2A+2P4EHJR0uwbcDJyVNLPcuwM8lnShDsww3gC9qWY77ZwANkh6Wh5nWAHEt37bO4H4F2saw6m2vAy4AUwDlgK58BBIoeYkM+GXwFpgchHwuRQdbAFtrwHulnicBuYC14D3wHWgYTiQgWwvRXaU35OM3UCXpEeyPRF4l4eSem2vB2J0/LvypwAXOy4WZfdsx/9uYHaAMTkfp5c2Au+RdHW0tax4PK9M+1Xjne2TwBxJW2zvBzZJyia0PbaTx3TWZzsLMRxgPFsB7CohHWinrlmpqFwNHAdOZWABbgT2AQlmquyNuW3l/crqymJXtitreLm+yx+Ao8CXfwECWdfuZshH5LAEN7ITjbGcIUlpuXH+7x/sWGQ27/4EuS7NqILpMukAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAcCAYAAAAz+aIrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNTZFOTVEN0YxRDExRUI5RUU0RUM0N0QwRDJCMEZEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNTZFOTVFN0YxRDExRUI5RUU0RUM0N0QwRDJCMEZEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI1NkU5NUI3RjFEMTFFQjlFRTRFQzQ3RDBEMkIwRkQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI1NkU5NUM3RjFEMTFFQjlFRTRFQzQ3RDBEMkIwRkQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7IFqE6AAACvElEQVR42tSZT0hUURTG3xv/JCkaGGpJKINEkbmqMHcSRP8kCS0hIaGFqzbirlooJhT4J4NwVeQ610atCwuEIIMiEYMgFFskKGTq9J08wjDYzLt3zqd04bfSOXPnu+ec7537wkQiEZDWHnAIzJDil4ErYJQQuwYM5BICx8ABUA5CkujnwFlgvf8icBt0gXzr4KWgEuQRRBGhT4IWUEKIfR080IP9u6zEKdQSKiSVUBVoA3FC7BPgEahP/UO24kiGHAT7SaIUg2bQQChRKft+0KGtILASJ9SGKCmYQxBF9tUILoC9xrHzwS1wB+zLtAmf05QSKojwv+se8Y+Bq6CCILo08kFwNOoJuVpzCamEJBNbQR3JmkWUJofPJKKIE9O+Uka05ovgDNuaHT+7lGkzbGs+rQ2XYc3t4H6yNfs0vt2w5riWEMOa5VloZDtrzlYctjVLhlwmWbM08HvprNlXnJ2y5ibtMVZr3cWanWsTg6eLNftsfg1cU/EZDndEsV4/Y0mZw1rM2IFVCf0r8BL4CL6BDcJ3fAA9YBz8Mo79HRwH3XLSLNXlUmceTINFgkBSWi/BXfBGv89iSX9clbsXfep9YnnAqSn5G3wFn8Ayo47BM70amCVk0U11wklmvS6rQHMqmPWaVYHGCOXwVgXqUMFozeyHltq8YSkESaX8WkvtlZaeZWzJ0MN6CKu+Vs4cPMXK3zvYslh+reNv6Iw4eA7rDBdZYBcbFKeRy/IvBNeRtRBs3siNaKZaLtn3JXAefI6aOD7PCMnWn+m+xudpW2L3gudgxVikF3olEsn6wyxfzUSZxabIs1inZ2wZlfrSzWKh0XurdFP8lEH8au1HcUNxttYp8HC7Kd7q0Ztt/XPqOk8J1v9OM/NGqvVbzyVs659U658gWP9YqvWH//nrYHnB95gQW6x/6I8AAwC+05aA5+TwTwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABEhJREFUWEfFmH9MlWUUxz+nLmaNgOinbhUz14opKlDQljXb1FoKxTJaUfqHluXu2iR0DTE0Zv9Ui5xGTpYW2NpyJDlpNTcqs2kKi9k0c20Wmf3AUVyTijrtsPdlF7jvj8vF9fzz3t33+fF5zjnP9z3nEcbQVPVS4GogG8h0pvgNOAP8JCJ9yU4rYQeo6mSgAMgD7Pe/wD/O06a5ALjQeZ4CuoDDImK/A1sgiKpeCSwECoE/gD+BvwNmTgMuAi4BDgGtIvKr3xhPEFW1d2XAXcA5IBa4rcQd0oGJwF7gPRHRRN0Sgqiq7WgZkOv43dyQSjO3WTwdARpFZJRFR4GoagR4GrgW6E1l9RFjba0s4CTwqogMxL9PBLIEmDnOEPFrXgZ0isg2TxBVnQuUAr6BNdJKhw53Zu9s2X1zfn5e96KyUttxUFxeDrSIiMXNYBuyiHM6nks2Jk6dPj2x5P6KaH9/v50Qnli25N3oU0u/CoBxY2adiPwyEmQpcFOyp+O119/I3dTQuMhdOG96bteON7e0hIgtO03HRGTrEIiqXg+sBn4OMcGwLstXVM7ft/9AsftnYf6Mjm2Nm94POc9VwAsi8v2ga1TV4mJ2stbo6emZcG/pwytiZ89muAvft/CeD+vWV38eEsSs8qmI7HJBagHTjiDFHJrfIJZHq0qPHj1uWjPUqiqjzYsryk+EBBlcU0RqRVUtgp/3c8vKVTV3Hvv6mxx38lhfLP33vljGwMDAhJELTp50TXckLTKoEdnZWb211VV7p069wU+V7eO5xkBuBKJAj9cups263U7TmFpOznXf7m7Z8ZbPYDPERgOxQHvIT8DiQebNndNeXFRwcn3di4vDkh3p3LfOp6+p7dsGYiJ2N+CZQ6QCkpGR3rv/4w/qfUAs0PcYyDxg/vkCmTIl50TrzqbmAJA2A7kNKD9frikuKji4taG+LcA17xiIHb8nwwZrsjHy4AMlbWurVx0MCNbNBmLBssHv+KYSI6sro82P+uuKZYDVrqDVOFlUQkFLBaRpe0P9zLxpXnmNCdo5EalzQUqAO7wkfqwgmZkZZz5r37PRxy0m8Z+ISKsLYtnYs17umZ4/u0ZV7dMduqVFIn/VrHmmuax0wXc+g+yjt0FEuuPzkccBU9lRcvzSK5tndH7ZNSTxQTRZmVmxxyrKO28tnGV1jlczaxwXkS3WIR7ENH+tc3pSTZaDWM26Ju21oxIjG6mqJmxWw9h3J2HaH7RCiPe2eYPYJSIfuf3/r+S5Q0S2x0N7lRMrnbLS6tnxsoxbTvwAvBxYTjgustrmEeCWZJNpD9e4yfIXQJOIWM08rPnWvqo6xykvLNFJpeS0jVm52e4VQ2GKcLt2MMGzvMVq4GSK8IuBA05gmps9WyCIO9K5ligC8oErALNSomsJ270VaB0GMW7XEom2oKqTnIsau7AZLKycKwtLruyi5scQx3hYl/8A9/uVhU1XB+kAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAABARJREFUWEfNmH9oVWUYxz9Pv3ZLymU5r8PZrXT5T3mNBGNE+8PI6I+ywqCQwqmzPzIrMKVsZkRCkGUGaiFqJFMC91fNP4RGof6ReUEK3cC0adxNZ8vMlv1447vOuZxdd84958iFDoxxOe/7vJ/zPM/7fZ73NRI8zrkMcCcwHbgZuA6o80z0AxeAAaAAHDazobjmLc5A59xk4BEPQsb19xfwD/C3Z+NK4ApA/68FBH0Y6DCz3krrRII452qBJ4C7gXMeQCWbwfeCuQH4FvjMzAbDJoeCOOfuAhYAFz2XJwEoH6sQ1gAbzKxnNEOjgjjnmoF5wGnAXQ5BYK7WGg/sNLOucpuXgAQglHzVeJTcu8zsy6DxESBeOJYA1YLw1xbMumCYSiBeYr4BKKEShWP/MWrX7WX67GmcWHwfx2O4UeuOBVb7CRwEWQg0Jk3MHwfI3NHGC5NupO/kz2Rff5iOlQ9xJAbMGOComX2sscMgnk6sSBOSt79g2oYumk+tZeO8zTR395MtvEZ7DBANUYjazOy0D/I8MAn4PaaB0rA565lzfojM18vpEMi5ITKdS+mMaUc6c8rMPjBPttcDP8WcXBqmsOTforWlia53HqcwdRXPzmjg+K7FjNgRFexONLNWgcwE5gNnk4AI4qktPPjDABMVFs0d9xLL1s6lI2bC+suNA7YLREk6NSoscv+xM0wIgvb0k5synhN7l9E++SaGdh8i+9gmWuvHUhxTM1yLqLuewR0L2KP3ER8p1e0WiJJU9UBSPupjS2hb2MSemTmK2/eT16CXH+DA3BkU/QnyUOf3ZP3fA+fJ7DxI/sJFarrXsC0C5BrVMYGs8aqmqmkoyKan2SaXKyE1KE4ebP6KXOunPOM2In0Ke65SFReI4tsXJWLySFqQFbt59Oy7vBcBop07oaog8t6hXnI9b7I1DkjVQqMkF0AFXSmFJlaypgmNdKW5kSMfzedAhEfUp/yi0CwCpkRt37Q5ElNXStu3oqClAdF2vuVVXtm3nPfvvW24ooc9JUGT3kdKfBqQRZ8w6/PvyPuqGwHyn8RrgHNuKVAf1hwLpOl2CvW1DBZ6yWlOviG87+gukj3ax607WtgaFL1RYNTtnxwueh5IA7AyrA1Qqd+yj1kRX1V6JXlvrKP44mwKFUKiOSobq8zszGU3RnHgQsZc2hh5XtEZZrW2UtJWMQVMeKvoweg4+VyaTi0hTHjz7Btyzt0PPFlFGJ1tdJwYcbb5/x6wAp5RmFqAP4HfErq+fLgS82rgw0RHzgBM8BD+a4rmWmKp88vB1Ifw4Cc55xRX5Y289IcHpOuI8msJ/2pCQqVipmuJdulEJY/Guh8pg7pHwhpxUaNFC2b2TaXFg+//BSczrGjy7jg/AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/role5.d439445e.jpg\";","module.exports = __webpack_public_path__ + \"img/addicon1.4ce6f5f2.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/举手.31b54450.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAACUxJREFUWEedmAlQU/kdx//vn5cbQghHuJSAhEsOr63T2o7jKuqu9zEoyOUiC7WWttu63Rn3KGvXXXW3M6vtto4ukDAm6hZRaXd1Hddqu9Pt6BQQCRLAA0WBQDhyv7y81/m/IySISjcD809eMu//yfd3/L+/YOD/eBw7dkwmDgnPwDE6w+v1RdMYUNE0UKBbYDSYwDBgFQoEQySGdXrso52VlZXOmd4em8kHTzQ0pEAfvs5HkVqb3e61jds9Ho+bdHkIH0mSFLoHDnEolYoEYrEEDw0LEYeGhAgFEHZTAqp5V3Fxz4v2eS7IkePHE2Qi2UYv4c0cfDJks1qtLpIkAbMzRbFrwAMCyLyCEACI4yAyUiWNVUeH4kK8A/g8TeXl5Y+fBfRMkD8eq10swoUlQ5Yh58CAxcEAUBRAuzMI/DoVBnI4aIUQ4DgOYmLU8pioKJmbJPR7Kl/7z3Qw04KcqG9Y4yPpNXd7746O2+xeBOCHYJTgQRhp/PdlEJg/buVhIAShYSHC5KTkcFwIm8tLi76aCvMUSK3+5CqPm1jfZe4dcTvdFAIgKZJVgINgoNjoBIAEhAWhcBD+FYdAIpHAtJQ5EWKZ6MJrJTsuBcIEgdTXG+YSpHe36U73iNvppEhOCQaAZJVg1QnMEfQCQbArkx9MeCCAeDAQCpNMIoHp6doIES78rKyssIOH8YMYDIZIl4fad8fc47SN271IBbQ5C8Pmx+Q/qwQnjB+CTdQAGOY5DnC0clAIJixMIUzXpsigQvL70s2bR5jy54nq9MaK/scDqY8e9TsokgSoKhkILkmD1GElCQBh74LUYFXhEpUPDwOBAxyHHBQOEhLi5bPiY7tKi7ef8IM0NjYmWkYm3jSZuixuggBMhTAgLBCvCPucS1wmOlMKmEtUtlp4oElFkBp8JUlEIpCZlRYVKlUc2rFjywNGkXq9sfr+/YfxA0NDTJ9g/1mASSj+NQVmz4oPWZm3TCuAEF68/A9zb+9dGx8WlC44ZDfkgV5atFAtFApBa8utQRQiBMSUdXS0NDk5sa+kaNufsKtXr0ru3u//uK3NNOwm3BwEC5KcnKhcuXzpXIoG4NLlb0xtbbdHN29cq83fuuHVjs47JrR5VmZG1ukzTV8aTjd2Ta0UtFlOTqZqzeq8bAxi4Nr1b00dpm4LEyIcB0iV3NysyGRN/G8wvd64aHhsrNhs7h1F+UBwYUlP10b+6hdVpS2t7TcpmgLzcrIXfPaXz89Uvb5z6/4PPzl548Z/h1FkMtO1yj98vL98y7adn7pcLpKBQd+YC09sbKxkx/at8zEIsMamv7VYreMuEQoRDgFaU1O14aFKRQNWX39q5/2+vvTgsJDg3bf3buo0me/V6Y2tKDzFhVtzVq9asdThcNi3F1XU+csYUEBf9+eCU180fXvx4jd9jPRcR0VQ2pSk0MioCDFNUZTd7vIMDA46+NCgNVatlmlmx3dgn+sNv+42d0dYreMESlBWERIc+ui94vPNF//51aUr91HSLl64IGbP7opNAhziazcUHOWrCJXO3y+c/umb+2qMXZ3mMT4ZkSroG1dWlM6LioxQoNA47E6n/uTpm0wOMYqIgFIVJkrTaoexOp3xg1u3TZTD4UAnqT9HykoLX0pPTUmtef9wo49iFbrd0dmTkZGWbBkctr79uw+vIsB33npjiUaTGFdQtMvoL1EuGcViMfbL6qofyOVSCcQgIAgvUac3fEfTNM2rIpfLBbnZGRhWqzMebW1pG+HLlofJSE+LfGtvdQWO4yLU5yGE0G53TEABhDKpNITp/QAAD0G416zf9qnX56M+3P/ussTEhLiikkod2giB7K4qXxgerpAjELfb7a7XnboBIKB4ELFQjM2fn6PE6nXGozdb2kYIrn/wIAfef2dbYmJC+rOO7cDr55u//PonP/7RAlW4MhJdX7p8XQ2/UU7O3PCN61/JQSDX/vVvU3t7hyUwRxDsvHnZ4VhtveFAe0enLzg0FPjkYE1pTEy0ZiYgUz+zdPmGGr5EkzQaeXHR1kUI5NKlK7e67z4YZUHYEpZLmdAIsDrdyd92dfWEjY3ZiMAcOXyopjRG/f1AluUhELZphYUp8J//7PUlEMPAX89euDlksThQsvLvq1RhopSUpDGsVmfY9bCvP/XJ4KAzCOSj7w+yfNUmDoT91nkvL5stlAix69e/e4DOo8DQxKjVslmz4rqwWr1x8djYWGGP+d4oA8K19YMH3puxInaHYyJELmdMNHrkvbLFD8JW0mQomOcB11BDUygVBqy5uVk2ODx+uLXttoUkCH9n3bWraMmSHy5e8aIc8XpJomrPG0c3rV+bsWrlyysEAoiv2VCw399PuObG5wQC4zsravE5uVlRvsiwvZOHXt/D+IEB9tDjT95XV+elJ85OUNM0DdB5g45+milaGtA0AG63h7hy9Vp3S2v7MLqamZGqzM3Jjvmi6fwd/uBjT2HeArDq8AcfOvQ0mln9ZSUFRxgQo7FJM26b2Hvb1GlBZRxkAZhwPW0FZuRHAszQVIVEIhHIysqIUinCD+bnr+/zGyOd7lTlwydPUh4/6newpmhSmUmnFuhHnufQppgj5vzhlODWhIRYeXxCnHlnUcHxIIem15+NJinXvq6ubjty7vz4MGmGAu3idJ510qU9ZQf8EOzJjKxi2pw5IV4vtr+yspAJa5B51ukMOW4vWdV5xzzsdrspHibYr/JKTK4cgt8u+s1zgFdlQgNxIJOx5hkTCo9VlBbe4ovhqXGirs6w2u3xrOvq6R1BMIx7Z0YKzqdybp4bbZ4z17B2wO/YcAhkEhlM0WoiZXLZubKi7V8HVuS0A1ZDgyHP5fFt7O3tHQscsPg5JmjiC6pvzsFPGbCQGigcc5ISlVKx8FxxceHlqW3hmSNnvcEwl/TQFQODA15+5GTm3eeMnNNNevzIGa+OwjExPFFWODnLvFAR/gM63dkIAIlNHo9n/uPHg/Zhq9XFD1rTzb7sNMFOfKhpqVQqaVycOkQsFrdIxfBsfn6+9VkNckY/S+j1Z5JIyrfRR/tSbTYbMTFu9xD8zxIESXF5wPwsIRKLcGW4UiyXykUCgcCMQ8G5kpL8ey/q0DMC4W9y5MgRhUymygYCkEtTdASEWCjEMBnTc2naSVG0DWBgGKOwW06ntb26unriRQD8+/8DuhQi9hjIIlIAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/re.0592cb6f.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/role6.42f1602d.jpg\";"],"sourceRoot":""}