更新编译输出为es5支持老旧的浏览器
This commit is contained in:
138
dist/CameraControls.js
vendored
138
dist/CameraControls.js
vendored
@@ -1,8 +1,8 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const THREE = require("three");
|
||||
const KeyEnum_1 = require("./KeyEnum");
|
||||
const three_1 = require("three");
|
||||
var THREE = require("three");
|
||||
var KeyEnum_1 = require("./KeyEnum");
|
||||
var three_1 = require("three");
|
||||
//控制类型
|
||||
var CameraControlsEnabled;
|
||||
(function (CameraControlsEnabled) {
|
||||
@@ -18,8 +18,9 @@ var CameraControlState;
|
||||
CameraControlState[CameraControlState["Rotate"] = 2] = "Rotate";
|
||||
CameraControlState[CameraControlState["Scale"] = 3] = "Scale";
|
||||
})(CameraControlState = exports.CameraControlState || (exports.CameraControlState = {}));
|
||||
class CameraControls {
|
||||
constructor(viewer) {
|
||||
var CameraControls = /** @class */ (function () {
|
||||
function CameraControls(viewer) {
|
||||
var _this = this;
|
||||
this.m_TouthTypeList = [CameraControlState.Rotate, CameraControlState.Scale, CameraControlState.Pan];
|
||||
//起始点击
|
||||
this.m_StartClickPoint = new THREE.Vector3();
|
||||
@@ -37,36 +38,36 @@ class CameraControls {
|
||||
*
|
||||
* @memberof CameraControls
|
||||
*/
|
||||
this.onBlur = () => {
|
||||
this.m_KeyDown.clear();
|
||||
this.m_MouseDown.clear();
|
||||
this.onBlur = function () {
|
||||
_this.m_KeyDown.clear();
|
||||
_this.m_MouseDown.clear();
|
||||
};
|
||||
//触屏开始事件
|
||||
this.onTouchStart = (event) => {
|
||||
this.m_Viewer.UpdateLockTarget();
|
||||
this.m_StartClickPoint.set(event.touches[0].pageX, event.touches[0].pageY, 0);
|
||||
this.onTouchStart = function (event) {
|
||||
_this.m_Viewer.UpdateLockTarget();
|
||||
_this.m_StartClickPoint.set(event.touches[0].pageX, event.touches[0].pageY, 0);
|
||||
if (event.touches.length < 4) {
|
||||
if (event.touches.length == 2) {
|
||||
var dx = event.touches[0].pageX - event.touches[1].pageX;
|
||||
var dy = event.touches[0].pageY - event.touches[1].pageY;
|
||||
var distance = Math.sqrt(dx * dx + dy * dy);
|
||||
this.m_DollyStart.set(0, distance);
|
||||
_this.m_DollyStart.set(0, distance);
|
||||
}
|
||||
this.m_State = this.m_TouthTypeList[event.touches.length - 1];
|
||||
_this.m_State = _this.m_TouthTypeList[event.touches.length - 1];
|
||||
}
|
||||
};
|
||||
this.onTouchEnd = (event) => {
|
||||
this.m_State = CameraControlState.Null;
|
||||
this.onTouchEnd = function (event) {
|
||||
_this.m_State = CameraControlState.Null;
|
||||
};
|
||||
this.onTouchMove = (event) => {
|
||||
this.onTouchMove = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
this.m_EndClickPoint.set(event.touches[0].pageX, event.touches[0].pageY, 0);
|
||||
let vec = this.m_EndClickPoint.clone().sub(this.m_StartClickPoint);
|
||||
switch (this.m_State) {
|
||||
_this.m_EndClickPoint.set(event.touches[0].pageX, event.touches[0].pageY, 0);
|
||||
var vec = _this.m_EndClickPoint.clone().sub(_this.m_StartClickPoint);
|
||||
switch (_this.m_State) {
|
||||
case CameraControlState.Pan:
|
||||
{
|
||||
this.m_Viewer.Pan(vec);
|
||||
_this.m_Viewer.Pan(vec);
|
||||
break;
|
||||
}
|
||||
case CameraControlState.Scale:
|
||||
@@ -74,55 +75,55 @@ class CameraControls {
|
||||
var dx = event.touches[0].pageX - event.touches[1].pageX;
|
||||
var dy = event.touches[0].pageY - event.touches[1].pageY;
|
||||
var distance = Math.sqrt(dx * dx + dy * dy);
|
||||
this.m_DollyEnd.set(0, distance);
|
||||
if (distance > this.m_DollyStart.y) {
|
||||
this.m_Viewer.Zoom(0.95);
|
||||
_this.m_DollyEnd.set(0, distance);
|
||||
if (distance > _this.m_DollyStart.y) {
|
||||
_this.m_Viewer.Zoom(0.95);
|
||||
}
|
||||
else {
|
||||
this.m_Viewer.Zoom(1.05);
|
||||
_this.m_Viewer.Zoom(1.05);
|
||||
}
|
||||
this.m_DollyStart.copy(this.m_DollyEnd);
|
||||
_this.m_DollyStart.copy(_this.m_DollyEnd);
|
||||
break;
|
||||
}
|
||||
case CameraControlState.Rotate:
|
||||
{
|
||||
this.m_Viewer.Rotate(vec.multiplyScalar(2));
|
||||
_this.m_Viewer.Rotate(vec.multiplyScalar(2));
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.m_StartClickPoint.copy(this.m_EndClickPoint);
|
||||
this.m_Viewer.m_bNeedUpdate = true;
|
||||
_this.m_StartClickPoint.copy(_this.m_EndClickPoint);
|
||||
_this.m_Viewer.m_bNeedUpdate = true;
|
||||
};
|
||||
//最后一次按中键的时间
|
||||
this.lastMiddleClickTime = 0;
|
||||
//鼠标
|
||||
this.onMouseDown = (event) => {
|
||||
this.onMouseDown = function (event) {
|
||||
event.preventDefault();
|
||||
let key = event.button;
|
||||
this.m_MouseDown.set(key, true);
|
||||
this.m_StartClickPoint.set(event.offsetX, event.offsetY, 0);
|
||||
var key = event.button;
|
||||
_this.m_MouseDown.set(key, true);
|
||||
_this.m_StartClickPoint.set(event.offsetX, event.offsetY, 0);
|
||||
switch (key) {
|
||||
case KeyEnum_1.MouseKey.Left:
|
||||
{
|
||||
if (this.m_LeftUseRotate) {
|
||||
this.beginRotate();
|
||||
if (_this.m_LeftUseRotate) {
|
||||
_this.beginRotate();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case KeyEnum_1.MouseKey.Middle:
|
||||
{
|
||||
let curTime = Date.now();
|
||||
let t = curTime - this.lastMiddleClickTime;
|
||||
this.lastMiddleClickTime = curTime;
|
||||
var curTime = Date.now();
|
||||
var t = curTime - _this.lastMiddleClickTime;
|
||||
_this.lastMiddleClickTime = curTime;
|
||||
if (t < 350) {
|
||||
this.m_Viewer.ZoomAll();
|
||||
_this.m_Viewer.ZoomAll();
|
||||
return;
|
||||
}
|
||||
if (this.m_KeyDown.get(KeyEnum_1.KeyBoard.Control)) {
|
||||
this.beginRotate();
|
||||
if (_this.m_KeyDown.get(KeyEnum_1.KeyBoard.Control)) {
|
||||
_this.beginRotate();
|
||||
}
|
||||
else {
|
||||
this.m_State = CameraControlState.Pan;
|
||||
_this.m_State = CameraControlState.Pan;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -132,25 +133,25 @@ class CameraControls {
|
||||
}
|
||||
}
|
||||
};
|
||||
this.onMouseUp = (event) => {
|
||||
this.onMouseUp = function (event) {
|
||||
event.preventDefault();
|
||||
this.m_State = CameraControlState.Null;
|
||||
this.m_MouseDown.set(event.button, false);
|
||||
_this.m_State = CameraControlState.Null;
|
||||
_this.m_MouseDown.set(event.button, false);
|
||||
};
|
||||
this.onMouseMove = (event) => {
|
||||
this.onMouseMove = function (event) {
|
||||
event.preventDefault();
|
||||
this.m_EndClickPoint.set(event.offsetX, event.offsetY, 0);
|
||||
let changeVec = this.m_EndClickPoint.clone().sub(this.m_StartClickPoint);
|
||||
this.m_StartClickPoint.copy(this.m_EndClickPoint);
|
||||
if ((this.m_LeftUseRotate ||
|
||||
(this.m_KeyDown.get(KeyEnum_1.KeyBoard.Control)))
|
||||
&& this.m_State == CameraControlState.Rotate) {
|
||||
this.m_Viewer.Rotate(changeVec);
|
||||
_this.m_EndClickPoint.set(event.offsetX, event.offsetY, 0);
|
||||
var changeVec = _this.m_EndClickPoint.clone().sub(_this.m_StartClickPoint);
|
||||
_this.m_StartClickPoint.copy(_this.m_EndClickPoint);
|
||||
if ((_this.m_LeftUseRotate ||
|
||||
(_this.m_KeyDown.get(KeyEnum_1.KeyBoard.Control)))
|
||||
&& _this.m_State == CameraControlState.Rotate) {
|
||||
_this.m_Viewer.Rotate(changeVec);
|
||||
}
|
||||
switch (this.m_State) {
|
||||
switch (_this.m_State) {
|
||||
case CameraControlState.Pan:
|
||||
{
|
||||
this.m_Viewer.Pan(changeVec);
|
||||
_this.m_Viewer.Pan(changeVec);
|
||||
break;
|
||||
}
|
||||
case CameraControlState.Rotate:
|
||||
@@ -168,30 +169,30 @@ class CameraControls {
|
||||
*
|
||||
* @memberof CameraControls
|
||||
*/
|
||||
this.onMouseWheel = (event) => {
|
||||
this.onMouseWheel = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
let pt = new THREE.Vector3(event.offsetX, event.offsetY, 0);
|
||||
this.m_Viewer.ScreenToWorld(pt, new three_1.Vector3().setFromMatrixColumn(this.m_Viewer.m_Camera.Camera.matrixWorld, 2));
|
||||
var pt = new THREE.Vector3(event.offsetX, event.offsetY, 0);
|
||||
_this.m_Viewer.ScreenToWorld(pt, new three_1.Vector3().setFromMatrixColumn(_this.m_Viewer.m_Camera.Camera.matrixWorld, 2));
|
||||
if (event.deltaY < 0) {
|
||||
this.m_Viewer.Zoom(0.6, pt);
|
||||
_this.m_Viewer.Zoom(0.6, pt);
|
||||
}
|
||||
else if (event.deltaY > 0) {
|
||||
this.m_Viewer.Zoom(1.4, pt);
|
||||
_this.m_Viewer.Zoom(1.4, pt);
|
||||
}
|
||||
};
|
||||
//按键
|
||||
this.onKeyDown = (event) => {
|
||||
this.m_KeyDown.set(event.keyCode, true);
|
||||
this.onKeyDown = function (event) {
|
||||
_this.m_KeyDown.set(event.keyCode, true);
|
||||
};
|
||||
this.onKeyUp = (event) => {
|
||||
this.m_KeyDown.set(event.keyCode, false);
|
||||
this.onKeyUp = function (event) {
|
||||
_this.m_KeyDown.set(event.keyCode, false);
|
||||
};
|
||||
this.m_Viewer = viewer;
|
||||
this.m_domElement = viewer.m_Render.domElement.parentElement;
|
||||
this.RegisterEvent();
|
||||
}
|
||||
RegisterEvent() {
|
||||
CameraControls.prototype.RegisterEvent = function () {
|
||||
if (this.m_domElement) {
|
||||
this.m_domElement.addEventListener("mousedown", this.onMouseDown, false);
|
||||
this.m_domElement.addEventListener("mousemove", this.onMouseMove, false);
|
||||
@@ -204,11 +205,12 @@ class CameraControls {
|
||||
this.m_domElement.addEventListener('touchmove', this.onTouchMove, false);
|
||||
window.addEventListener("blur", this.onBlur, false);
|
||||
}
|
||||
}
|
||||
beginRotate() {
|
||||
};
|
||||
CameraControls.prototype.beginRotate = function () {
|
||||
this.m_State = CameraControlState.Rotate;
|
||||
this.m_Viewer.UpdateLockTarget();
|
||||
}
|
||||
}
|
||||
};
|
||||
return CameraControls;
|
||||
}());
|
||||
exports.CameraControls = CameraControls;
|
||||
//# sourceMappingURL=CameraControls.js.map
|
||||
Reference in New Issue
Block a user