const POINT_TYPE_ZONE=1,POINT_TYPE_ZONE_ICON=2,POINT_TYPE_ZONE_WAYPOINT=3,POINT_TYPE_SHOP_WAYPOINT=4,POINT_TYPE_CAMERA_OFFSET=5,POINT_TYPE_SHOP_TOP_ICON=6,POINT_TYPE_SHOP_POINT=7,POINT_TYPE_SHOP_ICON=8,POINT_TYPE_PRODUCT=9,POINT_TYPE_PRODUCT_GROUP=10,POINT_TYPE_SCENE=11,POINT_TYPE_COIN=12,POINT_TYPE_FAVORITE=30,POINT_TYPE_RECOMMAND=31,ZONESPHERE_TRANSPARENT_ORDER=0,ZONEWAYPOINT_TRANSPARENT_ORDER=2,ZONEMESH_TRANSPARENT_ORDER=3,SHOP_TRANSPARENT_ORDER=4,SHOPWAYPOINT_TRANSPARENT_ORDER=4;YGG.JJ_Object=function(){const e=.3;let t=new THREE.TextureLoader,n=A(!0,.5,.5),o=A(!0,.4,.4),r=new THREE.BoxGeometry(.01,.01,.01),a=t.load(RESOURCE_PATH+"image/UI/T_GroundPoint.png",(function(){})),i=t.load(RESOURCE_PATH+"image/UI/T_Point.png",(function(){})),p=t.load(RESOURCE_PATH+"image/UI/T_Point.png",(function(){})),E=t.load(RESOURCE_PATH+"image/UI/T_ShopIcon.png",(function(){})),s=t.load(RESOURCE_PATH+"image/UI/T_ShopIconGray.png",(function(){})),c=t.load(RESOURCE_PATH+"image/UI/T_ShopNVRIcon.png",(function(){})),l=t.load(RESOURCE_PATH+"image/UI/T_ShopNVRIconGray.png",(function(){})),T=t.load(RESOURCE_PATH+"image/UI/T_CancelTag.png",(function(){})),R=t.load(RESOURCE_PATH+"image/UI/T_PriceTag.png",(function(){})),u=t.load(RESOURCE_PATH+"image/UI/T_OffsetTag.png",(function(){})),m=t.load(RESOURCE_PATH+"image/UI/T_DefaultCoin.png",(function(){})),d=t.load(RESOURCE_PATH+"image/UI/T_Favorite.png",(function(){})),h=t.load(RESOURCE_PATH+"image/UI/T_Recomend.png",(function(){})),P=t.load(RESOURCE_PATH+"image/default360.jpg",(function(){})),_=new THREE.MeshBasicMaterial,O=new THREE.MeshBasicMaterial({color:16777215,alphaMap:i,wireframe:!1,transparent:!0,opacity:.4,depthWrite:!1,depthTest:!1,side:THREE.DoubleSide}),H=new THREE.SpriteMaterial({color:16777215,map:l,transparent:!0,depthWrite:!0,depthTest:!0}),S=new THREE.MeshBasicMaterial({color:16777215,alphaMap:p,wireframe:!1,transparent:!0,opacity:.4,side:THREE.DoubleSide}),f=new THREE.SpriteMaterial({color:16777215,map:l,transparent:!0,depthWrite:!1,depthTest:!1}),w=new THREE.SpriteMaterial({color:16777215,map:l,transparent:!0,depthWrite:!0,depthTest:!0}),y=new THREE.SpriteMaterial({color:16777215,map:T,transparent:!0}),I=new THREE.SpriteMaterial({color:16777215,map:R,transparent:!0}),g=new THREE.SpriteMaterial({color:16777215,map:m,transparent:!0,depthWrite:!1,depthTest:!1}),N=new THREE.MeshBasicMaterial({color:16777215,transparent:!0}),M=new THREE.MeshBasicMaterial({color:16777215,map:P,opacity:0,transparent:!0,depthWrite:!1,depthTest:!0,side:THREE.BackSide});function A(e,t,n){let o=new THREE.Geometry;return e?o.vertices.push(new THREE.Vector3(t/2,0,n/2),new THREE.Vector3(t/-2,0,n/2),new THREE.Vector3(t/-2,0,n/-2),new THREE.Vector3(t/2,0,n/-2)):o.vertices.push(new THREE.Vector3(t/2,n/-2,0),new THREE.Vector3(t/-2,n/-2,0),new THREE.Vector3(t/-2,n/2,0),new THREE.Vector3(t/2,n/2,0)),o.faces.push(new THREE.Face3(2,1,0),new THREE.Face3(3,2,0)),o.faceVertexUvs[0].push([new THREE.Vector2(0,1),new THREE.Vector2(0,0),new THREE.Vector2(1,0)]),o.faceVertexUvs[0].push([new THREE.Vector2(1,1),new THREE.Vector2(0,1),new THREE.Vector2(1,0)]),o}function U(e){switch(e.shopTypeSupportEcom){case 1:1==e.shopTypeSupport3D?e.material.map=s:e.material.map=l;break;case 2:1==e.shopTypeSupport3D?e.material.map=E:e.material.map=c;break;default:}}this.createGroundPoint=function(){let e=new THREE.Mesh(n,new THREE.MeshBasicMaterial({color:16777215,transparent:!0,opacity:0,map:a}));return e.scale.set(1.2,1,1.2),e.rotation.set(0,Math.PI,Math.PI),e.pointType=3,e.renderOrder=1,e.position.set(0,1.5,0),e},this.createZoneWayPoint=function(e){let t,o,a,i,p=!1,E=0;arguments.length>1?(t=arguments[0],o=arguments[1],a=arguments[2],i=arguments[3]):(t=e.id,p=e.is_gate,o=e.position,a=e.yaw,i=e.camera_offset,E=e.camera_yaw);let s=new THREE.Mesh(n,O.clone()),c=new THREE.Mesh(r,_);return c.position.y=null==i?1.5:i,c.visible=!1,s.isGate=p,s.pointType=3,c.pointType=5,s.renderOrder=2,s.position.set(o[0],o[1],o[2]),s.rotation.set(0,a/180*Math.PI,0),s.name=t,c.rotation.y=E*Math.PI/180,s.add(c),s},this.createZoneIcon=function(e,n,o){let r=new THREE.Sprite(H.clone());return r.scale.set(25,25,1),r.center.set(.5,0),r.material.map=null!=o&&null!=o?t.load(o,(function(){})):t.load(RESOURCE_VR_ROOTPATH+"zones/"+e+"/"+e+".png",(function(){})),r.material.transparent=!0,r.scale.x/=100,r.scale.y/=100,r.material.sizeAttenuation=!1,r.renderOrder=4,r.pointType=2,r.position.set(n[0],n[1],n[2]),r.name=e,r},this.createShopTopIcon=function(e){let t=e.id,n=e.support_3d||0,o=e.support_ecommerce||0,r=e.position,a=new THREE.Sprite(f.clone());return a.scale.set(1.5,1.5,1),a.shopTypeSupport3D=n,a.shopTypeSupportEcom=o,a.pointType=6,a.renderOrder=4,a.position.set(r[0],r[1],r[2]),a.name=t,U(a),a},this.createShopPoint=function(e){let t=e.id,n=e.support_3d||0,o=e.support_ecommerce||0,a=e.position,i=e.yaw,p=e.offset,E=null;null!=e.camera&&null!=e.camera&&(E={position:new THREE.Vector3(e.camera.position[0],e.camera.position[1],e.camera.position[2]),target:new THREE.Vector3(e.camera.target[0],e.camera.target[1],e.camera.target[2]),bound:new THREE.Vector2(e.camera.bound[0],e.camera.bound[1])});let s=new THREE.Mesh(r,_),c=new THREE.Sprite(w.clone());return c.scale.set(.5,.5,1),s.shopTypeSupport3D=n||0,s.shopTypeSupportEcom=o||0,c.shopTypeSupport3D=n||0,c.shopTypeSupportEcom=o||0,s.material.transparent=!0,s.material.opacity=0,s.pointType=7,c.pointType=8,s.camera=E,s.renderOrder=4,c.renderOrder=4,s.position.set(a[0],a[1],a[2]),c.position.set(p[0],p[1],p[2]),s.rotation.set(0,i*Math.PI/180,0),s.name=t,c.name=t,U(c),s.add(c),s},this.createShopWayPoint=function(e,t,n,a,i,p,E){let s=new THREE.Mesh(o,S.clone()),c=new THREE.Mesh(r,_);return c.position.y=null==a?1.5:a,c.visible=!1,s.isGate=null!=i&&null!=i&&i,s.pointType=4,c.pointType=5,s.renderOrder=4,s.position.set(t[0],t[1],t[2]),s.rotation.set(0,n/180*Math.PI,0),s.name=e,c.rotation.y=null==p||null==p?0:p*Math.PI/180,s.cameraLimit={left:1/0,right:-1/0},s.isGate&&E&&(E[0]>=360&&E[0]==E[1]||(s.cameraLimit.left=s.rotation.y+c.rotation.y+E[0]*Math.PI/180,s.cameraLimit.right=s.rotation.y+c.rotation.y-E[1]*Math.PI/180)),s.add(c),s},this.createProductPoint=function(e,t){let n=new THREE.Sprite(y.clone());return n.scale.set(.12,.12,1),n.pointType=9,n.renderOrder=4,n.position.set(t[0],t[1],t[2]),n.name=e,n},this.createProductGroupPoint=function(t,n,o){let r=new THREE.Sprite(I.clone());if(r.scale.set(e,e,e),null!=o&&null!=o&&0!=o.length){let e=new THREE.Vector3(o.unit_direction[0],o.unit_direction[1],o.unit_direction[2]);e.normalize(),e.multiplyScalar(-o.length);let t=[];t.push(new THREE.Vector3),t.push(e);let a=new THREE.Line((new THREE.BufferGeometry).setFromPoints(t),N);a.layers.set(1),a.scale.set(3.3333333333333335,3.3333333333333335,3.3333333333333335),r.add(a),r.position.set(n[0],n[1],n[2]),e.multiplyScalar(-1),r.position.add(e),r.material.map=u,a.renderOrder=4}else r.position.set(n[0],n[1],n[2]);return r.pointType=10,r.renderOrder=4,r.name=t,r},this.createCoinPoint=function(e){let t=new THREE.Sprite(g.clone());return t.scale.set(.3,.3,1),t.pointType=12,t.renderOrder=4,t.name=e,t},this.createPinPoint=function(e,t,n){let o=new THREE.Sprite(f.clone());switch(o.scale.set(.2,.2,1),o.pointType=n,o.renderOrder=5,o.position.copy(t),o.name=e,o.material.sizeAttenuation=!1,n){case 31:o.material.map=h;break;case 30:o.material.map=d;break}return o},this.createSphere=function(e,t,n){null==e&&(e=2),null==t&&(t=50),null==n&&(n=t),sphereGeo=new THREE.SphereGeometry(e,t,n);let o=new THREE.Mesh(sphereGeo,M.clone());return o.renderOrder=0,o.scale.x=-1,o.scale.y=-1,o},this.clearGroup=function(e){if(null!=e&&null!=e)for(;e.children.length>0;)obj=e.children[0],e.remove(obj),obj.geometry&&obj.geometry.dispose(),obj.material&&(Object.keys(obj.material).forEach((e=>{obj.material[e]&&"function"==typeof obj.material[e].dispose&&obj.material[e].dispose()})),obj.material.dispose())},this.clearArray=function(e){if(null!=e&&null!=e)for(;e.length>0;)e.pop()},this.clearDisposedArray=function(e){if(null!=e&&null!=e)for(;e.length>0;)e.pop().dispose()}};