更新编译输出为es5支持老旧的浏览器
This commit is contained in:
94
dist/GeUtils.js
vendored
94
dist/GeUtils.js
vendored
@@ -1,8 +1,8 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const THREE = require("three");
|
||||
const three_1 = require("three");
|
||||
const Matrix2_1 = require("./Matrix2");
|
||||
var THREE = require("three");
|
||||
var three_1 = require("three");
|
||||
var Matrix2_1 = require("./Matrix2");
|
||||
exports.cZeroVec = new THREE.Vector3();
|
||||
exports.cXAxis = new THREE.Vector3(1, 0, 0);
|
||||
exports.cYAxis = new THREE.Vector3(0, 1, 0);
|
||||
@@ -20,7 +20,8 @@ function rotatePoint(pt, ang) {
|
||||
return pt;
|
||||
}
|
||||
exports.rotatePoint = rotatePoint;
|
||||
function equaln(v1, v2, fuzz = 1e-3) {
|
||||
function equaln(v1, v2, fuzz) {
|
||||
if (fuzz === void 0) { fuzz = 1e-3; }
|
||||
return Math.abs(v1 - v2) < fuzz;
|
||||
}
|
||||
exports.equaln = equaln;
|
||||
@@ -28,11 +29,12 @@ function equal(v1, v2) {
|
||||
return v1.distanceToSquared(v2) < 1e-8;
|
||||
}
|
||||
exports.equal = equal;
|
||||
function fixAngle(an, fixAngle, fuzz = 0.1) {
|
||||
function fixAngle(an, fixAngle, fuzz) {
|
||||
if (fuzz === void 0) { fuzz = 0.1; }
|
||||
if (an < 0)
|
||||
an += Math.PI * 2;
|
||||
an += fuzz;
|
||||
let rem = an % fixAngle;
|
||||
var rem = an % fixAngle;
|
||||
if (rem < fuzz * 2) {
|
||||
an -= rem;
|
||||
}
|
||||
@@ -61,7 +63,7 @@ exports.polar = polar;
|
||||
function angle(v) {
|
||||
if (equaln(v.y, 0) && v.x > 0)
|
||||
return 0;
|
||||
let angle = Math.atan2(v.y, v.x);
|
||||
var angle = Math.atan2(v.y, v.x);
|
||||
if (angle < 0)
|
||||
angle += Math.PI * 2;
|
||||
return angle;
|
||||
@@ -75,14 +77,15 @@ exports.angle = angle;
|
||||
* @param {THREE.Vector3} [ref] 参考向量,如果为世界坐标系则为0,0,1
|
||||
* @returns
|
||||
*/
|
||||
function angleTo(v1, v2, ref = new THREE.Vector3(0, 0, 1)) {
|
||||
function angleTo(v1, v2, ref) {
|
||||
if (ref === void 0) { ref = new THREE.Vector3(0, 0, 1); }
|
||||
if (!ref.equals(new three_1.Vector3(0, 0, 1))) {
|
||||
//任意轴坐标系. 使用相机的构造矩阵.
|
||||
ref.multiplyScalar(-1);
|
||||
let up = getLoocAtUpVec(ref);
|
||||
let refOcs = new THREE.Matrix4();
|
||||
var up = getLoocAtUpVec(ref);
|
||||
var refOcs = new THREE.Matrix4();
|
||||
refOcs.lookAt(exports.cZeroVec, ref, up);
|
||||
let refOcsInv = new THREE.Matrix4().getInverse(refOcs);
|
||||
var refOcsInv = new THREE.Matrix4().getInverse(refOcs);
|
||||
v1.applyMatrix4(refOcsInv);
|
||||
v2.applyMatrix4(refOcsInv);
|
||||
v1.z = 0;
|
||||
@@ -90,7 +93,7 @@ function angleTo(v1, v2, ref = new THREE.Vector3(0, 0, 1)) {
|
||||
}
|
||||
if (v1.equals(exports.cZeroVec) || v2.equals(exports.cZeroVec))
|
||||
return 0;
|
||||
let cv = new three_1.Vector3().crossVectors(v1, v2).normalize();
|
||||
var cv = new three_1.Vector3().crossVectors(v1, v2).normalize();
|
||||
return cv.z === 0 ? v1.angleTo(v2) : v1.angleTo(v2) * cv.z;
|
||||
}
|
||||
exports.angleTo = angleTo;
|
||||
@@ -98,7 +101,7 @@ function getLoocAtUpVec(dir) {
|
||||
if (dir.equals(exports.cZeroVec)) {
|
||||
throw ("zero vector");
|
||||
}
|
||||
let norm = dir.clone().normalize();
|
||||
var norm = dir.clone().normalize();
|
||||
if (norm.equals(exports.cZAxis)) {
|
||||
return new THREE.Vector3(0, 1, 0);
|
||||
}
|
||||
@@ -106,17 +109,17 @@ function getLoocAtUpVec(dir) {
|
||||
return new THREE.Vector3(0, -1, 0);
|
||||
}
|
||||
else {
|
||||
let xv = new THREE.Vector3();
|
||||
var xv = new THREE.Vector3();
|
||||
xv.crossVectors(exports.cZAxis, norm);
|
||||
let up = new THREE.Vector3();
|
||||
var up = new THREE.Vector3();
|
||||
up.crossVectors(norm, xv);
|
||||
return up;
|
||||
}
|
||||
}
|
||||
exports.getLoocAtUpVec = getLoocAtUpVec;
|
||||
function createLookAtMat4(dir) {
|
||||
let up = getLoocAtUpVec(dir);
|
||||
let mat = new THREE.Matrix4();
|
||||
var up = getLoocAtUpVec(dir);
|
||||
var mat = new THREE.Matrix4();
|
||||
mat.lookAt(exports.cZeroVec, dir, up);
|
||||
return mat;
|
||||
}
|
||||
@@ -125,8 +128,9 @@ function isParallelTo(v1, v2) {
|
||||
return v1.clone().cross(v2).lengthSq() < 1e-9;
|
||||
}
|
||||
exports.isParallelTo = isParallelTo;
|
||||
function ptToString(v, fractionDigits = 3) {
|
||||
return v.toArray().map(o => {
|
||||
function ptToString(v, fractionDigits) {
|
||||
if (fractionDigits === void 0) { fractionDigits = 3; }
|
||||
return v.toArray().map(function (o) {
|
||||
return o.toFixed(fractionDigits);
|
||||
}).join(",");
|
||||
}
|
||||
@@ -140,10 +144,10 @@ function midPoint2(v1, v2) {
|
||||
}
|
||||
exports.midPoint2 = midPoint2;
|
||||
function midPtCir(v1, v2) {
|
||||
let baseline = new three_1.Vector3(1, 0, 0);
|
||||
let outLine = v2.clone().sub(v1);
|
||||
let ang = angleTo(baseline, outLine) / 2;
|
||||
let midLine = rotatePoint(outLine, -ang);
|
||||
var baseline = new three_1.Vector3(1, 0, 0);
|
||||
var outLine = v2.clone().sub(v1);
|
||||
var ang = angleTo(baseline, outLine) / 2;
|
||||
var midLine = rotatePoint(outLine, -ang);
|
||||
return v1.clone().add(midLine);
|
||||
}
|
||||
exports.midPtCir = midPtCir;
|
||||
@@ -151,7 +155,7 @@ function GetBox(obj, updateMatrix) {
|
||||
if (updateMatrix)
|
||||
obj.updateMatrixWorld(false);
|
||||
if (obj.hasOwnProperty("geometry")) {
|
||||
let geo = obj["geometry"];
|
||||
var geo = obj["geometry"];
|
||||
if (geo instanceof THREE.Geometry || geo instanceof THREE.BufferGeometry) {
|
||||
if (!geo.boundingBox)
|
||||
geo.computeBoundingBox();
|
||||
@@ -159,8 +163,8 @@ function GetBox(obj, updateMatrix) {
|
||||
}
|
||||
}
|
||||
else if (obj.children.length > 0) {
|
||||
let box = obj.children.reduce((sumBox, itemObj) => {
|
||||
let itemBox = GetBox(itemObj);
|
||||
var box = obj.children.reduce(function (sumBox, itemObj) {
|
||||
var itemBox = GetBox(itemObj);
|
||||
if (itemBox)
|
||||
sumBox.union(itemBox);
|
||||
return sumBox;
|
||||
@@ -176,24 +180,24 @@ function GetBoxArr(arr) {
|
||||
if (arr.length == 0) {
|
||||
return null;
|
||||
}
|
||||
return arr.map(o => {
|
||||
return arr.map(function (o) {
|
||||
return GetBox(o);
|
||||
}).filter(o => {
|
||||
}).filter(function (o) {
|
||||
return o;
|
||||
}).reduce((sumBox, objBox) => {
|
||||
}).reduce(function (sumBox, objBox) {
|
||||
return sumBox.union(objBox);
|
||||
}, new THREE.Box3());
|
||||
}
|
||||
exports.GetBoxArr = GetBoxArr;
|
||||
function MoveMatrix(v) {
|
||||
let mat = new THREE.Matrix4();
|
||||
var mat = new THREE.Matrix4();
|
||||
mat.makeTranslation(v.x, v.y, v.z);
|
||||
return mat;
|
||||
}
|
||||
exports.MoveMatrix = MoveMatrix;
|
||||
function getProjectDist(v1, v2) {
|
||||
let ang = v1.angleTo(v2);
|
||||
let dist = v1.length();
|
||||
var ang = v1.angleTo(v2);
|
||||
var dist = v1.length();
|
||||
return {
|
||||
h: dist * Math.cos(ang),
|
||||
v: dist * Math.sin(ang)
|
||||
@@ -202,31 +206,31 @@ function getProjectDist(v1, v2) {
|
||||
exports.getProjectDist = getProjectDist;
|
||||
//获得输入点在2线组成的4个区间的位置
|
||||
function getPtPostion(sp, ep, c, inPt) {
|
||||
let l1 = sp.clone().sub(c);
|
||||
let l2 = ep.clone().sub(c);
|
||||
let l3 = l1.clone().negate();
|
||||
let l4 = l2.clone().negate();
|
||||
let inputLine = inPt.clone().sub(c);
|
||||
let ang1 = angleTo(l1, l2);
|
||||
let ang2 = Math.PI;
|
||||
let ang3 = ang2 + Math.abs(ang1);
|
||||
let inputAng = angleTo(l1, inputLine);
|
||||
var l1 = sp.clone().sub(c);
|
||||
var l2 = ep.clone().sub(c);
|
||||
var l3 = l1.clone().negate();
|
||||
var l4 = l2.clone().negate();
|
||||
var inputLine = inPt.clone().sub(c);
|
||||
var ang1 = angleTo(l1, l2);
|
||||
var ang2 = Math.PI;
|
||||
var ang3 = ang2 + Math.abs(ang1);
|
||||
var inputAng = angleTo(l1, inputLine);
|
||||
if (ang1 * inputAng < 0) {
|
||||
inputAng = (Math.PI * 2 - Math.abs(inputAng));
|
||||
}
|
||||
ang1 = Math.abs(ang1);
|
||||
inputAng = Math.abs(inputAng);
|
||||
if (inputAng <= ang1) {
|
||||
return { sp, ep };
|
||||
return { sp: sp, ep: ep };
|
||||
}
|
||||
else if (inputAng > ang1 && inputAng <= ang2) {
|
||||
return { sp: c.clone().add(l3), ep };
|
||||
return { sp: c.clone().add(l3), ep: ep };
|
||||
}
|
||||
else if (inputAng > ang2 && inputAng <= ang3) {
|
||||
return { sp: c.clone().add(l3), ep: c.clone().add(l4) };
|
||||
}
|
||||
else {
|
||||
return { sp, ep: c.clone().add(l4) };
|
||||
return { sp: sp, ep: c.clone().add(l4) };
|
||||
}
|
||||
}
|
||||
exports.getPtPostion = getPtPostion;
|
||||
@@ -248,7 +252,7 @@ function angleTo2Pi(an) {
|
||||
}
|
||||
exports.angleTo2Pi = angleTo2Pi;
|
||||
function updateGeometry(l, geometry) {
|
||||
let geo = l.geometry;
|
||||
var geo = l.geometry;
|
||||
geo.dispose();
|
||||
l.geometry = geometry;
|
||||
geometry.verticesNeedUpdate = true;
|
||||
|
||||
Reference in New Issue
Block a user