|
@@ -42516,6 +42516,7 @@
|
|
line.addEventListener('drag', e => {
|
|
line.addEventListener('drag', e => {
|
|
var _e$intersect;
|
|
var _e$intersect;
|
|
if (this.editEnable && (_e$intersect = e.intersect) !== null && _e$intersect !== void 0 && _e$intersect.location) {
|
|
if (this.editEnable && (_e$intersect = e.intersect) !== null && _e$intersect !== void 0 && _e$intersect.location) {
|
|
|
|
+ //一旦用户拖动了title,title就固定了,不再随着path居中
|
|
this.updateTitlePos(e.intersect.location);
|
|
this.updateTitlePos(e.intersect.location);
|
|
this.dispatchEvent({
|
|
this.dispatchEvent({
|
|
type: 'titlePosChanged',
|
|
type: 'titlePosChanged',
|
|
@@ -42706,23 +42707,25 @@
|
|
var sideVec = void 0; //该点两边对应的向量
|
|
var sideVec = void 0; //该点两边对应的向量
|
|
if (i == 0 || i == len - 1) {
|
|
if (i == 0 || i == len - 1) {
|
|
sideVec = new Vector3().copy(math.getNormal2d({
|
|
sideVec = new Vector3().copy(math.getNormal2d({
|
|
- p1: O,
|
|
|
|
- p2: A || B
|
|
|
|
|
|
+ p1: i == 0 ? B : O,
|
|
|
|
+ p2: i == 0 ? O : A
|
|
})).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
})).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
} else {
|
|
} 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 OB = new Vector3().subVectors(B, O).setZ(0).normalize();
|
|
- var angle = Math.acos(MathUtils.clamp(OA.dot(OB), -1, 1)); //小于180度的那边的角度
|
|
|
|
|
|
+ //let angle = Math.acos( THREE.Math.clamp( OA.dot( OB ) , - 1, 1 ) )//小于180度的那边的角度
|
|
|
|
+ var angle = math.getAngle(OA, OB, 'z');
|
|
var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
|
|
var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
|
|
- sideVec = new Vector3().addVectors(OA, OB).normalize().multiplyScalar(midVecLength); //角平分线
|
|
|
|
- }
|
|
|
|
- if (lastSideVec && sideVec.dot(lastSideVec) < 0) {
|
|
|
|
- sideVec.negate();
|
|
|
|
|
|
+ sideVec = new Vector3().addVectors(OA, OB).normalize().multiplyScalar(midVecLength); //角平分线 ( 和上一个方向保持在同一侧,故而顺时针和逆时针方向不同 )
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /* if(lastSideVec && sideVec.dot(lastSideVec) < 0){//和上一个方向保持在同一侧
|
|
|
|
+ sideVec.negate()
|
|
|
|
+ } */
|
|
|
|
+
|
|
var P1 = new Vector3().addVectors(O, sideVec);
|
|
var P1 = new Vector3().addVectors(O, sideVec);
|
|
var P2 = new Vector3().subVectors(O, sideVec);
|
|
var P2 = new Vector3().subVectors(O, sideVec);
|
|
- posArr.push(P1, P2); //这两点的内外侧顺序不定
|
|
|
|
-
|
|
|
|
|
|
+ posArr.push(P1, P2);
|
|
if (i < len - 1) {
|
|
if (i < len - 1) {
|
|
faceArr.push([i * 2, i * 2 + 1, i * 2 + 3], [i * 2, i * 2 + 3, i * 2 + 2]); //每一段两个三角形 013 032
|
|
faceArr.push([i * 2, i * 2 + 1, i * 2 + 3], [i * 2, i * 2 + 3, i * 2 + 2]); //每一段两个三角形 013 032
|
|
}
|
|
}
|
|
@@ -42773,7 +42776,7 @@
|
|
});
|
|
});
|
|
});
|
|
});
|
|
marker.addEventListener('click', e => {
|
|
marker.addEventListener('click', e => {
|
|
- if (this.isNew) return;
|
|
|
|
|
|
+ if (this.isNew || e.button !== MOUSE.LEFT) return;
|
|
if (this.addOrRemovePoint) {
|
|
if (this.addOrRemovePoint) {
|
|
//点击删除点
|
|
//点击删除点
|
|
|
|
|