更新编译输出为es5支持老旧的浏览器

This commit is contained in:
ChenX
2018-06-06 17:23:22 +08:00
parent 256a7ea8a6
commit 29a6dd0fff
38 changed files with 616 additions and 533 deletions

94
dist/GeUtils.js vendored
View File

@@ -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;