|
@@ -39,7 +39,7 @@ const textSizeRatio = math.linearClamp(window.innerWidth * window.innerHeight ,
|
|
|
|
|
|
|
|
|
const markerSizeInfo = {
|
|
|
- minSize : 30*2 , maxSize : 65*2, nearBound : 0.2, farBound : 4,
|
|
|
+ minSize : 30*2 , maxSize : 60*2, nearBound : 0.2, farBound : 4,
|
|
|
}
|
|
|
const labelSizeInfo = {width2d:190}
|
|
|
const mainLabelProp = {
|
|
@@ -50,7 +50,8 @@ const mainLabelProp = {
|
|
|
textBorderThick:3,
|
|
|
fontsize: 15 * textSizeRatio,
|
|
|
borderRadius : 12, margin:{x:20,y:4},
|
|
|
- renderOrder : 8, pickOrder:8,
|
|
|
+ renderOrder : Potree.config.renderOrders.measureLabel,
|
|
|
+ pickOrder:Potree.config.renderOrders.measureLabel,
|
|
|
disToLine:-0.15,
|
|
|
|
|
|
useDepth : true ,
|
|
@@ -68,7 +69,8 @@ const subLabelProp = {
|
|
|
backgroundColor: {r: 255, g: 255, b: 255, a:config.measure.default.opacity},
|
|
|
textColor: {r: 0.3, g: 0.3, b:0.3, a: 1.0},
|
|
|
fontsize:15 * textSizeRatio, borderRadius : 12, margin:{x:20,y:4},
|
|
|
- renderOrder : 7, pickOrder:7,
|
|
|
+ renderOrder : Potree.config.renderOrders.measureLabelSub,
|
|
|
+ pickOrder:Potree.config.renderOrders.measureLabelSub,
|
|
|
}
|
|
|
|
|
|
|
|
@@ -284,14 +286,15 @@ export class Measure extends ctrlPolygon{
|
|
|
|
|
|
|
|
|
if(this.showDistances || this.labelText){ // edge labels
|
|
|
- let edgeLabel = this.edgeLabels[index];
|
|
|
- let distance = this.labelText || point.distanceTo(nextPoint)
|
|
|
- edgeLabel.shouldVisi = (this.labelText || distance>0) && (index < lastIndex || this.isRect || this.closed && !this.isNew )
|
|
|
+ let edgeLabel = this.edgeLabels[index];
|
|
|
+ let distance = point.distanceTo(nextPoint)
|
|
|
+ let text = this.labelText || distance
|
|
|
+ edgeLabel.shouldVisi = distance>0 && (index < lastIndex || this.isRect || this.closed && !this.isNew )
|
|
|
/* this.closed || */edgeLabel.setVisible(edgeLabel.shouldVisi)
|
|
|
if(edgeLabel.shouldVisi){
|
|
|
this.lineDir = new THREE.Vector3().subVectors(point,nextPoint).normalize() //[point,nextPoint]
|
|
|
|
|
|
- setEdgeLabel(edgeLabel,point,nextPoint,distance)
|
|
|
+ setEdgeLabel(edgeLabel,point,nextPoint,text)
|
|
|
|
|
|
}
|
|
|
|
|
@@ -429,12 +432,16 @@ export class Measure extends ctrlPolygon{
|
|
|
if(this.measureType != 'MulDistance_shape')marker.posShift = new THREE.Vector3(0.2,0,0);//使箭头中心对准端点位置(因贴图里箭头不在中心,如果单纯改贴图会导致raycaster热区偏移,所以修改mesh位置)
|
|
|
|
|
|
Potree.Utils.setObjectLayers(marker, 'measure' )
|
|
|
- marker.pickOrder = marker.renderOrder = 6
|
|
|
+ marker.pickOrder = marker.renderOrder = Potree.config.renderOrders.measureMarker;
|
|
|
+
|
|
|
marker.markerSelectStates = {}
|
|
|
marker.addEventListener('startDragging',(e)=>{
|
|
|
+ console.log('marker startdragging')
|
|
|
viewer.inputHandler.dispatchEvent( {type: 'measuring',v:true, cause:'startDragging', situation:'dragging', object:this})
|
|
|
})
|
|
|
marker.addEventListener('drop',(e)=>{
|
|
|
+ console.log('marker drop')
|
|
|
+ this.lastDropTime = Date.now()
|
|
|
viewer.inputHandler.dispatchEvent({type: 'measuring', v:false, cause:'stopDragging', situation:'dragging', object:this} )
|
|
|
|
|
|
if(Potree.settings.adsorption){
|
|
@@ -462,7 +469,9 @@ export class Measure extends ctrlPolygon{
|
|
|
edge.removeEventListener('addHoverEvent', addHoverEvent);
|
|
|
|
|
|
//2023.10.25add:
|
|
|
- edge.addEventListener('click',()=>{
|
|
|
+ edge.addEventListener('click',()=>{
|
|
|
+ let now = Date.now()
|
|
|
+ if(now-this.lastDropTime < 50)return ;//点击到marker了
|
|
|
if(!this.isNew) this.focus()
|
|
|
})
|
|
|
}
|
|
@@ -572,6 +581,14 @@ export class Measure extends ctrlPolygon{
|
|
|
marker.material = this.getMarkerMaterial('default')
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ if(absoluteState){
|
|
|
+ marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker+1
|
|
|
+ }else{
|
|
|
+ marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
marker.selected = absoluteState
|
|
|
|
|
@@ -883,7 +900,7 @@ export class Measure extends ctrlPolygon{
|
|
|
edgeLabel.addEventListener('mouseleave',()=>{
|
|
|
this.setSelected(false, 'edgeLabel')
|
|
|
})
|
|
|
- edgeLabel.addEventListener('click',()=>{
|
|
|
+ edgeLabel.addEventListener('click',()=>{
|
|
|
if(!this.isNew) this.focus()
|
|
|
})
|
|
|
//edgeLabel.sprite.material.opacity = config.measure.default.opacity
|
|
@@ -952,6 +969,7 @@ export class Measure extends ctrlPolygon{
|
|
|
replaceColor:new THREE.Color(Potree.config.measure.highlight.color),
|
|
|
beReplacedRed: 0.184, //0.18431372
|
|
|
mapColorReplace:true,
|
|
|
+ mapScale:0.7
|
|
|
})),
|
|
|
markerMats['select_circle_' + color] = new DepthBasicMaterial($.extend({},lineDepthInfo,{
|
|
|
transparent: !0,
|
|
@@ -960,7 +978,8 @@ export class Measure extends ctrlPolygon{
|
|
|
//useDepth:true ,
|
|
|
replaceColor: new THREE.Color(Potree.config.measure.highlight.color) ,
|
|
|
beReplacedRed: 0.184, //0.18431372
|
|
|
- mapColorReplace:true
|
|
|
+ mapColorReplace:true,
|
|
|
+ mapScale:0.7
|
|
|
}))
|
|
|
markerMats['default_arrow_' + color] = new DepthBasicMaterial($.extend({},lineDepthInfo,{
|
|
|
transparent: !0,
|