|
@@ -17436,7 +17436,8 @@
|
|
|
this.sizeInfo = options.sizeInfo;
|
|
|
this.dontFixOrient = options.dontFixOrient;
|
|
|
this.options = options;
|
|
|
- this.position.y = options.disToLine || 0; //离线距离
|
|
|
+ //this.position.y = options.disToLine || 0 //离线距离
|
|
|
+ options.transform2D && (this.position.x = options.transform2D.x, this.position.y = options.transform2D.y); //偏移
|
|
|
|
|
|
this.matrixAutoUpdate = false;
|
|
|
this.matrixMap = new Map();
|
|
@@ -17861,6 +17862,7 @@
|
|
|
this.margin = options.margin;
|
|
|
this.textAlign = options.textAlign || 'center';
|
|
|
this.name = options.name;
|
|
|
+ this.transform2Dpercent = options.transform2Dpercent;
|
|
|
this.setText(options.text);
|
|
|
}
|
|
|
setText(text) {
|
|
@@ -17970,7 +17972,10 @@
|
|
|
this.sprite.material.map = texture;
|
|
|
var oldScale = this.sprite.scale.clone();
|
|
|
this.sprite.scale.set(spriteWidth * 0.01 / r, spriteHeight * 0.01 / r, 1.0);
|
|
|
- oldScale.equals(this.sprite.scale) || this.sprite.waitUpdate(); //重新计算各个viewport的matrix
|
|
|
+ if (!oldScale.equals(this.sprite.scale)) {
|
|
|
+ this.updateTransform2D();
|
|
|
+ this.sprite.waitUpdate(); //重新计算各个viewport的matrix
|
|
|
+ }
|
|
|
}
|
|
|
roundRect(ctx, x, y, w, h, r) {
|
|
|
ctx.beginPath();
|
|
@@ -17988,6 +17993,14 @@
|
|
|
ctx.fill();
|
|
|
ctx.stroke();
|
|
|
}
|
|
|
+ updateTransform2D() {
|
|
|
+ if (this.transform2Dpercent) {
|
|
|
+ ['x', 'y'].forEach(axis => {
|
|
|
+ var percent = this.transform2Dpercent[axis];
|
|
|
+ this.sprite.position.y = this.sprite.scale.y * percent;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
dispose() {
|
|
|
this.sprite.material.uniforms.map.value.dispose();
|
|
|
this.parent && this.parent.remove(this);
|
|
@@ -22527,16 +22540,17 @@
|
|
|
path: {
|
|
|
label: labelorder,
|
|
|
edge: labelorder,
|
|
|
- line: labelorder - 1,
|
|
|
- marker: labelorder
|
|
|
+ line: labelorder,
|
|
|
+ //会被edge遮住一些,不过无碍
|
|
|
+ marker: labelorder + 1 //cover edge
|
|
|
},
|
|
|
tag: {
|
|
|
label: labelorder,
|
|
|
spot: labelorder,
|
|
|
line: labelorder - 1,
|
|
|
onMesh: {
|
|
|
- line: labelorder - 1,
|
|
|
- spot: labelorder - 2
|
|
|
+ line: labelorder,
|
|
|
+ spot: labelorder - 1
|
|
|
}
|
|
|
},
|
|
|
magnifier: 50
|
|
@@ -40786,7 +40800,7 @@
|
|
|
},
|
|
|
renderOrder: Potree.config.renderOrders.measureLabel,
|
|
|
pickOrder: Potree.config.renderOrders.measureLabel,
|
|
|
- disToLine: -0.15,
|
|
|
+ transform2D: [0, -0.15],
|
|
|
useDepth: true,
|
|
|
// 2023.10 尽量不让数字被挡住
|
|
|
clipDistance: 10,
|
|
@@ -40819,7 +40833,7 @@
|
|
|
fontsize: 14 * textSizeRatio,
|
|
|
renderOrder: Potree.config.renderOrders.measureLabelSub,
|
|
|
pickOrder: Potree.config.renderOrders.measureLabelSub,
|
|
|
- disToLine: -0.13
|
|
|
+ transform2D: [0, -0.13]
|
|
|
};
|
|
|
var angle = MathUtils.degToRad(5); //显示水平垂直辅助线的最小角度
|
|
|
var guideShowMinAngle = {
|
|
@@ -41676,7 +41690,7 @@
|
|
|
var centerLabel = new TextSprite$2($.extend({}, mainLabelProp, {
|
|
|
sizeInfo: labelSizeInfo,
|
|
|
name,
|
|
|
- disToLine: 0,
|
|
|
+ transform2D: null,
|
|
|
fontsize: 16 * textSizeRatio
|
|
|
}));
|
|
|
centerLabel.addEventListener('mouseover', () => {
|
|
@@ -42249,7 +42263,11 @@
|
|
|
renderOrder: Potree.config.renderOrders.path.label,
|
|
|
pickOrder: Potree.config.renderOrders.path.label,
|
|
|
clipDistance: 10,
|
|
|
- fadeFar: this.fadeFar
|
|
|
+ fadeFar: this.fadeFar,
|
|
|
+ transform2Dpercent: {
|
|
|
+ x: 0,
|
|
|
+ y: 0.5
|
|
|
+ } //向上移动一半
|
|
|
}));
|
|
|
this.titleLabel.sprite.material.depthTest = false;
|
|
|
var line = LineDraw.createFatLine([new Vector3(0, 0, 0), new Vector3(0, 0, titleLineHeight)], Object.assign({}, depthProps, {
|
|
@@ -42432,7 +42450,11 @@
|
|
|
b: 0,
|
|
|
a: 1
|
|
|
},
|
|
|
- fadeFar: this.fadeFar
|
|
|
+ fadeFar: this.fadeFar,
|
|
|
+ transform2D: {
|
|
|
+ x: 0,
|
|
|
+ y: 0.3
|
|
|
+ } //朝上偏移一些 配合最外层z混合增高
|
|
|
}));
|
|
|
if (hasHoverEvent) {
|
|
|
label.addEventListener('mouseover', () => {
|
|
@@ -42457,7 +42479,7 @@
|
|
|
var index = this.markers.indexOf(marker);
|
|
|
if (this.markerLabels[index]) {
|
|
|
this.markerLabels[index].position.copy(pos);
|
|
|
- this.markerLabels[index].position.z += 1;
|
|
|
+ this.markerLabels[index].position.z += 0.2; //混合增高
|
|
|
this.markerLabels[index].updatePose();
|
|
|
}
|
|
|
}
|
|
@@ -56602,7 +56624,11 @@
|
|
|
//thick
|
|
|
renderOrder: Potree.config.renderOrders.tag.label,
|
|
|
pickOrder: Potree.config.renderOrders.tag.label,
|
|
|
- useDepth: true
|
|
|
+ useDepth: true,
|
|
|
+ transform2Dpercent: {
|
|
|
+ x: 0,
|
|
|
+ y: 0.5
|
|
|
+ } //向上移动一半
|
|
|
})); //更新sprite时,实际更新的是root: spot的矩阵
|
|
|
this.setTitle(this.title);
|
|
|
this.updateTitlePos();
|
|
@@ -56782,7 +56808,7 @@
|
|
|
viewer.dispatchEvent('content_changed');
|
|
|
}
|
|
|
updateTitlePos() {
|
|
|
- this.onMesh || (this.titleLabel.position.y = titleHeight.uponSpot + (this.spot.scale.x + this.titleLabel.sprite.scale.y) / 2);
|
|
|
+ this.onMesh || (this.titleLabel.position.y = titleHeight.uponSpot + this.spot.scale.x / 2);
|
|
|
}
|
|
|
changeMap(url) {
|
|
|
var map = texLoader$8.load(url, () => {
|