function ObjectSelect(_scene, _camera) {
|
var raycaster = new THREE.Raycaster();
|
var mouse = new THREE.Vector2();
|
var selectedObjects = [];
|
/****************************************************************************************************************************
|
* 外包围处理*
|
* @type {THREE.OutlinePass}
|
*/
|
|
window.addEventListener( 'click', onMouseClick);
|
window.addEventListener('dblclick', onMouseDbClick);
|
|
function onMouseClick(event) {
|
var x, y;
|
if (event.changedTouches) {
|
x = event.changedTouches[0].pageX;
|
y = event.changedTouches[0].pageY;
|
} else {
|
x = event.clientX;
|
y = event.clientY;
|
}
|
mouse.x = (x/ window.innerWidth) * 2 - 1;
|
mouse.y = -(y/ window.innerHeight) * 2 + 1;
|
raycaster.setFromCamera(mouse, _camera);
|
var intersects = raycaster.intersectObjects([_scene], true);
|
|
if (intersects.length == 0) {
|
$("#label").attr("style", "display:none;");//隐藏说明性标签
|
return;
|
}
|
if (intersects[0].object.name == "地面" || (intersects[0].object.name == "") || (intersects[0].object.name == "墙面")) {
|
$("#label").attr("style", "display:none;");//隐藏说明性标签
|
selectedObjects.pop();
|
} else if (intersects[0].object.type == "StoreSign" ||intersects[0].object.type == "Store" || intersects[0].object.type == "StoreGroup"||intersects[0].object.type=='StoreGoods') {
|
$("#label").attr("style", "display:block;");// 显示说明性标签
|
$("#label").css({left: x, top: y - 40});// 修改标签的位置
|
let type=intersects[0].object.type;
|
let no=intersects[0].object.uuid;
|
let dataShow=new DataShow(type,no);
|
selectedObjects.pop();
|
selectedObjects.push(intersects[0].object);
|
$("#label").html(dataShow.showHint());// 显示模型信
|
} else {
|
$("#label").attr("style", "display:none;");//隐藏说明性标签
|
|
|
}
|
}
|
|
function onMouseDbClick(event) {
|
var x, y;
|
x = event.clientX;
|
y = event.clientY;
|
mouse.x = (x / window.innerWidth) * 2 - 1;
|
mouse.y = -(y / window.innerHeight) * 2 + 1;
|
raycaster.setFromCamera(mouse, _camera);
|
var intersects = raycaster.intersectObjects([_scene], true);
|
|
if (intersects.length == 0) {
|
$("#label").attr("style", "display:none;");//隐藏说明性标签
|
return;
|
}
|
if (intersects[0].object.name == "地面" || (intersects[0].object.name == "") || (intersects[0].object.name == "墙面")) {
|
$("#label").attr("style", "display:none;");//隐藏说明性标签
|
selectedObjects.pop();
|
} else if (intersects[0].object.type == "Store" || intersects[0].object.type == "StoreGroup") {
|
let params = "type=" + intersects[0].object.type + "&no=" + intersects[0].object.uuid;
|
|
} else {
|
$("#label").attr("style", "display:block;");// 显示说明性标签
|
$("#label").css({left: x, top: y - 40});// 修改标签的位置
|
$("#label").text(intersects[0].object.name);// 显示模型信息
|
|
selectedObjects.pop();
|
selectedObjects.push(intersects[0].object);
|
}
|
}
|
}
|