|
@@ -54307,7 +54307,7 @@
|
|
viewport.camera = info.midCamera;
|
|
viewport.camera = info.midCamera;
|
|
//viewport.camera.matrixWorld = info.endCamera.matrixWorld
|
|
//viewport.camera.matrixWorld = info.endCamera.matrixWorld
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
//viewer.setCameraMode(CameraMode.ORTHOGRAPHIC)
|
|
//viewer.setCameraMode(CameraMode.ORTHOGRAPHIC)
|
|
info.midCamera.projectionMatrix.copy(info.startCamera.projectionMatrix);
|
|
info.midCamera.projectionMatrix.copy(info.startCamera.projectionMatrix);
|
|
|
|
|
|
@@ -54323,10 +54323,13 @@
|
|
|
|
|
|
let callback = info.callback;
|
|
let callback = info.callback;
|
|
info.callback = ()=>{
|
|
info.callback = ()=>{
|
|
- viewport.camera = info.endCamera;
|
|
|
|
- viewer.scene.measurements.forEach((e)=>{
|
|
|
|
- Potree.Utils.updateVisible(e, 'tranCamera', true);
|
|
|
|
- });
|
|
|
|
|
|
+ viewport.camera = info.endCamera;
|
|
|
|
+ viewer.scene.measurements.forEach((e)=>{
|
|
|
|
+ Potree.Utils.updateVisible(e, 'tranCamera', true);
|
|
|
|
+ });
|
|
|
|
+ viewer.dispatchEvent({type:'camera_changed', viewport:viewer.mainViewport, changeInfo:{}});//update sprite
|
|
|
|
+
|
|
|
|
+
|
|
callback && callback();
|
|
callback && callback();
|
|
};
|
|
};
|
|
|
|
|
|
@@ -57960,7 +57963,7 @@
|
|
this.uniforms.resolution.value.copy(viewport.resolution);
|
|
this.uniforms.resolution.value.copy(viewport.resolution);
|
|
this.uniforms.devicePixelRatio.value = window.devicePixelRatio;
|
|
this.uniforms.devicePixelRatio.value = window.devicePixelRatio;
|
|
this.lineWidth = this.lineWidth_; //update
|
|
this.lineWidth = this.lineWidth_; //update
|
|
- if(!this.useDepth || !e.viewport.camera.isPerspectiveCamera || !e.viewport)return
|
|
|
|
|
|
+ if(!this.useDepth /* || !e.viewport.camera.isPerspectiveCamera */|| !e.viewport)return
|
|
let viewportOffset = viewport.offset || new THREE.Vector2();
|
|
let viewportOffset = viewport.offset || new THREE.Vector2();
|
|
this.uniforms.viewportOffset.value.copy(viewportOffset);
|
|
this.uniforms.viewportOffset.value.copy(viewportOffset);
|
|
|
|
|
|
@@ -58031,7 +58034,7 @@
|
|
var viewport = e.viewport || viewer.mainViewport;
|
|
var viewport = e.viewport || viewer.mainViewport;
|
|
var camera = viewport.camera;
|
|
var camera = viewport.camera;
|
|
|
|
|
|
- let hasDepth = this.useDepth && camera.isPerspectiveCamera &&
|
|
|
|
|
|
+ let hasDepth = this.useDepth/* && camera.isPerspectiveCamera */ &&
|
|
(Potree.settings.pointEnableRT || Potree.settings.displayMode == 'showPanos' || viewer.useEDL);
|
|
(Potree.settings.pointEnableRT || Potree.settings.displayMode == 'showPanos' || viewer.useEDL);
|
|
|
|
|
|
this.setRealDepth(hasDepth);
|
|
this.setRealDepth(hasDepth);
|
|
@@ -75246,7 +75249,7 @@ void main()
|
|
|
|
|
|
this.events = {
|
|
this.events = {
|
|
setSize:(e)=>{//如果出现横条状的异常,往往是viewportOffset出错 //地图不需要
|
|
setSize:(e)=>{//如果出现横条状的异常,往往是viewportOffset出错 //地图不需要
|
|
- if(!this.useDepth || !e.viewport.camera.isPerspectiveCamera || !e.viewport)return
|
|
|
|
|
|
+ if(!this.useDepth /* || !e.viewport.camera.isPerspectiveCamera */|| !e.viewport)return
|
|
let viewport = e.viewport;
|
|
let viewport = e.viewport;
|
|
let viewportOffset = viewport.offset || new Vector2();
|
|
let viewportOffset = viewport.offset || new Vector2();
|
|
|
|
|
|
@@ -75374,7 +75377,7 @@ void main()
|
|
var viewport = e.viewport || viewer.mainViewport;
|
|
var viewport = e.viewport || viewer.mainViewport;
|
|
var camera = viewport.camera;
|
|
var camera = viewport.camera;
|
|
|
|
|
|
- let hasDepth = this.useDepth && camera.isPerspectiveCamera &&
|
|
|
|
|
|
+ let hasDepth = this.useDepth /* && camera.isPerspectiveCamera */ &&
|
|
(Potree.settings.pointEnableRT || Potree.settings.displayMode == 'showPanos' || viewer.useEDL);
|
|
(Potree.settings.pointEnableRT || Potree.settings.displayMode == 'showPanos' || viewer.useEDL);
|
|
|
|
|
|
this.setRealDepth(hasDepth);
|
|
this.setRealDepth(hasDepth);
|
|
@@ -75478,8 +75481,8 @@ void main()
|
|
return v;
|
|
return v;
|
|
}
|
|
}
|
|
|
|
|
|
- update(e){
|
|
|
|
- if(!e){
|
|
|
|
|
|
+ update(e={}){
|
|
|
|
+ if(!e.viewport){
|
|
let viewports = this.viewports || viewer.viewports;
|
|
let viewports = this.viewports || viewer.viewports;
|
|
if(!viewports)return
|
|
if(!viewports)return
|
|
viewports.forEach(view=>{
|
|
viewports.forEach(view=>{
|
|
@@ -80571,7 +80574,7 @@ void main()
|
|
|
|
|
|
dropMarker(e){
|
|
dropMarker(e){
|
|
//console.log('dropMarker')
|
|
//console.log('dropMarker')
|
|
- if (this.isNew && e.pressDistance>Potree.config.clickMaxDragDis){//拖拽的话返回
|
|
|
|
|
|
+ if (this.isNew && !browser.isMobile() && e.pressDistance>Potree.config.clickMaxDragDis){//拖拽的话返回
|
|
return this.continueDrag(null,e)
|
|
return this.continueDrag(null,e)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -82682,7 +82685,7 @@ void main()
|
|
});
|
|
});
|
|
|
|
|
|
viewer.inputHandler.dispatchEvent({type:'isMeasuring', v:false, cause:'stopInsertion'} );
|
|
viewer.inputHandler.dispatchEvent({type:'isMeasuring', v:false, cause:'stopInsertion'} );
|
|
-
|
|
|
|
|
|
+ viewer.controls.setEnable(true);
|
|
|
|
|
|
//var isIntersectSelf = measure.atPlane && measure.closed && !measure.isRect && measure.point2dInfo && measure.intersectSelf(measure.point2dInfo.points2d.slice(0,measure.point2dInfo.points2d.length-1))//检测除了最后一个点的相交情况
|
|
//var isIntersectSelf = measure.atPlane && measure.closed && !measure.isRect && measure.point2dInfo && measure.intersectSelf(measure.point2dInfo.points2d.slice(0,measure.point2dInfo.points2d.length-1))//检测除了最后一个点的相交情况
|
|
var isIntersectSelf = measure.atPlane && measure.closed && !measure.isRect && measure.point2dInfo && measure.intersectSelf(measure.point2dInfo.points2d);
|
|
var isIntersectSelf = measure.atPlane && measure.closed && !measure.isRect && measure.point2dInfo && measure.intersectSelf(measure.point2dInfo.points2d);
|
|
@@ -82751,7 +82754,7 @@ void main()
|
|
let mouseleave = (e) => {
|
|
let mouseleave = (e) => {
|
|
measure.setMarkerSelected(e.object, 'unhover', 'single');
|
|
measure.setMarkerSelected(e.object, 'unhover', 'single');
|
|
};
|
|
};
|
|
-
|
|
|
|
|
|
+ let isMobile = browser.isMobile();
|
|
|
|
|
|
let click = (e)=>{//一旦点击就立刻增加两marker
|
|
let click = (e)=>{//一旦点击就立刻增加两marker
|
|
|
|
|
|
@@ -82761,6 +82764,10 @@ void main()
|
|
|
|
|
|
if(e.button === MOUSE.RIGHT)return
|
|
if(e.button === MOUSE.RIGHT)return
|
|
|
|
|
|
|
|
+ if(isMobile){
|
|
|
|
+ viewer.controls.setEnable(false);
|
|
|
|
+ }
|
|
|
|
+
|
|
//console.log('measure clicked33', !!e.intersectPoint)
|
|
//console.log('measure clicked33', !!e.intersectPoint)
|
|
|
|
|
|
//var I = e.intersectPoint && (e.intersectPoint.orthoIntersect || e.intersectPoint.location)
|
|
//var I = e.intersectPoint && (e.intersectPoint.orthoIntersect || e.intersectPoint.location)
|
|
@@ -82777,10 +82784,10 @@ void main()
|
|
|
|
|
|
var marker = measure.addMarker({point:I});
|
|
var marker = measure.addMarker({point:I});
|
|
marker.isDragging = true;
|
|
marker.isDragging = true;
|
|
- this.viewer.inputHandler.startDragging(marker , {endDragFun, notPressMouse:true} ); //notPressMouse代表不是通过按下鼠标来拖拽
|
|
|
|
|
|
+ this.viewer.inputHandler.startDragging(marker , {endDragFun, notPressMouse:!isMobile} ); //notPressMouse代表不是通过按下鼠标来拖拽
|
|
e.drag = this.viewer.inputHandler.drag;
|
|
e.drag = this.viewer.inputHandler.drag;
|
|
e.drag.endDragFun = endDragFun;
|
|
e.drag.endDragFun = endDragFun;
|
|
- e.drag.notPressMouse = true;
|
|
|
|
|
|
+ e.drag.notPressMouse = !isMobile;
|
|
|
|
|
|
//if(!measure.dragMarker(e) || !measure.dropMarker(e))return
|
|
//if(!measure.dragMarker(e) || !measure.dropMarker(e))return
|
|
|
|
|
|
@@ -82799,7 +82806,7 @@ void main()
|
|
|
|
|
|
|
|
|
|
this.viewer.removeEventListener('global_click', click);///* global_drop */
|
|
this.viewer.removeEventListener('global_click', click);///* global_drop */
|
|
-
|
|
|
|
|
|
+ this.viewer.removeEventListener('global_touchstart', click );//add importance
|
|
measure.dispatchEvent('firstClick');
|
|
measure.dispatchEvent('firstClick');
|
|
|
|
|
|
//console.log('measure clicked')
|
|
//console.log('measure clicked')
|
|
@@ -82812,7 +82819,12 @@ void main()
|
|
|
|
|
|
viewer.inputHandler.dispatchEvent({type: 'isMeasuring', v: true, cause:'startInsertion'});
|
|
viewer.inputHandler.dispatchEvent({type: 'isMeasuring', v: true, cause:'startInsertion'});
|
|
|
|
|
|
- this.viewer.addEventListener('global_click', click, {importance:10});//add importance
|
|
|
|
|
|
+
|
|
|
|
+ if( isMobile ){
|
|
|
|
+ this.viewer.addEventListener('global_touchstart', click, {importance:10});//add importance
|
|
|
|
+ }else {
|
|
|
|
+ this.viewer.addEventListener('global_click', click, {importance:10});//add importance
|
|
|
|
+ }
|
|
|
|
|
|
let ifAtWrongPlace = (e)=>{
|
|
let ifAtWrongPlace = (e)=>{
|
|
if(measure.unableDragAtMap && e.hoverViewport.name == 'mapViewport' ){
|
|
if(measure.unableDragAtMap && e.hoverViewport.name == 'mapViewport' ){
|
|
@@ -88250,7 +88262,7 @@ void main()
|
|
const viewer = this.viewer;
|
|
const viewer = this.viewer;
|
|
let camera = params.camera ? params.camera : viewer.scene.getActiveCamera();
|
|
let camera = params.camera ? params.camera : viewer.scene.getActiveCamera();
|
|
let rtEDL = (Potree.settings.pointEnableRT || Potree.settings.displayMode == 'showPanos' || viewer.useEDL) &&
|
|
let rtEDL = (Potree.settings.pointEnableRT || Potree.settings.displayMode == 'showPanos' || viewer.useEDL) &&
|
|
- Features.EXT_DEPTH.isSupported() && camera.type != "OrthographicCamera" && !params.dontRenderRtEDL && (params.rtEDL || this.getRtEDL(params.viewport)); // 平面相机不用depthTex直接打开depthTest?且不使用edl
|
|
|
|
|
|
+ Features.EXT_DEPTH.isSupported() /* && camera.type != "OrthographicCamera" */&& !params.dontRenderRtEDL && (params.rtEDL || this.getRtEDL(params.viewport)); // 平面相机不用depthTex直接打开depthTest?且不使用edl
|
|
let useEDL = viewer.useEDL && rtEDL && Potree.settings.displayMode != 'showPanos';
|
|
let useEDL = viewer.useEDL && rtEDL && Potree.settings.displayMode != 'showPanos';
|
|
|
|
|
|
let target = params.target || null;
|
|
let target = params.target || null;
|
|
@@ -91757,7 +91769,7 @@ void main()
|
|
viewer.focusOnObject(viewer.bound, 'boundingBox', 1000, {
|
|
viewer.focusOnObject(viewer.bound, 'boundingBox', 1000, {
|
|
endPitch: pitch, endYaw: yaw , dir, startCamera, endCamera
|
|
endPitch: pitch, endYaw: yaw , dir, startCamera, endCamera
|
|
}).promise.done(()=>{
|
|
}).promise.done(()=>{
|
|
-
|
|
|
|
|
|
+ viewer.dispatchEvent('reachTopView');
|
|
done && done();
|
|
done && done();
|
|
navCubeViewer.dispatchEvent('content_changed');
|
|
navCubeViewer.dispatchEvent('content_changed');
|
|
});
|
|
});
|
|
@@ -91781,10 +91793,11 @@ void main()
|
|
let position = new Vector3().copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis));
|
|
let position = new Vector3().copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis));
|
|
//view.position.copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis));
|
|
//view.position.copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis));
|
|
this.controls.setEnable(true);
|
|
this.controls.setEnable(true);
|
|
-
|
|
|
|
|
|
+ viewer.dispatchEvent('leaveTopView');
|
|
|
|
|
|
view.tranCamera(viewer.mainViewport, { position ,
|
|
view.tranCamera(viewer.mainViewport, { position ,
|
|
callback:()=>{
|
|
callback:()=>{
|
|
|
|
+
|
|
}, startCamera:viewer.scene.cameraO, endCamera:viewer.scene.cameraP, midCamera:viewer.scene.cameraBasic
|
|
}, startCamera:viewer.scene.cameraO, endCamera:viewer.scene.cameraP, midCamera:viewer.scene.cameraBasic
|
|
}, 500);
|
|
}, 500);
|
|
|
|
|
|
@@ -141380,7 +141393,7 @@ ENDSEC
|
|
if(Potree.fileServer){
|
|
if(Potree.fileServer){
|
|
path = '/vision.json';
|
|
path = '/vision.json';
|
|
}else {
|
|
}else {
|
|
- path = '/floor_0_webcloud/floor_0_vision.txt'; //`${Potree.settings.urls.prefix1}/vision.json`
|
|
|
|
|
|
+ path = `${Potree.settings.urls.prefix1}/floor_0_webcloud/floor_0_vision.txt`; //'/floor_0_webcloud/floor_0_vision.txt' //`${Potree.settings.urls.prefix1}/vision.json`
|
|
}
|
|
}
|
|
return Potree.getRealUrl(path, (path)=>{
|
|
return Potree.getRealUrl(path, (path)=>{
|
|
loadFile(path, { }, callback, );
|
|
loadFile(path, { }, callback, );
|