|
@@ -71166,7 +71166,7 @@ void main()
|
|
|
}
|
|
|
}else {
|
|
|
let dis = r2.pos.distanceTo(r1.pos);
|
|
|
- if(dis == 0){
|
|
|
+ if(math.closeTo(dis,0)){
|
|
|
//console.log('dis == 0')
|
|
|
Potree.Utils.updateVisible(this, 'unableCompute', false);
|
|
|
return
|
|
@@ -81261,7 +81261,7 @@ void main()
|
|
|
}
|
|
|
let location = intersectPos.clone();
|
|
|
|
|
|
-
|
|
|
+ //console.log('dragMarker', oldPoint, intersectPos)
|
|
|
|
|
|
|
|
|
if(this.faceDirection && this.maxMarkers == 2 && len == 2){//add 固定方向的点不直接拖拽
|
|
@@ -81477,9 +81477,12 @@ void main()
|
|
|
viewer.dispatchEvent({type:'reticule_forbit', v:false});
|
|
|
//console.log('reticule_forbit',false)
|
|
|
}
|
|
|
- this.dragMarker(e); //触屏时必须先更新下点
|
|
|
+ this.isNew && this.dragMarker(e); //isNew触屏点击时必须先更新下点,因为指尖不在屏幕上时没更新。但对已经创建的marker点击时不应该更新
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ viewer.dispatchEvent({type:'dropMarker', object:this});
|
|
|
|
|
|
if (e.button != MOUSE.RIGHT && (//右键click的话继续执行,因为会停止
|
|
|
this.isIntersectSelf == 'all' && this.isNew //有线相交了
|
|
@@ -81491,8 +81494,7 @@ void main()
|
|
|
){
|
|
|
return this.continueDrag(null,e)
|
|
|
}
|
|
|
-
|
|
|
- //console.log('drop marker' )
|
|
|
+
|
|
|
|
|
|
let i = this.markers.indexOf(e.drag.object);
|
|
|
if (i !== -1) {
|
|
@@ -81516,7 +81518,7 @@ void main()
|
|
|
e.drag.endDragFun && e.drag.endDragFun(e);// addmarker
|
|
|
|
|
|
//if(this.changeCallBack)this.changeCallBack()
|
|
|
- viewer.dispatchEvent({type:'dropMarker', object:this});
|
|
|
+
|
|
|
return true
|
|
|
};
|
|
|
|
|
@@ -89324,11 +89326,11 @@ void main()
|
|
|
|
|
|
|
|
|
//if(isTouch || !Potree.settings.intersectWhenHover ){
|
|
|
- if(!this.dragViewport.view.isFlying()){
|
|
|
+ if(isTouch || !this.dragViewport.view.isFlying()){
|
|
|
this.hoveredElements = this.getHoveredElements();
|
|
|
this.intersect = this.getIntersect(viewport); //更新intersect,避免在没有mousemove但flyToPano后intersect未更新。
|
|
|
//this.intersect = this.getWholeIntersect()
|
|
|
- }
|
|
|
+ } //isTouch必须更新 否则是旧的
|
|
|
if(!viewport)return //why add this?
|
|
|
if (!this.drag) {
|
|
|
let target = (isTouch||e.button == MOUSE.LEFT) && this.hoveredElements.find(el => (//只有左键能拖拽
|
|
@@ -90322,10 +90324,7 @@ void main()
|
|
|
return order2-order1
|
|
|
}); // 降序
|
|
|
|
|
|
- /* if(intersections.length == 0){
|
|
|
- console.log('no')
|
|
|
- } */
|
|
|
- //console.log('getHoveredElement ', intersections)
|
|
|
+
|
|
|
return intersections;
|
|
|
}
|
|
|
|
|
@@ -91656,6 +91655,7 @@ void main()
|
|
|
|
|
|
navCubeViewer.switchView('ortho', dir, ()=>{
|
|
|
faceMesh.material.uniforms.faceColor.value.set(Colors.black);
|
|
|
+ viewer.dispatchEvent({type:'viewChanged', name });
|
|
|
});
|
|
|
faceMesh.material.uniforms.faceColor.value.set(Colors.blue);
|
|
|
});
|
|
@@ -91789,7 +91789,9 @@ void main()
|
|
|
this.addEventListener('enterTopView',()=>{
|
|
|
let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine && e.points.length == 2); //使基准线在俯视图中水平
|
|
|
let yaw = baseLine ? new Vector2().subVectors(baseLine.points[0], baseLine.points[1]).angle() : 0;
|
|
|
- this.switchView('ortho', {dir: new Vector3(0,0,-1),yaw,pitch: -1.5707963267948966});
|
|
|
+ this.switchView('ortho', {dir: new Vector3(0,0,-1),yaw,pitch: -1.5707963267948966}, ()=>{
|
|
|
+ viewer.dispatchEvent({type:'viewChanged', name:'Top' });
|
|
|
+ });
|
|
|
});
|
|
|
this.addEventListener('leaveTopView',()=>{
|
|
|
if(this.lastView){
|
|
@@ -91872,7 +91874,7 @@ void main()
|
|
|
viewer.focusOnObject(viewer.bound, 'boundingBox', 1000, {
|
|
|
endPitch: pitch, endYaw: yaw , dir, startCamera, endCamera
|
|
|
}).promise.done(()=>{
|
|
|
- //viewer.dispatchEvent('reachTopView')
|
|
|
+
|
|
|
|
|
|
done && done();
|
|
|
navCubeViewer.dispatchEvent('content_changed');
|
|
@@ -91903,7 +91905,7 @@ void main()
|
|
|
view.tranCamera(viewer.mainViewport, { position ,
|
|
|
callback:()=>{
|
|
|
done && done();
|
|
|
-
|
|
|
+ viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
|
|
|
}, startCamera:viewer.scene.cameraO, endCamera:viewer.scene.cameraP, midCamera:viewer.scene.cameraBasic
|
|
|
}, 500);
|
|
|
|
|
@@ -91966,6 +91968,9 @@ void main()
|
|
|
callback:()=>{
|
|
|
if(endCamera != viewer.scene.cameraO){
|
|
|
this.controls.setEnable(true);
|
|
|
+ viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
|
|
|
+ }else {
|
|
|
+ viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
|
|
|
}
|
|
|
},
|
|
|
}, 500);
|
|
@@ -106096,29 +106101,17 @@ ENDSEC
|
|
|
this.dontRender = false;
|
|
|
});
|
|
|
|
|
|
- var updateVisi = (e)=>{
|
|
|
- //if(e.hoverViewport == viewer.mainViewport){
|
|
|
- Potree.Utils.updateVisible(this,"atViewport", true);
|
|
|
- this.update(e.intersect && e.intersect.location);
|
|
|
- /* }else{
|
|
|
- Potree.Utils.updateVisible(this,"atViewport", false) //小地图不显示
|
|
|
- } */
|
|
|
-
|
|
|
+ var updateVisi = (e)=>{
|
|
|
+ this.update(e.intersect && e.intersect.location);
|
|
|
};
|
|
|
|
|
|
//viewer.addEventListener('global_mousemove', updateVisi)
|
|
|
viewer.addEventListener('global_touchstart', updateVisi);
|
|
|
viewer.addEventListener('getIntersect', updateVisi);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
|
|
|
this.addEventListener("setEnable",(e)=>{
|
|
|
- Potree.Utils.updateVisible(this, "enable", e.value, 1, e.value?'add':'cancel' ); //界面开关
|
|
|
- /* if(Potree.settings.displayMode == 'showPanos') && e.value){
|
|
|
- Potree.settings.pointDensity = 'magnifier'
|
|
|
- }else if() */
|
|
|
-
|
|
|
+ Potree.Utils.updateVisible(this, "enable", e.value, 1, e.value?'add':'cancel' ); //界面开关
|
|
|
});
|
|
|
|
|
|
//默认隐藏, 显示的条件:测量拖拽 或 外部消息setEnable
|
|
@@ -106133,6 +106126,15 @@ ENDSEC
|
|
|
});
|
|
|
|
|
|
|
|
|
+ this.addEventListener('isVisible',(e)=>{
|
|
|
+ //console.warn('isVisible',e)
|
|
|
+ if(e.visible && viewer.inputHandler.intersect){
|
|
|
+ this.update(viewer.inputHandler.intersect.location);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
viewer.scene.view.addEventListener('flyingDone',()=>{
|
|
|
if(!this.visible)return
|
|
|
let pickWindowSize = 100;
|
|
@@ -106368,9 +106370,9 @@ ENDSEC
|
|
|
viewer.addEventListener('endTagMove',endCrossStyle);
|
|
|
|
|
|
viewer.addEventListener('reticule_forbit',(e)=>{
|
|
|
- if(this.state.forbit != e.v){
|
|
|
- console.log('change forbit ',e.v);
|
|
|
- }
|
|
|
+ /* if(this.state.forbit != e.v){
|
|
|
+ console.log('change forbit ',e.v)
|
|
|
+ } */
|
|
|
this.state.forbit = e.v;
|
|
|
this.judgeTex();
|
|
|
});
|