|
@@ -82,6 +82,7 @@ function _3dLine(r2x, r3x, ret) {
|
|
|
ret_t[i][1] = r2x_t[r3x_t[i][1]];
|
|
|
}
|
|
|
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -500,6 +501,7 @@ function _calculateMiddlePoint(test, scaleTime, scaleTimeH) {
|
|
|
maxY = Math.max(maxY, test[i].line[j][1]);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return [
|
|
|
((maxX - minX) / 2 + minX) * scaleTime,
|
|
|
((maxY - minY) / 2 + minY) * scaleTimeH
|
|
@@ -572,25 +574,48 @@ function isInFace(current, test, scaleTime, scaleTimeH) {
|
|
|
* @param {缩放的大小} distance
|
|
|
* @param {墙体线段} lineArr
|
|
|
*/
|
|
|
-function updateLineArr(distance, lineArr, _3dPoint, tag) {
|
|
|
+function updateLineArr(distance, lineArr, _3dPoint, tag, verticalArr,selectArr) {
|
|
|
// deltaX:值为负的(-1),则表示滚轮向左滚动。值为正的(1),则表示滚轮向右滚动。
|
|
|
// deltaY:值为负的(-1),则表示滚轮向下滚动。值为正的(1),则表示滚轮向上滚动。
|
|
|
// deltaFactor:增量因子。通过 deltaFactor * deltaX 或者 deltaFactor * deltaY 可以得到浏览器实际的滚动距离。
|
|
|
// distance = -10
|
|
|
|
|
|
- if (tag) {
|
|
|
- _3dPoint[2][0] += distance
|
|
|
- _3dPoint[3][0] += distance
|
|
|
- _3dPoint[((_3dPoint.length) / 2 + 2)][0] += distance
|
|
|
- _3dPoint[((_3dPoint.length) / 2 + 3)][0] += distance
|
|
|
- } else {
|
|
|
- _3dPoint[1][1] += distance
|
|
|
- _3dPoint[2][1] += distance
|
|
|
- _3dPoint[((_3dPoint.length) / 2 + 1)][1] += distance
|
|
|
- _3dPoint[((_3dPoint.length) / 2 + 2)][1] += distance
|
|
|
- }
|
|
|
+ for (let i = 0; i < selectArr.length; i++) {
|
|
|
+ console.log('====================================');
|
|
|
+ console.log(_3dPoint[selectArr[i]]);
|
|
|
+ console.log('====================================');
|
|
|
+
|
|
|
+ }
|
|
|
+ console.log('====================================');
|
|
|
+ console.log(selectArr);
|
|
|
+ console.log('====================================');
|
|
|
+ var xl = [1*distance,0*distance,0*distance]
|
|
|
+ for (let i = 0; i < verticalArr.length; i++) {
|
|
|
+
|
|
|
+ // _3dPoint[i] = [_3dPoint[i][0]+xl[0],_3dPoint[i][1]+xl[1],_3dPoint[i][2]+xl[2]]
|
|
|
+ // _3dPoint[i] = [_3dPoint[i][0]+xl[0],_3dPoint[i][1]+xl[1],_3dPoint[i][2]+xl[2]]
|
|
|
+ // _3dPoint[verticalArr[i]] = [_3dPoint[verticalArr[i]]['3d_point1']]
|
|
|
+ console.log('====================================');
|
|
|
+ console.log(_3dPoint[verticalArr[i]]);
|
|
|
+ console.log('====================================');
|
|
|
+ }
|
|
|
+
|
|
|
+ // if (tag) {
|
|
|
+ // _3dPoint[2][0] += distance
|
|
|
+ // _3dPoint[3][0] += distance
|
|
|
+ // _3dPoint[((_3dPoint.length) / 2 + 2)][0] += distance
|
|
|
+ // _3dPoint[((_3dPoint.length) / 2 + 3)][0] += distance
|
|
|
+ // } else {
|
|
|
+ // _3dPoint[1][1] += distance
|
|
|
+ // _3dPoint[2][1] += distance
|
|
|
+ // _3dPoint[((_3dPoint.length) / 2 + 1)][1] += distance
|
|
|
+ // _3dPoint[((_3dPoint.length) / 2 + 2)][1] += distance
|
|
|
+ // }
|
|
|
rx1 = _3dLine(r2x, r3x, ret);
|
|
|
|
|
|
+ console.log('====================================');
|
|
|
+ console.log(rx1);
|
|
|
+ console.log('====================================');
|
|
|
lineArr = _3dTo2d(
|
|
|
make_matrix_from_quat([
|
|
|
0.008515,
|
|
@@ -617,26 +642,33 @@ function updateSelectArr(lineArr, idxArr) {
|
|
|
return ret
|
|
|
}
|
|
|
|
|
|
-function _culaculateFaceArr(lineArr, faceArr) {
|
|
|
+function _culaculateFaceArr(lineArr, faceArr, _3dLine) {
|
|
|
var ret = [];
|
|
|
+ var ret1 = []
|
|
|
for (var i = 0; i < faceArr.length; i++) {
|
|
|
var item = [];
|
|
|
+ var item1 = []
|
|
|
for (var j = 0; j < faceArr[i].length; j++) {
|
|
|
+ item1.push(_3dLine[faceArr[i][j]]['3d_id'])
|
|
|
item.push(lineArr[faceArr[i][j]]);
|
|
|
+ // item1.push(_3dLine)
|
|
|
}
|
|
|
ret.push({
|
|
|
id: i,
|
|
|
arr: item
|
|
|
});
|
|
|
+ ret1.push(item1)
|
|
|
}
|
|
|
|
|
|
- return ret;
|
|
|
+ return [ret,ret1];
|
|
|
}
|
|
|
|
|
|
-function selectWhichFace(lineArr, faceArr, current, scaleTime, scaleTimeH) {
|
|
|
- var allFaceArr = _culaculateFaceArr(lineArr, faceArr);
|
|
|
+function selectWhichFace(lineArr, faceArr, current, _3dLine, scaleTime, scaleTimeH) {
|
|
|
+ var retArr = _culaculateFaceArr(lineArr, faceArr,_3dLine);
|
|
|
+ var allFaceArr = retArr[0]
|
|
|
+ var all3DArr = retArr[1]
|
|
|
+
|
|
|
var ret = 0;
|
|
|
- var tempRet = 0;
|
|
|
var minDist =
|
|
|
faceArr &&
|
|
|
_calculateMiddlePointDistance(
|
|
@@ -662,7 +694,9 @@ function selectWhichFace(lineArr, faceArr, current, scaleTime, scaleTimeH) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return allFaceArr[ret];
|
|
|
+
|
|
|
+
|
|
|
+ return [allFaceArr[ret],all3DArr[ret]];
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -670,7 +704,8 @@ function selectWhichFace(lineArr, faceArr, current, scaleTime, scaleTimeH) {
|
|
|
* @param {array} faceLine 面的索引数组
|
|
|
* @return {object} verticalLineData
|
|
|
*/
|
|
|
-function findverticalLine(faceLine) {
|
|
|
+function findverticalLine(faceLine,n_panorama_line_3d) {
|
|
|
+
|
|
|
let lineAry = [];
|
|
|
let verticalLineData = {
|
|
|
lineAry: [],
|