|
@@ -17811,9 +17811,6 @@
|
|
|
*/
|
|
|
|
|
|
// /**
|
|
|
-
|
|
|
- //可能还是要用html写,因为要加按钮和图片
|
|
|
-
|
|
|
class TextSprite$2 extends Object3D {
|
|
|
//注:为了分两层控制scale,不直接extend Sprite
|
|
|
constructor() {
|
|
@@ -17863,8 +17860,6 @@
|
|
|
this.textAlign = options.textAlign || 'center';
|
|
|
this.name = options.name;
|
|
|
this.setText(options.text);
|
|
|
-
|
|
|
- //this.setText(text);
|
|
|
}
|
|
|
setText(text) {
|
|
|
if (text == void 0) text = '';
|
|
@@ -17931,7 +17926,6 @@
|
|
|
}
|
|
|
var expand = 0; //Math.max(1, Math.pow(this.fontsize / 16, 1.1)) * r // 针对英文大部分在baseLine之上所以降低一点,或者可以识别当不包含jgqp时才加这个值 . 但即使都是汉字也会不同,如"哈哈"和"粉色",前者居中后者不
|
|
|
|
|
|
- // border color
|
|
|
context.strokeStyle = 'rgba(' + this.borderColor.r + ',' + this.borderColor.g + ',' + this.borderColor.b + ',' + this.borderColor.a + ')';
|
|
|
context.lineWidth = rectBorderThick;
|
|
|
context.fillStyle = 'rgba(' + this.backgroundColor.r + ',' + this.backgroundColor.g + ',' + this.backgroundColor.b + ',' + this.backgroundColor.a + ')';
|
|
@@ -21735,7 +21729,7 @@
|
|
|
panoData.forEach((pano, index) => {
|
|
|
//let cloudPath = `${Potree.settings.urls.prefix1}/${Potree.settings.webSite}/${Potree.settings.number}/data/bundle_${Potree.settings.number}/building/uuidcloud/${pano.uuid}/cloud.js`
|
|
|
//2024.12.9: 加mapping
|
|
|
- var mapping = datasetData && Potree.settings.isLocal && datasetData.mapping || '';
|
|
|
+ var mapping = Potree.settings.isLocal && (datasetData ? datasetData.mapping : browser.urlHasValue('mapping', true)) || '';
|
|
|
mapping && (mapping += '/');
|
|
|
var cloudPath = "".concat(Potree.settings.urls.prefix1, "/").concat(mapping).concat(Potree.settings.webSite, "/").concat(Potree.settings.number, "/data/bundle_").concat(Potree.settings.number, "/building/uuidcloud/").concat(pano.uuid, "/cloud.js");
|
|
|
/* if(Potree.settings.isLocal && dataset.mapping){
|
|
@@ -42333,9 +42327,12 @@
|
|
|
this.edge.addEventListener('addHoverEvent', addHoverEvent, {
|
|
|
once: true
|
|
|
});
|
|
|
+ if (!this.isNew) {
|
|
|
+ this.edge.dispatchEvent('addHoverEvent');
|
|
|
+ }
|
|
|
}
|
|
|
{
|
|
|
- this.endCaps = getEndCaps(this);
|
|
|
+ this.endCaps = getEndCaps(this); //端点处的半圆
|
|
|
}
|
|
|
this.addEventListener('marker_dropped', e => {
|
|
|
this.updateDatasetBelong(e.index);
|
|
@@ -42463,7 +42460,7 @@
|
|
|
p2: i == 0 ? O : A
|
|
|
})).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
|
} else {
|
|
|
- var OA = new Vector3().subVectors(A, O).setZ(0).normalize();
|
|
|
+ var OA = new Vector3().subVectors(A, O).setZ(0).normalize(); //只保证俯视角度正确。(如果两点有高度差,该段四个点不会在同一平面,看起来有扭转,有的地方会肥大,但从俯视角度看是正确的。)
|
|
|
var OB = new Vector3().subVectors(B, O).setZ(0).normalize();
|
|
|
var angle = math.getAngle(OA, OB, 'z');
|
|
|
var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
|
|
@@ -42487,7 +42484,8 @@
|
|
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
|
if (options.index == -1) return;
|
|
|
super.update(options); //updateEdge marker
|
|
|
-
|
|
|
+ this.points.length <= 1 && this.updateEdge(); //补偿上一句
|
|
|
+ this.editEnable || this.updateEndCaps();
|
|
|
{
|
|
|
var oldVisi = this.titleLabel.parent.visible;
|
|
|
this.setTitleVisi(this.titleLabel.parent, this.markers.length > 0, 'noPoint');
|
|
@@ -42526,11 +42524,11 @@
|
|
|
if (this.addOrRemovePoint) {
|
|
|
//点击删除点
|
|
|
|
|
|
- //viewer.measuringTool.history.beforeChange(this)
|
|
|
+ viewer.measuringTool.history.beforeChange(this);
|
|
|
var _index = this.markers.indexOf(marker);
|
|
|
this.removeMarker(_index);
|
|
|
this.hideArrowUntilUpdate();
|
|
|
- //viewer.measuringTool.history.afterChange(this)
|
|
|
+ viewer.measuringTool.history.afterChange(this);
|
|
|
this.dispatchEvent('changed');
|
|
|
} else {
|
|
|
//点击选中点
|
|
@@ -42555,7 +42553,7 @@
|
|
|
});
|
|
|
marker.addEventListener('startDragging', e => {
|
|
|
this.isNew || this.setMarkerSelected(marker, 'click'); //选中
|
|
|
-
|
|
|
+ this.isNew || viewer.measuringTool.history.beforeChange(this);
|
|
|
this.arrows && Potree.Utils.updateVisible(this.arrows, 'dragging', false);
|
|
|
//Potree.Common.waitTool.cancel('pathUpdateArrowDelay')
|
|
|
});
|
|
@@ -42589,13 +42587,9 @@
|
|
|
//this.updateEdge()
|
|
|
return marker;
|
|
|
}
|
|
|
- setEditEnable(state) {
|
|
|
- //是否显示可修改控件
|
|
|
- this.editEnable = !!state;
|
|
|
- this.markers.forEach(e => Potree.Utils.updateVisible(e, 'editEnable', this.editEnable));
|
|
|
+ updateEndCaps() {
|
|
|
this.endCaps.forEach((e, i) => {
|
|
|
- Potree.Utils.updateVisible(e, 'editEnable', !this.editEnable);
|
|
|
- if (!state && this.points.length) {
|
|
|
+ if (this.points.length) {
|
|
|
var len = this.points.length;
|
|
|
if (len > 1) {
|
|
|
var dir = i == 0 ? new Vector3().subVectors(this.points[1], this.points[0]) : new Vector3().subVectors(this.points[len - 2], this.points[len - 1]);
|
|
@@ -42608,6 +42602,13 @@
|
|
|
e.scale.set(s, s, s);
|
|
|
}
|
|
|
});
|
|
|
+ }
|
|
|
+ setEditEnable(state) {
|
|
|
+ //是否显示可修改控件
|
|
|
+ this.editEnable = !!state;
|
|
|
+ this.markers.forEach(e => Potree.Utils.updateVisible(e, 'editEnable', this.editEnable));
|
|
|
+ this.endCaps.forEach((e, i) => Potree.Utils.updateVisible(e, 'editEnable', !this.editEnable));
|
|
|
+ state || this.updateEndCaps();
|
|
|
viewer.dispatchEvent('content_changed');
|
|
|
}
|
|
|
setAddOrRemPoint(state) {
|
|
@@ -42626,6 +42627,7 @@
|
|
|
}
|
|
|
setTitle() {
|
|
|
var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
|
+ this.title = title;
|
|
|
this.titleLabel.setText(title);
|
|
|
this.setTitleVisi(this.titleLabel.parent, title instanceof Array || title.trim() != '', 'noText');
|
|
|
viewer.dispatchEvent('content_changed');
|
|
@@ -42759,31 +42761,6 @@
|
|
|
this.fadeFar = far;
|
|
|
viewer.dispatchEvent('content_changed');
|
|
|
}
|
|
|
- reDraw() {
|
|
|
- var restMarkerCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
|
- //重新开始画
|
|
|
- super.reDraw(restMarkerCount);
|
|
|
- if (this.measureType == 'Distance') {
|
|
|
- this.shouldShowHorVerGuide = false;
|
|
|
- this.setEdgesDisplay(false);
|
|
|
- }
|
|
|
- if (this.showArea) {
|
|
|
- this.area = {
|
|
|
- value: 0
|
|
|
- };
|
|
|
- this.areaLabel && Utils.updateVisible(this.areaLabel, 'setVisible', false);
|
|
|
- }
|
|
|
- if (this.totalDisLabel && this.showTotalDis) {
|
|
|
- Utils.updateVisible(this.totalDisLabel, 'setVisible', false);
|
|
|
- }
|
|
|
- viewer.inputHandler.dispatchEvent({
|
|
|
- type: 'measuring',
|
|
|
- v: true,
|
|
|
- cause: 'reDraw',
|
|
|
- object: this,
|
|
|
- situation: 'dragging'
|
|
|
- });
|
|
|
- }
|
|
|
dispose() {
|
|
|
super.dispose();
|
|
|
this.titleLabel.dispose();
|
|
@@ -42929,6 +42906,7 @@
|
|
|
Path$1.prototype.cloneMarker = Measure$1.prototype.cloneMarker;
|
|
|
Path$1.prototype.updateDatasetBelong = Measure$1.prototype.updateDatasetBelong;
|
|
|
Path$1.prototype.getTotalDistance = Measure$1.prototype.getTotalDistance;
|
|
|
+ Path$1.prototype.reDraw = Measure$1.prototype.reDraw;
|
|
|
|
|
|
/*
|
|
|
|
|
@@ -43300,6 +43278,10 @@
|
|
|
this.history = new History({
|
|
|
applyData: data => {
|
|
|
if (data.measure.parent && data.measure.visible) {
|
|
|
+ if (viewer.scene.measurements.indexOf(data.measure) != viewer.scene.measurements.length - 1) {
|
|
|
+ //非最新加的
|
|
|
+ if (data.points.length < data.measure.minMarkers) return; //不允许减少点数至minMarkers以下
|
|
|
+ }
|
|
|
data = Potree.Common.CloneObject(data); //避免使用后更改数据又被使用
|
|
|
data.measure.reDraw();
|
|
|
data.measure.initData(data);
|
|
@@ -43617,11 +43599,11 @@
|
|
|
//marker全可见
|
|
|
measure.cloneMarker(0, 3);
|
|
|
} else {
|
|
|
- measure.markers[length].visible = false;
|
|
|
+ Potree.Utils.updateVisible(measure.markers[length], 'adding', false);
|
|
|
measure instanceof Path$1 || (measure.edges[length].visible = false);
|
|
|
}
|
|
|
measure instanceof Path$1 || (measure.edges[length - 1].visible = true);
|
|
|
- measure.markers[length - 1].visible = true;
|
|
|
+ Potree.Utils.updateVisible(measure.markers[length - 1], 'adding', true);
|
|
|
marker.isDragging = true;
|
|
|
this.history.afterChange(measure);
|
|
|
measure.continueDrag(marker, e);
|
|
@@ -43682,7 +43664,7 @@
|
|
|
measure.isNew = false;
|
|
|
var length = measure.points.length;
|
|
|
if (length) {
|
|
|
- measure.markers[length - 1].visible = true;
|
|
|
+ Potree.Utils.updateVisible(measure.markers[length - 1], 'adding', true);
|
|
|
if (!(measure instanceof Path$1)) {
|
|
|
measure.edges[length - 1].visible = !!measure.closed;
|
|
|
measure.edges.forEach(edge => {
|
|
@@ -43735,9 +43717,6 @@
|
|
|
if (e.measure && e.measure != measure || !viewer.scene.measurements.includes(measure) || !measure.isNew) {
|
|
|
return; //若指定了退出的measure但和该measure不一致,就返回
|
|
|
}
|
|
|
- if (e.remove || e.type == 'cancel_insertions' && !e.dontRemove) {
|
|
|
- viewer.scene.removeMeasurement(measure);
|
|
|
- }
|
|
|
measure.editStateChange(false);
|
|
|
measure.cannotConfirmNormal = false; //一些dropMarker中的句子
|
|
|
measure.guideLine && (measure.guideLine.visible = false);
|
|
@@ -43759,6 +43738,9 @@
|
|
|
});
|
|
|
//}
|
|
|
this.viewer.inputHandler.drag && (this.viewer.inputHandler.drag.object = null);
|
|
|
+ if (e.remove || e.type == 'cancel_insertions' && !e.dontRemove) {
|
|
|
+ viewer.scene.removeMeasurement(measure);
|
|
|
+ }
|
|
|
};
|
|
|
this.viewer.addEventListener('cancel_insertions', Exit);
|
|
|
|
|
@@ -43816,7 +43798,7 @@
|
|
|
measure.dragMarker(e);
|
|
|
measure.dropMarker(e);
|
|
|
if (measure.maxMarkers > 1) {
|
|
|
- measure.markers[1].visible = false;
|
|
|
+ Potree.Utils.updateVisible(measure.markers[1], 'adding', false);
|
|
|
measure instanceof Path$1 || (measure.edges[1].visible = false);
|
|
|
}
|
|
|
if (measure.closed && !measure.isRect) {
|
|
@@ -43886,19 +43868,17 @@
|
|
|
endDragFun,
|
|
|
notPressMouse: true
|
|
|
});
|
|
|
+ Potree.Utils.updateVisible(marker, 'adding', false);
|
|
|
var I = viewer.inputHandler.intersect && (viewer.inputHandler.intersect.orthoIntersect || viewer.inputHandler.intersect.location);
|
|
|
if (I) {
|
|
|
measure.dragChange(I.clone(), measure.points.length - 1); //使最后一个点在鼠标处
|
|
|
}
|
|
|
- /* if(measure.markers.length == 1){
|
|
|
- Common.updateVisible(marker, ,false)
|
|
|
- } */
|
|
|
args.isRect || measure instanceof Path$1 || (measure.edges[measure.points.length - 1].visible = false);
|
|
|
|
|
|
//measure.continueDrag(measure.markers[measure.points.length-1], o )
|
|
|
};
|
|
|
measure.addEventListener('changeByHistory', changeByHistory);
|
|
|
- this.viewer.scene.addMeasurement(measure);
|
|
|
+ args.resume || this.viewer.scene.addMeasurement(measure);
|
|
|
return measure;
|
|
|
}
|
|
|
render() {
|