更新配置,能够简单运行实例.
This commit is contained in:
39
dist/PointPick.js
vendored
39
dist/PointPick.js
vendored
@@ -1,39 +0,0 @@
|
||||
"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
|
||||
Reference in New Issue
Block a user