|
@@ -64,11 +64,18 @@ export default class Sprite extends THREE.Mesh{
|
|
|
}
|
|
|
|
|
|
realVisible(){
|
|
|
+
|
|
|
+ if(!this.visible && this.unvisibleReasons && this.unvisibleReasons.some(e=>e != 'unableCompute')){
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
let v = true
|
|
|
- let parent = this
|
|
|
- let lastParent
|
|
|
+ let parent = this.parent
|
|
|
+ let lastParent = this
|
|
|
+
|
|
|
while(parent){
|
|
|
- if(parent.visible === false){
|
|
|
+ if(parent.visible === false ){
|
|
|
v = false
|
|
|
break;
|
|
|
}
|
|
@@ -120,7 +127,7 @@ export default class Sprite extends THREE.Mesh{
|
|
|
|
|
|
|
|
|
let r1 = Potree.Utils.getPos2d(center, camera, viewer.renderArea, e.viewport);
|
|
|
- if(!r1.trueSide)return //Potree.Utils.updateVisible(this, 'notTrueSide', false); 但这句会使realVisible为false从而无法更新//console.error('!r1.trueSide') //中心点如果在背面直接不渲染了
|
|
|
+ if(!r1.trueSide)return Potree.Utils.updateVisible(this, 'unableCompute', false);// 但这句会使realVisible为false从而无法更新//console.error('!r1.trueSide') //中心点如果在背面直接不渲染了
|
|
|
|
|
|
let r2, point2
|
|
|
|
|
@@ -140,7 +147,8 @@ export default class Sprite extends THREE.Mesh{
|
|
|
}else{
|
|
|
let dis = r2.pos.distanceTo(r1.pos)
|
|
|
if(dis == 0){
|
|
|
- console.log('dis == 0')
|
|
|
+ //console.log('dis == 0')
|
|
|
+ Potree.Utils.updateVisible(this, 'unableCompute', false)
|
|
|
return
|
|
|
break
|
|
|
}
|
|
@@ -156,7 +164,7 @@ export default class Sprite extends THREE.Mesh{
|
|
|
//console.log(p2StateHistory,len)
|
|
|
|
|
|
if(!r2.trueSide){
|
|
|
- return //Potree.Utils.updateVisible(this, 'notTrueSide', false), console.log(' !r2.trueSide', )
|
|
|
+ return Potree.Utils.updateVisible(this, 'unableCompute', false)//, console.log(' !r2.trueSide', )
|
|
|
}
|
|
|
//Potree.Utils.updateVisible(this, 'notTrueSide', true)
|
|
|
|