|
@@ -1,78 +1,6 @@
|
|
|
/* 许钟文修改的 标记 xzw
|
|
|
另外 所有"matter"字样已被我删除 原因:删除matterport信息
|
|
|
*/
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-var createEnterLogo = function(){
|
|
|
- var entryTex = Texture.load("images/enter.png", ()=>{
|
|
|
- player.controlEntryOpacity({on:true, entryShowing:true})
|
|
|
- })
|
|
|
- var plane = new THREE.Mesh(new THREE.PlaneBufferGeometry(1,1,1,1), new THREE.MeshBasicMaterial({
|
|
|
- transparent:true,
|
|
|
- map : entryTex,
|
|
|
- opacity:0,
|
|
|
- color: new THREE.Color(229/255,220/255,180/255),
|
|
|
- }))
|
|
|
- window.enterObjects = new THREE.Object3D;
|
|
|
- enterObjects.position.set(-23.611102870311473, 4.6692603935021335, -0.800100018978118)//(-34.301849651636786, 5.301961727741601, 20.08320022583008)
|
|
|
-
|
|
|
- enterObjects.add(plane);
|
|
|
- //player.model.add(enterObjects)
|
|
|
-
|
|
|
- player.overlayGroup.add(enterObjects)
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-var entryShowing = false;
|
|
|
-var _entryOpacityId = 999
|
|
|
-
|
|
|
-/* var updateEntryShowing = function(){
|
|
|
- var maxDis = 22;
|
|
|
- var show = player.position.distanceTo(enterObjects.position)<maxDis
|
|
|
- if(show && !entryShowing) player.controlEntryOpacity({on:true, entryShowing:true})
|
|
|
- else if(!show && entryShowing) player.controlEntryOpacity({on:false, entryShowing:false})
|
|
|
-} */
|
|
|
-
|
|
|
-
|
|
|
- /* n.prototype.controlEntryOpacity = function(o){
|
|
|
-
|
|
|
- if(op.entryShowing!=void 0) entryShowing = op.entryShowing
|
|
|
- if(entryShowing && !o.on)return
|
|
|
-
|
|
|
- var startOpa = enterObjects.children[0].material.opacity;
|
|
|
- var aimOpa = o.on ? 1 : 0.5
|
|
|
-
|
|
|
- y.cancelById(_entryOpacityId);
|
|
|
- y.start((progress)=>{
|
|
|
- var opa = startOpa * (1-progress) + o.opacity * progress
|
|
|
- enterObjects.children.forEach(plane=>{
|
|
|
- plane.material.opacity = opa
|
|
|
- })
|
|
|
-
|
|
|
- }, 1000, ()=>{//done
|
|
|
- if(entryShowing){
|
|
|
- this.controlEntryOpacity({on:!o.on})
|
|
|
- }
|
|
|
- }, 0, f.transition.movementEasing, null, _entryOpacityId);
|
|
|
-
|
|
|
-
|
|
|
-} */
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
var dom = {//许钟文add
|
|
|
getOffset: function(type, element, parent) {
|
|
|
left = (type == "left") ? element.offsetLeft : element.offsetTop;
|
|
@@ -85,6 +13,23 @@ var _entryOpacityId = 999
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+//热点 设备控制
|
|
|
+
|
|
|
+$("#hotPannel .close").on('click',()=>{
|
|
|
+ $("#hotPannel>div").css("display","");
|
|
|
+ window.hotNeedUpdatePanel = null;
|
|
|
+
|
|
|
+})
|
|
|
+
|
|
|
+$("#hotPannel input.mui-switch").on('change',()=>{
|
|
|
+ var ifOn = $('#hotPannel input.mui-switch').is(':checked');
|
|
|
+
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
!function() {
|
|
|
"use strict";
|
|
|
function t(t, i) {
|
|
@@ -14302,6 +14247,10 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
}catch(e){console.log(e) }
|
|
|
|
|
|
+
|
|
|
+ data.flyInOnlyBySwitch = true
|
|
|
+
|
|
|
+
|
|
|
window.MP_PREFETCHED_MODELDATA = data;
|
|
|
data.model.summary = data.summary
|
|
|
data.model.name = data.name
|
|
@@ -14435,15 +14384,8 @@ window.Modernizr = function(n, e, t) {
|
|
|
N.setAppReadyTime();
|
|
|
var e = N.calcFullLoadingTime();
|
|
|
de.warn("Total load time: " + e / 1e3),
|
|
|
- H.loadComplete(e),
|
|
|
- window.parent.postMessage('loadComplete','*')
|
|
|
+ H.loadComplete(e),
|
|
|
de.warn("First render after model load finished.")
|
|
|
-
|
|
|
- try{
|
|
|
- window.parent.postMessage('loadComplete','*')
|
|
|
- }catch(e){
|
|
|
- console.log(e)
|
|
|
- }
|
|
|
}),
|
|
|
S.on(le.MemoryUsageUpdated, n)
|
|
|
}).fail(b.bind(this, e))
|
|
@@ -15478,12 +15420,21 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
|
|
|
this.build();
|
|
|
- d.infoAttribute && d.infoAttribute.title && this.createTitleElem(d.infoAttribute.title)
|
|
|
+
|
|
|
+
|
|
|
+ if(d.infoAttribute && d.infoAttribute.title){
|
|
|
+ if(window.MP_PREFETCHED_MODELDATA.flyInOnlyBySwitch){
|
|
|
+
|
|
|
+ }else{
|
|
|
+ this.createTitleElem(d.infoAttribute.title)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
this.changeTex()
|
|
|
|
|
|
this.setVisiblePanos(d.visiblePanos);
|
|
|
this.infoAttribute = d.infoAttribute;
|
|
|
-
|
|
|
}
|
|
|
var r = e("three")
|
|
|
, f = e("../shaders")
|
|
@@ -15524,6 +15475,9 @@ window.Modernizr = function(n, e, t) {
|
|
|
if(this.isSprite){
|
|
|
this.mesh.quaternion.copy(camera.quaternion)
|
|
|
}
|
|
|
+ if(window.hotNeedUpdatePanel == this){
|
|
|
+ this.updatePanel()
|
|
|
+ }
|
|
|
}
|
|
|
hot.prototype.setVisiblePanos = function(visibleData){
|
|
|
if (visibleData) {
|
|
@@ -15555,12 +15509,22 @@ window.Modernizr = function(n, e, t) {
|
|
|
this.model.add(sprite);
|
|
|
g_HotMeshes.push(sprite);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
hot.prototype.createTitleElem = function(title){
|
|
|
var root = $("#hot");
|
|
|
var elem = $(`<div> ${title}</div>`)
|
|
|
root.append(elem);
|
|
|
this.titleElem = elem;
|
|
|
}
|
|
|
+
|
|
|
+ hot.prototype.updatePanel = function(){
|
|
|
+ var pos = math.getPos2d(this.position, player.camera, $("#player")[0])
|
|
|
+ $("#hotPannel>div").css( { "left" : `${pos.pos.x}px`, "top": `${pos.pos.y}px ` });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
hot.prototype.showTitle = function(){
|
|
|
if(!this.titleElem)return;
|
|
|
var pos = math.getPos2d(this.position, player.camera, $("#player")[0])
|
|
@@ -15629,73 +15593,100 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
}
|
|
|
hot.prototype.examine = function(e, options) {
|
|
|
-
|
|
|
- try{
|
|
|
- window.parent.postMessage("clickHot",'*')
|
|
|
- //$("#app .aside li" , parent.document)[0].click();
|
|
|
- }catch(e){
|
|
|
- console.log(e)
|
|
|
- }
|
|
|
-
|
|
|
- options = options || {}
|
|
|
- if(this.linkType!="common" && this.infoAttribute.iframe && this.infoAttribute.iframe[0] && !options.dontOpen){
|
|
|
- var src = getLink(this.infoAttribute.iframe[0]);
|
|
|
- if(this.linkType=="jumpLink"){
|
|
|
- /* var newPage = window.open(src, "_blank" );
|
|
|
- newPage.focus(); */
|
|
|
-
|
|
|
- var href = window.location.href
|
|
|
- var index = href.indexOf("&")
|
|
|
- if(index>-1) href = href.substr(0,index) /* pushState replaceState*/
|
|
|
- history.pushState(null, "", href+'&qs=1&firstView=pano:'+player.currentPano.id+',qua:'+ player.quaternion.toArray());
|
|
|
- window.location.href = src
|
|
|
+ options = options || {}
|
|
|
+ var hotPop = document.getElementById('popup');
|
|
|
+
|
|
|
+
|
|
|
+ if(window.MP_PREFETCHED_MODELDATA.flyInOnlyBySwitch){
|
|
|
+ $("#hotPannel>div").css("display","block");
|
|
|
+ $("#hotPannel>div").text(this.infoAttribute.title)
|
|
|
+ this.updatePanel()
|
|
|
+ window.hotNeedUpdatePanel = this
|
|
|
+
|
|
|
+ if(player.mode != 'panorama' || !player.currentPano)return;
|
|
|
+ }else{
|
|
|
+
|
|
|
+ if(this.linkType!="common" && this.infoAttribute.iframe && this.infoAttribute.iframe[0] && !options.dontOpen){
|
|
|
+ var src = getLink(this.infoAttribute.iframe[0]);
|
|
|
+ if(this.linkType=="jumpLink"){
|
|
|
+ /* var newPage = window.open(src, "_blank" );
|
|
|
+ newPage.focus(); */
|
|
|
+
|
|
|
+ var href = window.location.href
|
|
|
+ var index = href.indexOf("&")
|
|
|
+ if(index>-1) href = href.substr(0,index) /* pushState replaceState*/
|
|
|
+ history.pushState(null, "", href+'&qs=1&firstView=pano:'+player.currentPano.id+',qua:'+ player.quaternion.toArray());
|
|
|
+ window.location.href = src
|
|
|
+
|
|
|
+
|
|
|
+ }else if(this.linkType=="iframeDiv"){
|
|
|
+ var div = document.createElement("div");
|
|
|
+ $("body").append(div);
|
|
|
+ div.style.position = 'fixed';
|
|
|
+ div.style.width = div.style.height = "100%";
|
|
|
+ div.style.left = div.style.top = '0';
|
|
|
+ div.style["z-index"] = "999"
|
|
|
+
|
|
|
+ var exit = document.createElement("div");
|
|
|
+ exit.style["background-image"] = "url(images/vrOffImg.png)";
|
|
|
+ exit.style.position = 'absolute';
|
|
|
+ exit.style.width = exit.style.height = "50px";
|
|
|
+ exit.style.left = '17px'; exit.style.top = "20px"
|
|
|
+ exit.style.cursor = "pointer";
|
|
|
+ exit.style["background-repeat"] = "no-repeat";
|
|
|
+ exit.style["background-size"] = "25%";
|
|
|
+ exit.style["background-position"] = "center center";
|
|
|
+ exit.style["background-color"] = "rgba(0, 0, 0, 0.2)";
|
|
|
+ exit.style["border-radius"] = "50%";
|
|
|
+ exit.style["z-index"] = "3"
|
|
|
+ exit.onclick = ()=>{
|
|
|
+ $(div).remove()
|
|
|
+ if(g_bgAudio && g_bgAudio.pauseByHot){
|
|
|
+ manage.switchBgmState(true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var myElement = document.createElement("iframe");
|
|
|
+ myElement.style.position = 'absolute';
|
|
|
+ myElement.style.width = myElement.style.height = "100%";
|
|
|
+ myElement.style.left = myElement.style.top = '0';
|
|
|
+
|
|
|
+ myElement.src = src
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ div.appendChild(exit);
|
|
|
+ div.appendChild(myElement)
|
|
|
+
|
|
|
+
|
|
|
+ //打开热点的时候把背景音乐关闭了,避免与热点里面的音乐冲突
|
|
|
+ //g_bgAudio && g_bgAudio.pause();
|
|
|
+ if(g_bgAudio && !g_bgAudio.paused){
|
|
|
+ manage.switchBgmState(false);
|
|
|
+ g_bgAudio.pauseByHot = true
|
|
|
+ }
|
|
|
+ if(g_tourAudio)g_tourAudio.pause()
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- }else if(this.linkType=="iframeDiv"){
|
|
|
- var div = document.createElement("div");
|
|
|
- $("body").append(div);
|
|
|
- div.style.position = 'fixed';
|
|
|
- div.style.width = div.style.height = "100%";
|
|
|
- div.style.left = div.style.top = '0';
|
|
|
- div.style["z-index"] = "999"
|
|
|
|
|
|
- var exit = document.createElement("div");
|
|
|
- exit.style["background-image"] = "url(images/vrOffImg.png)";
|
|
|
- exit.style.position = 'absolute';
|
|
|
- exit.style.width = exit.style.height = "50px";
|
|
|
- exit.style.left = '17px'; exit.style.top = "20px"
|
|
|
- exit.style.cursor = "pointer";
|
|
|
- exit.style["background-repeat"] = "no-repeat";
|
|
|
- exit.style["background-size"] = "25%";
|
|
|
- exit.style["background-position"] = "center center";
|
|
|
- exit.style["background-color"] = "rgba(0, 0, 0, 0.2)";
|
|
|
- exit.style["border-radius"] = "50%";
|
|
|
- exit.style["z-index"] = "3"
|
|
|
- exit.onclick = ()=>{
|
|
|
- $(div).remove();
|
|
|
- if(g_bgAudio && g_bgAudio.pauseByHot){
|
|
|
- manage.switchBgmState(true)
|
|
|
- }
|
|
|
- try{
|
|
|
- window.parent.postMessage("closeHot",'*')
|
|
|
- }catch(e){
|
|
|
- console.log(e)
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(!player.currentPano)return;
|
|
|
+
|
|
|
+ //获取那个热点的链接
|
|
|
+ if(this.link){
|
|
|
+ g_currentHot = this;
|
|
|
+ hotPop.style.display = "block";
|
|
|
+ hotPop.classList.add("wait");
|
|
|
var myElement = document.createElement("iframe");
|
|
|
- myElement.style.position = 'absolute';
|
|
|
- myElement.style.width = myElement.style.height = "100%";
|
|
|
- myElement.style.left = myElement.style.top = '0';
|
|
|
-
|
|
|
- myElement.src = src
|
|
|
-
|
|
|
-
|
|
|
- div.appendChild(exit);
|
|
|
- div.appendChild(myElement)
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
//打开热点的时候把背景音乐关闭了,避免与热点里面的音乐冲突
|
|
|
//g_bgAudio && g_bgAudio.pause();
|
|
|
if(g_bgAudio && !g_bgAudio.paused){
|
|
@@ -15703,68 +15694,44 @@ window.Modernizr = function(n, e, t) {
|
|
|
g_bgAudio.pauseByHot = true
|
|
|
}
|
|
|
if(g_tourAudio)g_tourAudio.pause()
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if(!player.currentPano)return;
|
|
|
- var hotPop = document.getElementById('popup');
|
|
|
- //获取那个热点的链接
|
|
|
- if(this.link){
|
|
|
- g_currentHot = this;
|
|
|
- hotPop.style.display = "block";
|
|
|
- hotPop.classList.add("wait");
|
|
|
- var myElement = document.createElement("iframe");
|
|
|
- //打开热点的时候把背景音乐关闭了,避免与热点里面的音乐冲突
|
|
|
- //g_bgAudio && g_bgAudio.pause();
|
|
|
- if(g_bgAudio && !g_bgAudio.paused){
|
|
|
- manage.switchBgmState(false);
|
|
|
- g_bgAudio.pauseByHot = true
|
|
|
- }
|
|
|
- if(g_tourAudio)g_tourAudio.pause()
|
|
|
-
|
|
|
- var src = getLink(this.link )
|
|
|
- myElement.src = src;
|
|
|
- myElement.id = "id1";
|
|
|
- myElement.allowTransparency = "true";
|
|
|
- // myElement.scrolling = "no";
|
|
|
- var element=document.getElementById("id1"); //判断页面是否有iframe
|
|
|
- if (typeof(element)== "undefined" || element == null){
|
|
|
- document.querySelector(".popup-content").appendChild(myElement);
|
|
|
- //移动端自动播放
|
|
|
- var videoLoaddingResult = false
|
|
|
- window.loaddingSuccess = function() {
|
|
|
- videoLoaddingResult = true
|
|
|
- }
|
|
|
+
|
|
|
+ var src = getLink(this.link )
|
|
|
+ myElement.src = src;
|
|
|
+ myElement.id = "id1";
|
|
|
+ myElement.allowTransparency = "true";
|
|
|
+ // myElement.scrolling = "no";
|
|
|
+ var element=document.getElementById("id1"); //判断页面是否有iframe
|
|
|
+ if (typeof(element)== "undefined" || element == null){
|
|
|
+ document.querySelector(".popup-content").appendChild(myElement);
|
|
|
+ //移动端自动播放
|
|
|
+ var videoLoaddingResult = false
|
|
|
+ window.loaddingSuccess = function() {
|
|
|
+ videoLoaddingResult = true
|
|
|
+ }
|
|
|
|
|
|
- setTimeout(function func() {
|
|
|
- if (videoLoaddingResult) {
|
|
|
- var $iframe = document.querySelector('#id1').contentWindow.document;
|
|
|
- if($iframe.querySelector('video')){
|
|
|
- $iframe.querySelector('video').play();
|
|
|
- // alert($iframe.querySelector('video'));
|
|
|
- if(!$iframe.querySelector('video').paused && $iframe.querySelector('.playPause')){
|
|
|
- $iframe.querySelector('.playPause').classList.add("fa-pause");
|
|
|
+ setTimeout(function func() {
|
|
|
+ if (videoLoaddingResult) {
|
|
|
+ var $iframe = document.querySelector('#id1').contentWindow.document;
|
|
|
+ if($iframe.querySelector('video')){
|
|
|
+ $iframe.querySelector('video').play();
|
|
|
+ // alert($iframe.querySelector('video'));
|
|
|
+ if(!$iframe.querySelector('video').paused && $iframe.querySelector('.playPause')){
|
|
|
+ $iframe.querySelector('.playPause').classList.add("fa-pause");
|
|
|
+ }
|
|
|
}
|
|
|
+ if($iframe.querySelector('audio')){
|
|
|
+ $iframe.querySelector('audio').play();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ setTimeout(func, 300)
|
|
|
}
|
|
|
- if($iframe.querySelector('audio')){
|
|
|
- $iframe.querySelector('audio').play();
|
|
|
- }
|
|
|
- } else {
|
|
|
- setTimeout(func, 300)
|
|
|
- }
|
|
|
- }, 800);
|
|
|
- }
|
|
|
-
|
|
|
- //setTimeout(function(){$('#player').on("click",e.closePopup);},20)
|
|
|
-
|
|
|
+ }, 800);
|
|
|
+ }
|
|
|
+
|
|
|
+ //setTimeout(function(){$('#player').on("click",e.closePopup);},20)
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
// if(hotListSta) {
|
|
|
// hotPop.classList.remove("wait");
|
|
|
// return;
|
|
@@ -15777,7 +15744,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
var o = function() {
|
|
|
e.flyingToTag = false;
|
|
|
if(this.link){
|
|
|
- hotPop.classList.remove("wait");
|
|
|
+ hotPop && hotPop.classList.remove("wait");
|
|
|
}
|
|
|
|
|
|
}.bind(this);
|
|
@@ -17688,8 +17655,9 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
|
|
|
n.prototype.loadOverlays = function(overlays){
|
|
|
- var overlays = window.data2 && window.data2.overlays
|
|
|
- overlays = [{"media":["text"],"depth":0.02,"file":"https://super.4dage.com/data/791/edit/20210128_141321391.jpg","pos":[-37.601, 7.533, 14.007],"hasBox":0,"width":6.5705,"qua":[0, 0.6942, 0, 0.7198],"height":3.5873,"sid":"1611814305459"},{"media":["photo"],"depth":0.02,"file":"images/textbg.jpg","pos":[-37.601, 7.533, 14.007],"hasBox":0,"width":6.5705,"qua":[0, 0.6942, 0, 0.7198],"height":3.5873,"sid":"1611814305459"}]
|
|
|
+ var overlays = window.data2 && window.data2.overlays
|
|
|
+
|
|
|
+
|
|
|
overlays && overlays.forEach((info)=>{
|
|
|
new Overlay(info)
|
|
|
})
|
|
@@ -20418,16 +20386,16 @@ window.Modernizr = function(n, e, t) {
|
|
|
p.start(u, i, h, 0, d.easeInOutQuad, "wait")
|
|
|
|
|
|
//zoom动画
|
|
|
-
|
|
|
+ //这是啥?
|
|
|
var currentGuide = player.model.heroLocations[app.director.currentItem];
|
|
|
-
|
|
|
- this.player.zoomEnabled = true;
|
|
|
- var zoom = function(e, d) {
|
|
|
- this.player.zoomTo(e * currentGuide.zoom.toFixed(2), true)
|
|
|
+ if(currentGuide.zoom){
|
|
|
+ this.player.zoomEnabled = true;
|
|
|
+ var zoom = function(e, d) {
|
|
|
+ this.player.zoomTo(e * currentGuide.zoom.toFixed(2), true)
|
|
|
|
|
|
- }.bind(this)
|
|
|
- p.start(zoom, 2000, null, 0, d.easeOutQuad, "zoom")
|
|
|
-
|
|
|
+ }.bind(this)
|
|
|
+ p.start(zoom, 2000, null, 0, d.easeOutQuad, "zoom")
|
|
|
+ }
|
|
|
}
|
|
|
,
|
|
|
n.prototype.warpToNonPano = function(e) {
|
|
@@ -21502,18 +21470,12 @@ window.Modernizr = function(n, e, t) {
|
|
|
manage.switchBgmState(true)
|
|
|
}
|
|
|
|
|
|
- try{
|
|
|
- window.parent.postMessage("closeHot",'*')
|
|
|
- }catch(e){
|
|
|
- console.log(e)
|
|
|
- }
|
|
|
+
|
|
|
//$('#player').off("click",this.closePopup);
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
|
|
|
n.prototype.setupCustomProperties = function(e) {
|
|
|
var t = e || u.PANORAMA;
|
|
@@ -21911,7 +21873,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
if (this.cameraControls.activeControl && this.cameraControls.activeControl.emit(_.Move, this.isTouchEvent ? "touch" : "mouse"),
|
|
|
this.history.invalidate(),
|
|
|
- this.intersect)
|
|
|
+ this.intersect && (this.mode == "panorama" || !window.MP_PREFETCHED_MODELDATA.flyInOnlyBySwitch))// 改
|
|
|
return this.flyToPanoClosestToMouse();
|
|
|
if (this.mode === u.PANORAMA) {
|
|
|
var n = this.closestPanoInDirection(this.getMouseDirection());
|
|
@@ -21949,7 +21911,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
//-------------------
|
|
|
window.initOverlay(r)
|
|
|
this.model.loadOverlays()
|
|
|
- createEnterLogo()
|
|
|
+
|
|
|
//-------------------
|
|
|
|
|
|
|
|
@@ -21999,6 +21961,13 @@ window.Modernizr = function(n, e, t) {
|
|
|
if (this.checkAndWaitForPanoLoad(e, "high", "low", this.basePanoSize, a))
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //add
|
|
|
+ this.transitionPos({type:"beforeFlytopano", pano:this.currentPano, dur:0})
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return this.mode = u.PANORAMA,
|
|
|
e.floor.enter(this.mode),
|
|
|
this.emit(w.PanoChosen, this.currentPano, this.currentPano),
|
|
@@ -22521,14 +22490,6 @@ window.Modernizr = function(n, e, t) {
|
|
|
if(overlay.overlayType == "video"){
|
|
|
if(plane.material.map.image.paused)plane.material.map.image.play()
|
|
|
else plane.material.map.image.pause();
|
|
|
- }else if(overlay == enterObjects){//add
|
|
|
- //window.location.href = "http://www.4dmodel.com/SuperTwo762/index.html?m=762&qust=1"
|
|
|
- try{
|
|
|
- window.parent.postMessage("goInside",'*')
|
|
|
- //$("#app .aside li" , parent.document)[0].click();
|
|
|
- }catch(e){
|
|
|
- console.log(e)
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/* if(window.EditOverlay &&EditOverlay.editing){
|
|
@@ -22658,11 +22619,18 @@ window.Modernizr = function(n, e, t) {
|
|
|
n.prototype.fitDollhouse = function(e, t, i) {//许钟文改 飞入前寻找和初始视角最合适的位置
|
|
|
//if(urlHasValue('oldEntry')){
|
|
|
//搬自一代。
|
|
|
- var n = d.FORWARD.clone().applyQuaternion(i)
|
|
|
+ var maxY = this.model.boundingBox.max.y;
|
|
|
+ var n = d.FORWARD.clone().applyQuaternion(i)
|
|
|
, i = n.clone().add(e);
|
|
|
this.cameraControls.activeControl.target.copy(i),
|
|
|
- this.cameraControls.activeControl.camera.position.set(0, 6, 0).add(e).add(n.multiplyScalar(-10))
|
|
|
- //return;
|
|
|
+ this.cameraControls.activeControl.camera.position.set(0, maxY * 2.4, 0).add(e).add(n.multiplyScalar(-10))
|
|
|
+ //return;
|
|
|
+
|
|
|
+ /* //this.camera.position.copy(this.model.center);
|
|
|
+ //this.camera.updateMatrixWorld()
|
|
|
+ this.switchCameraMode("dollhouse", i) */
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//}//下面是二代代码,看不太懂。因为有的场景在靠近一端的某个方向截取的初始视角会甩镜头,也就是不是下去之后的方向
|
|
|
//直接用一代的这个 效果和二代几乎一样,且不会甩
|
|
@@ -22841,6 +22809,9 @@ window.Modernizr = function(n, e, t) {
|
|
|
|
|
|
//---------before fly--------------- add
|
|
|
this.updateHotVisible(i); //更新热点显示
|
|
|
+ this.transitionPos({type:"beforeFlytopano", pano:i, dur:I})//add
|
|
|
+
|
|
|
+
|
|
|
//地标变化
|
|
|
if(this.model.floorLogos){
|
|
|
this.model.changefloorLogoOpa({index:0, opa:0, dur: p, delay:0.7})//this.model.floorLogoFade(0, _duration*0.5, 0.7);
|
|
@@ -22882,42 +22853,65 @@ window.Modernizr = function(n, e, t) {
|
|
|
this.model.floorLogos[0].position.copy(this.model.floorLogos[1].position)
|
|
|
//this.model.adjustfloorLogoHeight()
|
|
|
this.model.changefloorLogoOpa({index:0,opa:1,dur:0});//this.model.floorLogos[0].material.uniforms.opacity.value = 1;
|
|
|
- this.model.floorLogos[1].visible = false;
|
|
|
+ this.model.floorLogos[1].visible = false;
|
|
|
}
|
|
|
- /* if(this.mode == "panorama"){
|
|
|
- updateEntryShowing()
|
|
|
-
|
|
|
- } */
|
|
|
}
|
|
|
.bind(this), 0, B, "camFly", V.FlyToPano)
|
|
|
}
|
|
|
}
|
|
|
,
|
|
|
|
|
|
- n.prototype.controlEntryOpacity = function(o){//add
|
|
|
+
|
|
|
+
|
|
|
+ window._transitionPosId = 9999
|
|
|
+
|
|
|
+ n.prototype.transitionPos = function(o={}) {//渐变overlay和热点的位置
|
|
|
+
|
|
|
+ y.cancelById(_transitionPosId)
|
|
|
|
|
|
- if(o.entryShowing!=void 0) entryShowing = o.entryShowing
|
|
|
-
|
|
|
-
|
|
|
- var startOpa = enterObjects.children[0].material.opacity;
|
|
|
- var aimOpa = o.on ? 1 : entryShowing ? 0.3 : 0
|
|
|
- if(startOpa == aimOpa)return;
|
|
|
-
|
|
|
- y.cancelById(_entryOpacityId);
|
|
|
- y.start((progress)=>{
|
|
|
- var opa = startOpa * (1-progress) + aimOpa * progress
|
|
|
- enterObjects.children.forEach(plane=>{
|
|
|
- plane.material.opacity = opa
|
|
|
- })
|
|
|
- }, 1500, ()=>{//done
|
|
|
- if(entryShowing){
|
|
|
- this.controlEntryOpacity({on:!o.on})
|
|
|
- }
|
|
|
- }, 0, A[f.transition.movementEasing], null, _entryOpacityId);
|
|
|
-
|
|
|
-
|
|
|
+ var begin = function(object, pos, qua, scale){
|
|
|
+ if(pos){
|
|
|
+ if(!same(object.position, pos, 0.01)){
|
|
|
+
|
|
|
+ y.start(v.vector(object.position, pos), o.dur, (e)=>{
|
|
|
+
|
|
|
+ },0, A[f.transition.movementEasing], "transitionPos", _transitionPosId)
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!same(object.quaternion, qua, 1e-6)){
|
|
|
+ y.start(v.quaternion(object.quaternion, qua), o.dur, (e)=>{
|
|
|
+
|
|
|
+ },0, A[f.transition.movementEasing], "transitionPos", _transitionPosId)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(!same(object.scale, scale, 0.001)){
|
|
|
+ y.start(v.vector(object.scale, scale), o.dur, (e)=>{
|
|
|
+
|
|
|
+ },0, A[f.transition.movementEasing], "transitionPos", _transitionPosId)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var same = function(vec1, vec2, diff){
|
|
|
+ var s = Math.abs(vec1.x-vec2.x) < diff && Math.abs(vec1.y-vec2.y) < diff && Math.abs(vec1.z-vec2.z) < diff
|
|
|
+ if(s && vec1.w) s = Math.abs(vec1.w-vec2.w) < diff
|
|
|
+ return s
|
|
|
+ }
|
|
|
+ this.overlayGroup.children.forEach(overlay=>{
|
|
|
+ var panoData = o.pano != void 0 && overlay.transformAtPanos[o.pano.id]
|
|
|
+ var useCustom = o.type == "beforeFlyOut" || !panoData
|
|
|
+ var pos = useCustom ? overlay.posCustom : panoData.pos;
|
|
|
+ var qua = useCustom ? overlay.quaCustom : panoData.qua;
|
|
|
+ var scale = useCustom ? overlay.getScaleBySize(overlay.widthCustom, overlay.heightCustom) :
|
|
|
+ overlay.getScaleBySize(panoData.width , panoData.height)
|
|
|
+ scale = new THREE.Vector3(scale.x, scale.y, overlay.scale.z)
|
|
|
+ begin(overlay, pos, qua, scale )
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
|
|
|
|
|
|
n.prototype.fastForwardActivePanoFlight = function(e) {
|
|
@@ -23229,6 +23223,12 @@ window.Modernizr = function(n, e, t) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if(i == "panorama"){
|
|
|
+ this.transitionPos({type:"beforeFlyIn", pano:n, dur:I})//add
|
|
|
+ }else{
|
|
|
+ this.transitionPos({type:"beforeFlyOut", dur:I/2})//add
|
|
|
+ }
|
|
|
+
|
|
|
//------------------------------------
|
|
|
|
|
|
|
|
@@ -23330,10 +23330,8 @@ window.Modernizr = function(n, e, t) {
|
|
|
this.model.changefloorLogoOpa({index:0, from:0, opa:1, dur: 150 }),//this.model.floorLogoShow(0,150);
|
|
|
this.model.floorLogos[0].visible = true
|
|
|
)
|
|
|
- /* if(this.mode == u.PANORAMA) updateEntryShowing()
|
|
|
- else player.controlEntryOpacity({on:false, entryShowing:false}) */
|
|
|
- //-------
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
h && p !== u.PANORAMA && i === u.PANORAMA ? this.startWarp(b.Retain, E.Retain, x.BLACK, null, null, s) : (s && s(),
|
|
|
t.resolve())
|
|
|
}
|
|
@@ -26169,7 +26167,7 @@ window.Modernizr = function(n, e, t) {
|
|
|
panAccelerationOutside: 60,
|
|
|
onload: r.valueFromHash("onload", o.PANORAMA),
|
|
|
zoomNearLimit: .1,
|
|
|
- zoomFarLimit: 30,
|
|
|
+ zoomFarLimit: 10,
|
|
|
navigation: {
|
|
|
panoScores: !1,
|
|
|
mouseDirection: !0,
|
|
@@ -30029,6 +30027,35 @@ window.Modernizr = function(n, e, t) {
|
|
|
"use strict";
|
|
|
function n(e, t) {
|
|
|
var i = r(t);
|
|
|
+
|
|
|
+
|
|
|
+ var replaceAll = function (str, f, e) {
|
|
|
+ //f全部替换成e
|
|
|
+ var reg = new RegExp(f, "g"); //创建正则RegExp对象
|
|
|
+ return str.replace(reg, e);
|
|
|
+ };
|
|
|
+ var urlFirstView = c.valueFromHash('firstView');
|
|
|
+ if(urlFirstView){
|
|
|
+ try{
|
|
|
+ urlFirstView = replaceAll(urlFirstView, "pano", '"pano"')
|
|
|
+ urlFirstView = replaceAll(urlFirstView, "qua:", '"qua":[')
|
|
|
+ urlFirstView = "{"+urlFirstView+"]}"
|
|
|
+ let info = JSON.parse(urlFirstView);
|
|
|
+ i.pano = t.list[info.pano] //panos.get(info.pano)
|
|
|
+ if(!i.pano){
|
|
|
+ urlFirstView = false
|
|
|
+ console.error('检测到firstView但是 找不到该pano')
|
|
|
+ }else{
|
|
|
+ i.quaternion = new THREE.Quaternion().fromArray(info.qua)
|
|
|
+ i.zoom = -1;
|
|
|
+ i.mode = "panorama"
|
|
|
+ i.setByUrl = true
|
|
|
+ }
|
|
|
+ }catch(e){
|
|
|
+ urlFirstView = false
|
|
|
+ console.error('检测到firstView但是解析出错'+e)
|
|
|
+ }
|
|
|
+ }
|
|
|
if (Object.keys(i).length > 0)
|
|
|
return i;
|
|
|
if (e.heroImage)
|