"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var three_1 = require("three"); /** * 点选 * * @export * @param {Viewer} view * @param {number} ptx * @param {number} pty * @returns {(Mesh | undefined)} */ function PointPick(view, ptx, pty) { var raycaster = new three_1.Raycaster(); raycaster.setFromCamera({ x: (ptx / view._Width) * 2 - 1, y: -(pty / view._Height) * 2 + 1 //y轴相反 }, view.m_Camera.Camera); //https://github.com/mrdoob/three.js/issues/14128 raycaster.ray.origin.set((ptx / view._Width) * 2 - 1, -(pty / view._Height) * 2 + 1, -1).unproject(view.m_Camera.Camera); var minDis = Infinity; var minObj = undefined; view.m_Scene.children.forEach(function (obj) { if (obj instanceof three_1.Mesh) { var intersects = []; obj.raycast(raycaster, intersects); for (var _i = 0, intersects_1 = intersects; _i < intersects_1.length; _i++) { var i = intersects_1[_i]; if (i.distance < minDis) { minObj = obj; minDis = i.distance; } } } }); return minObj; } exports.PointPick = PointPick; //# sourceMappingURL=PointPick.js.map