xzw před 8 měsíci
rodič
revize
20228fe2c7

+ 78 - 38
public/lib/potree/potree.js

@@ -22425,14 +22425,14 @@
 	  },
 	  renderOrders: {
 	    //会影响到绘制、pick时的顺序。
-	    model: 10,
+	    line: 3,
 	    reticule: 5,
 	    measureMarker: 6,
 	    measureLabelSub: 7,
 	    measureLabel: 8,
 	    sorptionSign: 10,
 	    model: 10,
-	    line: 3,
+	    model: 10,
 	    magnifier: 50
 	  },
 	  siteModel: {
@@ -39810,7 +39810,7 @@
 	class ctrlPolygon extends Object3D {
 	  constructor(type, prop) {
 	    super();
-	    this.type = type;
+	    this.Type = type;
 	    this.maxMarkers = Number.MAX_SAFE_INTEGER;
 	    this.transformData(prop);
 	    for (var i in prop) {
@@ -42346,8 +42346,21 @@
 	var titleLineHeight = 2;
 	//const edgeExtrudePoints = [new THREE.Vector2(0,-0.4), new THREE.Vector2(0,0.4)]
 	var renderOrders = {
+	  path: 1,
+	  marker: 2,
 	  line: 3,
-	  title: 4
+	  label: 4
+	};
+	var depthProps = {
+	  useDepth: true,
+	  //startClipDis  : 0.5,
+	  clipDistance: 6,
+	  //消失距离      
+	  //startOcclusDis: 0.5,
+	  occlusionDistance: 2,
+	  //变为backColor距离 
+	  maxOcclusionFactor: 0.7,
+	  maxClipFactor: 1
 	};
 	var planeGeo$2 = new PlaneBufferGeometry(1, 1);
 	var voidGeometry = new BufferGeometry();
@@ -42356,10 +42369,10 @@
 	  return function (name) {
 	    if (!mats) {
 	      mats = {
-	        default: new MeshBasicMaterial({
+	        default: new DepthBasicMaterial($.extend({}, depthProps, {
 	          transparent: true,
 	          map: texLoader$7.load(Potree.resourcePath + '/textures/dot_n.png')
-	        }),
+	        })),
 	        drag: new MeshBasicMaterial({
 	          transparent: true,
 	          map: texLoader$7.load(Potree.resourcePath + '/textures/dot_s.png')
@@ -42391,7 +42404,7 @@
 	    {
 	      var group = new Object3D();
 	      group.name = 'titleGroup';
-	      this.titleLabel = new TextSprite$2(Object.assign({}, {} /* depthMatProp */, {
+	      this.titleLabel = new TextSprite$2(Object.assign({}, depthProps, {
 	        text: '',
 	        sizeInfo: {
 	          width2d: 200
@@ -42403,15 +42416,17 @@
 	          a: 1.0
 	        },
 	        backgroundColor: {
-	          r: 0,
-	          g: 0,
-	          b: 0,
-	          a: 0.7
+	          r: 255,
+	          g: 255,
+	          b: 255,
+	          a: 0.9
 	        },
 	        borderRadius: 6,
 	        fontsize: this.fontsize || 13,
-	        fontWeight: '' //thick
-	        //renderOrder : renderOrders.label, pickOrder:renderOrders.label,
+	        fontWeight: '',
+	        //thick
+	        renderOrder: renderOrders.label,
+	        pickOrder: renderOrders.label
 	        //useDepth : true ,//暂时不遮挡
 	      }));
 	      this.titleLabel.sprite.material.depthTest = false;
@@ -42423,19 +42438,20 @@
 	      group.add(this.titleLabel);
 	      this.titleLabel.position.z = titleLineHeight;
 	      this.add(group);
+	      this.setTitleVisi(this.titleLabel.parent, false, 'noPoint');
 	      this.setTitle(this.title);
 	    }
 	    {
 	      //和measure不同的是它的边是连在一起的一整条
-	      this.edge = new Mesh(voidGeometry, new MeshBasicMaterial({
-	        depthWrite: false,
-	        transparent: true,
+	      this.edge = new Mesh(voidGeometry, new DepthBasicMaterial($.extend({}, depthProps, {
 	        color: this.pathColor || '#fff',
 	        opacity: 0.5,
-	        side: 2
-	      }));
+	        side: 2,
+	        transparent: true
+	      })));
+	      //new THREE.MeshBasicMaterial({depthWrite:false, transparent:true, color:this.pathColor || '#fff', opacity:0.5, side:2}))
 	      this.add(this.edge);
-	      this.edge.renderOrder = Potree.config.renderOrders.line;
+	      this.edge.renderOrder = renderOrders.path;
 	      this.edge.name = 'pathEdge';
 	      var addHoverEvent = () => {
 	        var mouseover = e => {
@@ -42487,15 +42503,27 @@
 	    Potree.Utils.setObjectLayers(this, 'measure');
 	    this.initData(prop);
 	  }
-	  createMarkerLabel(name, hasHoverEvent) {
-	    var inf = {
+	  createMarkerLabel(text, hasHoverEvent) {
+	    var label = new TextSprite$2($.extend({}, depthProps, {
 	      sizeInfo: labelSizeInfo$1,
-	      name: name || 'label'
-	    };
-	    var label = new TextSprite$2($.extend({
-	      text: inf.name,
-	      fontsize: this.fontsize
-	    }, hasHoverEvent ? mainLabelProp$1 : subLabelProp$1, inf));
+	      name: 'markerTitle',
+	      text: text || 'aaa',
+	      fontsize: this.fontsize,
+	      renderOrder: renderOrders.label,
+	      pickOrder: renderOrders.label,
+	      backgroundColor: {
+	        r: 20,
+	        g: 20,
+	        b: 20,
+	        a: 0.3
+	      },
+	      textColor: {
+	        r: 255,
+	        g: 255,
+	        b: 255,
+	        a: 1
+	      }
+	    }));
 	    if (hasHoverEvent) {
 	      label.addEventListener('mouseover', () => {
 	        this.setSelected(true, 'label');
@@ -42507,19 +42535,22 @@
 	        this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure');
 	      });
 	    }
-	    label.visible = false;
 	    label.measure = this;
 	    label.sprite.material.depthTestWhenPick = true;
 	    Potree.Utils.setObjectLayers(label, 'measure');
+	    label.position.z = 1;
 	    return label;
 	  }
 	  updateMarker(marker, pos) {
+	    var _this$markerLabels$in;
 	    marker.position.copy(pos);
 	    marker.position.z += 0.01;
 	    var index = this.markers.indexOf(marker);
 	    if (index == 0) {
 	      this.titleLabel.parent.position.copy(pos);
+	      this.titleLabel.sprite.waitUpdate();
 	    }
+	    (_this$markerLabels$in = this.markerLabels[index]) === null || _this$markerLabels$in === void 0 || _this$markerLabels$in.sprite.waitUpdate();
 	  }
 	  setPathWidth(w) {
 	    this.halfPathWidth = w / 2;
@@ -42587,17 +42618,22 @@
 	    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
 	    if (options.index == -1) return;
 	    super.update(options); //updateEdge marker
+
+	    {
+	      var oldVisi = this.titleLabel.parent.visible;
+	      this.setTitleVisi(this.titleLabel.parent, this.markers.length > 0, 'noPoint');
+	      if (this.titleLabel.parent.visible && !oldVisi) this.titleLabel.sprite.waitUpdate();
+	    }
 	  }
 	  addMarker() {
 	    var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-	    //var index = o.index == void 0 ? this.points.length : o.index  //要当第几个
+	    var index = o.index == void 0 ? this.points.length : o.index; //要当第几个
 
 	    var marker = new Mesh(planeGeo$2, getMarkerMat('default'));
-	    marker.add(this.createMarkerLabel());
 	    setMarkerScale(marker, this.halfPathWidth);
 	    marker.markerSelectStates = {};
 	    Potree.Utils.setObjectLayers(marker, 'measure');
-	    marker.renderOrder = Potree.config.renderOrders.measureMarker;
+	    marker.renderOrder = renderOrders.marker;
 	    marker.addEventListener('click', e => {
 	      this.dispatchEvent({
 	        type: 'markerSelect',
@@ -42634,8 +42670,12 @@
 	      this.setMarkerSelected(marker, 'unclick');
 	    });
 	    super.addMarker(Object.assign(o, {
+	      index,
 	      marker
 	    }));
+	    var label = this.createMarkerLabel('');
+	    marker.add(label);
+	    this.markerLabels = [...this.markerLabels.slice(0, index), label, ...this.markerLabels.slice(index, this.points.length)];
 
 	    //this.updateEdge()
 	    return marker;
@@ -42691,13 +42731,13 @@
 	    state == 'unclick' && (marker.markerSelectStates.click = false);
 	    if (marker.markerSelectStates.click) {
 	      marker.material = getMarkerMat('drag');
-	      marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker + 2;
+	      marker.renderOrder = marker.pickOrder = renderOrders.marker + 2;
 	    } else if (marker.markerSelectStates.hover) {
 	      marker.material = getMarkerMat('delete');
-	      marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker + 1;
+	      marker.renderOrder = marker.pickOrder = renderOrders.marker + 1;
 	    } else {
 	      marker.material = getMarkerMat('default');
-	      marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker;
+	      marker.renderOrder = marker.pickOrder = renderOrders.marker;
 	    }
 
 	    //marker.selected = absoluteState
@@ -42941,12 +42981,12 @@
 	  createMeasureFromData(data) {
 	    //add 
 
-	    var measure = data.measureType == 'MulDistance Ring' ? new Prism(data) : data.measureType == 'Path' ? new Path$1(data) : new Measure$1(data);
+	    var measure = data.measureType == 'MulDistance Ring' ? new Prism(data) : data.type == 'Path' ? new Path$1(data) : new Measure$1(data);
 	    if (measure.failBuilded) {
 	      return;
 	    }
 	    viewer.scene.addMeasurement(measure);
-	    data.measureType == 'Path' && measure.setEditEnable(false);
+	    data.type == 'Path' && measure.setEditEnable(false);
 	    if (measure.guideLine) measure.guideLine.visible = false;
 	    return measure;
 	  }
@@ -43148,7 +43188,7 @@
 	    var callback = arguments.length > 1 ? arguments[1] : undefined;
 	    var cancelFun = arguments.length > 2 ? arguments[2] : undefined;
 	    var domElement = this.viewer.renderer.domElement;
-	    var measure = args.measureType == 'MulDistance Ring' ? new Prism(args) : args.measureType == 'Path' ? new Path$1(args) : new Measure$1(args);
+	    var measure = args.measureType == 'MulDistance Ring' ? new Prism(args) : args.type == 'Path' ? new Path$1(args) : new Measure$1(args);
 	    this.scene.add(measure);
 	    measure.isNew = true;
 	    this.viewer.dispatchEvent({
@@ -56248,7 +56288,7 @@
 	      this.titleLabel.parent.add(this.spot);
 	      this.updateTitlePos();
 	      this.spot.position.set(0, 0, 0);
-	      this.spot.quaternion.set(0, 0, 0, 1); //this.titleLabel.update()
+	      this.spot.quaternion.set(0, 0, 0, 1); //this.titleLabel.waitUpdate()
 	      this.line.renderOrder = renderOrders$1.line; //还原
 	    }
 	    Potree.Utils.updateVisible(this.line, 'hideTitle', !this.titleLabel.visible && onMesh ? false : true);

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
public/lib/potree/potree.js.map


+ 3 - 3
src/sdk/cover/index.js

@@ -282,7 +282,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
             if (measure.parent) {
                 //未被删除  
                 if(measure.type == 'Path'){ 
-                    bus.emit('changePoints', measure.dataset_points.map((p,i)=>{return {position:p.clone(), modelId:points_datasets[i]}}))
+                    bus.emit('changePoints', measure.dataset_points.map((p,i)=>{return {position:p.clone(), modelId:measure.points_datasets[i]}}))
                 }else{
                     bus.emit('update', [
                         measure.dataset_points.map(p => p.clone()),
@@ -1261,7 +1261,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
             
         
             let path
-            let info = {measureType : 'Path', minMarkers : 2, title:props.name}
+            let info = {type : 'Path', minMarkers : 2, title:props.name}
             if(props.points.length == 0){
 
                 path = viewer.measuringTool.startInsertion( info, () => { 
@@ -1306,7 +1306,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
                     path.setMarkerTitle(index, name)
                 },
                 changePathPoints(points){
-                    
+                    console.log('changePathPoints??????????',points)
                 },
                 changeLine({width,color,altitudeAboveGround}){
                     path.setPathWidth(width)