|
@@ -2959,7 +2959,12 @@ async compute(dataList) {
|
|
{//KJ-iUrPonbhCQo 大的场景有很多柜子时,groups的前两个元素很可能相隔很远,导致匹配不到柜子。
|
|
{//KJ-iUrPonbhCQo 大的场景有很多柜子时,groups的前两个元素很可能相隔很远,导致匹配不到柜子。
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+ let disScores = [], bestDisSquared = 2
|
|
|
|
+ for (let i = 0; i < groups.length - 1; i++) {
|
|
|
|
+ let dis = groups[i][0].pano.position.distanceToSquared(groups[i+1][0].pano.position)
|
|
|
|
+ let score = 1/Math.max(dis - bestDisSquared, 0.05) + (groups[i].length + groups[i+1].length)
|
|
|
|
+ disScores.push()
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < groups.length - 1; i++) {
|
|
for (let i = 0; i < groups.length - 1; i++) {
|
|
@@ -3519,6 +3524,16 @@ async compute(dataList) {
|
|
{
|
|
{
|
|
this.removedDatas = {}
|
|
this.removedDatas = {}
|
|
let panoIds = Object.keys(this.datas)
|
|
let panoIds = Object.keys(this.datas)
|
|
|
|
+
|
|
|
|
+ let panoIds = Object.keys(this.datas).filter(id=>{
|
|
|
|
+ if(!player.model.panos.index[id]){//排除数据错误
|
|
|
|
+ this.removedDatas[id] = this.datas[id]
|
|
|
|
+ delete this.datas[id]
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ return true
|
|
|
|
+ })
|
|
|
|
+
|
|
let len = panoIds.length
|
|
let len = panoIds.length
|
|
for (let i = 0; i < len; i++) {
|
|
for (let i = 0; i < len; i++) {
|
|
let pano0 = player.model.panos.index[panoIds[i]]
|
|
let pano0 = player.model.panos.index[panoIds[i]]
|