Tour-360 / tour-player

Virual tour player
http://tour-player.herokuapp.com
52 stars 19 forks source link

Баг с прокликиванием стрелки #464

Closed Borodin closed 3 years ago

Borodin commented 3 years ago

Tour.mousManager.getVector = function(event){ var vector = new THREE.Vector2(); vector.x = (event.clientX / window.innerWidth) 2 - 1; vector.y = -(event.clientY / window.innerHeight) 2 + 1; return vector; }

Tour.mousManager.check = function(event){ var mouse = this.getVector(event);

var raycaster = new THREE.Raycaster();
raycaster.setFromCamera(mouse, Tour.camera);
var intersects = raycaster.intersectObjects(Tour.scene.children, true);

intersects = intersects.sort(function(a, b){
    return (b.object._onclick?1:0) - (a.object._onclick?1:0) || a.distance - b.distance;
}).shift();

var obj = intersects && intersects.object;

if(obj){
    if(obj._onhover){
        if(this.target != obj){
            this.target && this.target._onover && this.target._onover();
            this.target = obj;
            obj._onhover();
            obj._title && UI.tooltip.setTitle(obj._title)
        }
    }else{
        this.target && this.target._onover && this.target._onover();
        this.target = false;
    }

    UI.layout.setActive(!!obj._onclick);
    UI.tooltip.setVisible(!!obj._title);
    obj._title && UI.tooltip.setPosition(event.clientX, event.clientY)
}

}

Tour.mousManager.onMouseUp = function(event){ this.check(event); if(this.getVector(event).distanceTo(this.startMouse) < 0.01){ this.target && this.target._onclick && this.target._onclick(event); } }

Tour.mousManager.onMouseDown = function(event){ this.move = false; this.startMouse = this.getVector(event); }