|
@@ -42343,10 +42343,12 @@
|
|
|
var labelSizeInfo$1 = {
|
|
|
width2d: 200
|
|
|
};
|
|
|
- var halfPathWidth = 0.4;
|
|
|
var titleLineHeight = 2;
|
|
|
//const edgeExtrudePoints = [new THREE.Vector2(0,-0.4), new THREE.Vector2(0,0.4)]
|
|
|
-
|
|
|
+ var renderOrders = {
|
|
|
+ line: 3,
|
|
|
+ title: 4
|
|
|
+ };
|
|
|
var planeGeo$2 = new PlaneBufferGeometry(1, 1);
|
|
|
var voidGeometry = new BufferGeometry();
|
|
|
var getMarkerMat = function () {
|
|
@@ -42374,6 +42376,10 @@
|
|
|
return mats[name];
|
|
|
};
|
|
|
}();
|
|
|
+ var setMarkerScale = (marker, halfPathWidth) => {
|
|
|
+ var s = halfPathWidth * 2.9;
|
|
|
+ marker.scale.set(s, s, s);
|
|
|
+ };
|
|
|
var mainLabelProp$1 = {},
|
|
|
subLabelProp$1 = {};
|
|
|
class Path$1 extends ctrlPolygon {
|
|
@@ -42386,7 +42392,6 @@
|
|
|
var group = new Object3D();
|
|
|
group.name = 'titleGroup';
|
|
|
this.titleLabel = new TextSprite$2(Object.assign({}, {} /* depthMatProp */, {
|
|
|
- root: group,
|
|
|
text: '',
|
|
|
sizeInfo: {
|
|
|
width2d: 200
|
|
@@ -42413,51 +42418,70 @@
|
|
|
var line = LineDraw.createLine([new Vector3(0, 0, 0), new Vector3(0, 0, titleLineHeight)], {
|
|
|
color: '#ffffff'
|
|
|
});
|
|
|
+ line.renderOrder = renderOrders.line;
|
|
|
group.add(line);
|
|
|
group.add(this.titleLabel);
|
|
|
+ this.titleLabel.position.z = titleLineHeight;
|
|
|
this.add(group);
|
|
|
- group.visible = false;
|
|
|
+ this.setTitle(this.title);
|
|
|
}
|
|
|
{
|
|
|
//和measure不同的是它的边是连在一起的一整条
|
|
|
this.edge = new Mesh(voidGeometry, new MeshBasicMaterial({
|
|
|
depthWrite: false,
|
|
|
transparent: true,
|
|
|
- color: '#fff',
|
|
|
+ color: this.pathColor || '#fff',
|
|
|
opacity: 0.5,
|
|
|
side: 2
|
|
|
}));
|
|
|
this.add(this.edge);
|
|
|
this.edge.renderOrder = Potree.config.renderOrders.line;
|
|
|
this.edge.name = 'pathEdge';
|
|
|
- this.edge.addEventListener('click', e => {
|
|
|
- var now = Date.now();
|
|
|
- if (now - this.lastDropTime < 100 || this.isNew) return; //防止拖拽marker时误触导致focus, 以及点到marker不focus
|
|
|
-
|
|
|
- if (this.enableEdit /* viewer.measuringTool.editMode == 'addPoint' */) {
|
|
|
- viewer.measuringTool.history.beforeChange(this);
|
|
|
- var index = e.hoveredElement.faceIndex / 2;
|
|
|
- var nextIndex = this.getIndex(index, 1);
|
|
|
- var point = math.getFootPoint(e.hoveredElement.point, this.points[index - 1], this.points[nextIndex]);
|
|
|
- this.addMarker({
|
|
|
- index,
|
|
|
- point,
|
|
|
- dataset_point: this.dataset_points && new Vector3(),
|
|
|
- //初始化
|
|
|
- points_dataset: this.points_datasets[index - 1] //使用前一个的
|
|
|
- });
|
|
|
- this.updateDatasetBelong(index); //获取dataset_point
|
|
|
- viewer.measuringTool.history.afterChange(this);
|
|
|
- this.dispatchEvent('changed');
|
|
|
- //this.update({})
|
|
|
- } else {
|
|
|
- //this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure') //正在添加测量线时不要focus其他线(容易误触)
|
|
|
- }
|
|
|
+ var addHoverEvent = () => {
|
|
|
+ var mouseover = e => {
|
|
|
+ this.setSelected(true, 'edge');
|
|
|
+ };
|
|
|
+ var mouseleave = e => {
|
|
|
+ this.setSelected(false, 'edge');
|
|
|
+ };
|
|
|
+ this.edge.addEventListener('mouseover', mouseover);
|
|
|
+ this.edge.addEventListener('mouseleave', mouseleave);
|
|
|
+ this.edge.addEventListener('click', e => {
|
|
|
+ var now = Date.now();
|
|
|
+ if (now - this.lastDropTime < 100 || this.isNew) return; //防止拖拽marker时误触导致focus, 以及点到marker不focus
|
|
|
+
|
|
|
+ if (this.enableEdit) {
|
|
|
+ viewer.measuringTool.history.beforeChange(this);
|
|
|
+ var prevIndex = Math.floor(e.hoveredElement.faceIndex / 2); //端点1(可能是最后一个)
|
|
|
+ var nextIndex = this.getIndex(prevIndex, 1); //端点2(可能是第一个)
|
|
|
+ var index = prevIndex + 1; //新点在端点1后
|
|
|
+ var point = math.getFootPoint(e.hoveredElement.point, this.points[prevIndex], this.points[nextIndex]);
|
|
|
+ this.addMarker({
|
|
|
+ index,
|
|
|
+ point,
|
|
|
+ dataset_point: this.dataset_points && new Vector3(),
|
|
|
+ //初始化
|
|
|
+ points_dataset: this.points_datasets[prevIndex] //使用前一个的
|
|
|
+ });
|
|
|
+ this.updateDatasetBelong(index); //获取dataset_point
|
|
|
+ viewer.measuringTool.history.afterChange(this);
|
|
|
+ this.updateEdge();
|
|
|
+ this.dispatchEvent('changed');
|
|
|
+ } else {
|
|
|
+ //this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure') //正在添加测量线时不要focus其他线(容易误触)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ };
|
|
|
+ this.edge.addEventListener('addHoverEvent', addHoverEvent, {
|
|
|
+ once: true
|
|
|
});
|
|
|
}
|
|
|
this.addEventListener('marker_dropped', e => {
|
|
|
this.updateDatasetBelong(e.index);
|
|
|
});
|
|
|
+ this.setPathWidth(prop.width || 0.7);
|
|
|
+ this.setPathColor(prop.color || '#fff');
|
|
|
+ this.selectStates = {};
|
|
|
this.setEditEnable(true);
|
|
|
this.lastDropTime = 0;
|
|
|
Potree.Utils.setObjectLayers(this, 'measure');
|
|
@@ -42469,7 +42493,8 @@
|
|
|
name: name || 'label'
|
|
|
};
|
|
|
var label = new TextSprite$2($.extend({
|
|
|
- text: inf.name
|
|
|
+ text: inf.name,
|
|
|
+ fontsize: this.fontsize
|
|
|
}, hasHoverEvent ? mainLabelProp$1 : subLabelProp$1, inf));
|
|
|
if (hasHoverEvent) {
|
|
|
label.addEventListener('mouseover', () => {
|
|
@@ -42496,6 +42521,17 @@
|
|
|
this.titleLabel.parent.position.copy(pos);
|
|
|
}
|
|
|
}
|
|
|
+ setPathWidth(w) {
|
|
|
+ this.halfPathWidth = w / 2;
|
|
|
+ this.markers.forEach(e => setMarkerScale(e, this.halfPathWidth));
|
|
|
+ this.updateEdge();
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
+ }
|
|
|
+ setPathColor(color) {
|
|
|
+ this.pathColor = color;
|
|
|
+ this.edge.material.color.set(color);
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
+ }
|
|
|
updateEdge(index, p1, p2) {
|
|
|
if (this.lastUpdatePoints_ && Potree.Common.ifSame(this.lastUpdatePoints_, this.points)) return; //没变 不更新
|
|
|
//this.edge.geometry = MeshDraw.getExtrudeGeo(edgeExtrudePoints, null, {extrudePath: this.points, openEnded:true, shapeDontClose:true/* , dontSmooth:true, steps: this.points.length-1 */})
|
|
@@ -42522,12 +42558,12 @@
|
|
|
sideVec = new Vector3().copy(math.getNormal2d({
|
|
|
p1: O,
|
|
|
p2: A || B
|
|
|
- })).setZ(0).multiplyScalar(halfPathWidth); //垂线
|
|
|
+ })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
|
} else {
|
|
|
var OA = new Vector3().subVectors(A, O).setZ(0).normalize();
|
|
|
var OB = new Vector3().subVectors(B, O).setZ(0).normalize();
|
|
|
var angle = Math.acos(MathUtils.clamp(OA.dot(OB), -1, 1)); //小于180度的那边的角度
|
|
|
- var midVecLength = halfPathWidth / Math.sin(angle / 2);
|
|
|
+ var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
|
|
|
sideVec = new Vector3().addVectors(OA, OB).normalize().multiplyScalar(midVecLength); //角平分线
|
|
|
}
|
|
|
if (lastSideVec && sideVec.dot(lastSideVec) < 0) {
|
|
@@ -42558,10 +42594,32 @@
|
|
|
|
|
|
var marker = new Mesh(planeGeo$2, getMarkerMat('default'));
|
|
|
marker.add(this.createMarkerLabel());
|
|
|
+ setMarkerScale(marker, this.halfPathWidth);
|
|
|
marker.markerSelectStates = {};
|
|
|
Potree.Utils.setObjectLayers(marker, 'measure');
|
|
|
marker.renderOrder = Potree.config.renderOrders.measureMarker;
|
|
|
- marker.addEventListener('startDragging', e => {});
|
|
|
+ marker.addEventListener('click', e => {
|
|
|
+ this.dispatchEvent({
|
|
|
+ type: 'markerSelect',
|
|
|
+ marker
|
|
|
+ });
|
|
|
+ this.setMarkerSelected(marker, 'click');
|
|
|
+ setTimeout(() => {
|
|
|
+ viewer.addEventListener('global_click', () => {
|
|
|
+ this.dispatchEvent({
|
|
|
+ type: 'markerSelect',
|
|
|
+ marker,
|
|
|
+ cancel: true
|
|
|
+ });
|
|
|
+ this.setMarkerSelected(marker, 'unclick');
|
|
|
+ }, {
|
|
|
+ once: true
|
|
|
+ });
|
|
|
+ }, 1);
|
|
|
+ });
|
|
|
+ marker.addEventListener('startDragging', e => {
|
|
|
+ this.setMarkerSelected(marker, 'click');
|
|
|
+ });
|
|
|
marker.addEventListener('drop', e => {
|
|
|
if (e.button != MOUSE.LEFT) return;
|
|
|
viewer.inputHandler.dispatchEvent({
|
|
@@ -42573,6 +42631,7 @@
|
|
|
});
|
|
|
this.lastDropTime = Date.now();
|
|
|
this.isNew || viewer.measuringTool.history.afterChange(this);
|
|
|
+ this.setMarkerSelected(marker, 'unclick');
|
|
|
});
|
|
|
super.addMarker(Object.assign(o, {
|
|
|
marker
|
|
@@ -42586,9 +42645,21 @@
|
|
|
this.enableEdit = !!state;
|
|
|
this.markers.forEach(e => Potree.Utils.updateVisible(e, 'editEnable', this.enableEdit));
|
|
|
}
|
|
|
- setTitleVisi(v) {
|
|
|
- var reason = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
|
- Potree.Utils.updateVisible(this.titleLabel.parent, 'hideTitle-' + reason, v);
|
|
|
+ setTitleVisi(label, v) {
|
|
|
+ var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
|
+ Potree.Utils.updateVisible(label, 'hideTitle-' + reason, v);
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
+ }
|
|
|
+ setTitle() {
|
|
|
+ var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
|
+ this.titleLabel.setText(title);
|
|
|
+ this.setTitleVisi(this.titleLabel.parent, title instanceof Array || title.trim() != '', 'noText');
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
+ }
|
|
|
+ setMarkerTitle(index, title) {
|
|
|
+ this.markerLabels[index].setText(title);
|
|
|
+ this.setTitleVisi(this.markerLabels[index], title instanceof Array || title.trim() != '', 'noText');
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
}
|
|
|
editStateChange(state) {
|
|
|
//拖动时被调用
|
|
@@ -42613,25 +42684,24 @@
|
|
|
}
|
|
|
this.isEditing = state;
|
|
|
}
|
|
|
- setMarkerSelected(marker, state, hoverObject) {
|
|
|
- //console.warn(marker.id , state, hoverObject)
|
|
|
-
|
|
|
- marker.markerSelectStates[hoverObject] = state;
|
|
|
- var absoluteState = false;
|
|
|
- for (var i in marker.markerSelectStates) {
|
|
|
- if (marker.markerSelectStates[i] == 'hover') {
|
|
|
- absoluteState = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (absoluteState) {
|
|
|
+ setMarkerSelected(marker, state) {
|
|
|
+ state == 'hover' && (marker.markerSelectStates.hover = true);
|
|
|
+ state == 'unhover' && (marker.markerSelectStates.hover = false);
|
|
|
+ state == 'click' && (marker.markerSelectStates.click = true); //click or drag
|
|
|
+ state == 'unclick' && (marker.markerSelectStates.click = false);
|
|
|
+ if (marker.markerSelectStates.click) {
|
|
|
+ marker.material = getMarkerMat('drag');
|
|
|
+ marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker + 2;
|
|
|
+ } else if (marker.markerSelectStates.hover) {
|
|
|
marker.material = getMarkerMat('delete');
|
|
|
marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker + 1;
|
|
|
} else {
|
|
|
marker.material = getMarkerMat('default');
|
|
|
marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker;
|
|
|
}
|
|
|
- marker.selected = absoluteState;
|
|
|
+
|
|
|
+ //marker.selected = absoluteState
|
|
|
+
|
|
|
viewer.mapViewer && viewer.mapViewer.dispatchEvent('content_changed');
|
|
|
viewer.dispatchEvent('content_changed');
|
|
|
}
|
|
@@ -42649,13 +42719,6 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /* if(absoluteState){
|
|
|
- this.markers.forEach(e=>this.setMarkerSelected(e, 'hover', 'selectAll' ) )
|
|
|
- }else{
|
|
|
- this.markers.forEach(e=>this.setMarkerSelected(e, 'unhover', 'selectAll' ))
|
|
|
- } */
|
|
|
-
|
|
|
this.selected = absoluteState;
|
|
|
if (hoverObject != 'byList') {
|
|
|
//this.bus && this.bus.emit('highlight', this.selected)
|
|
@@ -42738,7 +42801,7 @@
|
|
|
*/
|
|
|
|
|
|
setFontSize(fontsize) {
|
|
|
- this.fontSize = fontsize;
|
|
|
+ this.fontsize = fontsize;
|
|
|
this.markerLabels.concat(this.titleLabel).forEach(e => {
|
|
|
e.fontsize = fontsize;
|
|
|
e.updateTexture();
|
|
@@ -43181,6 +43244,8 @@
|
|
|
measure.edges.forEach(edge => {
|
|
|
edge.dispatchEvent('addHoverEvent');
|
|
|
});
|
|
|
+ } else {
|
|
|
+ measure.edge.dispatchEvent('addHoverEvent');
|
|
|
}
|
|
|
measure.markers.forEach(marker => {
|
|
|
marker.dispatchEvent('addHoverEvent');
|
|
@@ -55972,7 +56037,7 @@
|
|
|
maxOcclusionFactor: 0.7,
|
|
|
maxClipFactor: 1
|
|
|
};
|
|
|
- var renderOrders = {
|
|
|
+ var renderOrders$1 = {
|
|
|
line: 3,
|
|
|
spot: 15,
|
|
|
//高过模型
|
|
@@ -56016,7 +56081,7 @@
|
|
|
map: texLoader$8.load(Potree.resourcePath + '/textures/spot_default.png')
|
|
|
})));
|
|
|
this.spot.scale.set(defaultSpotScale, defaultSpotScale, defaultSpotScale);
|
|
|
- this.spot.renderOrder = renderOrders.spot;
|
|
|
+ this.spot.renderOrder = renderOrders$1.spot;
|
|
|
this.line = LineDraw.createFatLine([], {
|
|
|
mat: lineMat
|
|
|
});
|
|
@@ -56043,8 +56108,8 @@
|
|
|
fontsize: this.fontsize || 13,
|
|
|
fontWeight: '',
|
|
|
//thick
|
|
|
- renderOrder: renderOrders.label,
|
|
|
- pickOrder: renderOrders.label,
|
|
|
+ renderOrder: renderOrders$1.label,
|
|
|
+ pickOrder: renderOrders$1.label,
|
|
|
useDepth: true
|
|
|
})); //更新sprite时,实际更新的是root: spot的矩阵
|
|
|
this.setTitle(this.title);
|
|
@@ -56178,13 +56243,13 @@
|
|
|
this.titleLabel.position.y = 0;
|
|
|
this.spot.position.set(0, 0, 0.01); //在mesh之上偏移一点
|
|
|
this.setNorQua();
|
|
|
- this.line.renderOrder = renderOrders.spot + 1; //比spot高,但比label低
|
|
|
+ this.line.renderOrder = renderOrders$1.spot + 1; //比spot高,但比label低
|
|
|
} else {
|
|
|
this.titleLabel.parent.add(this.spot);
|
|
|
this.updateTitlePos();
|
|
|
this.spot.position.set(0, 0, 0);
|
|
|
this.spot.quaternion.set(0, 0, 0, 1); //this.titleLabel.update()
|
|
|
- this.line.renderOrder = renderOrders.line; //还原
|
|
|
+ this.line.renderOrder = renderOrders$1.line; //还原
|
|
|
}
|
|
|
Potree.Utils.updateVisible(this.line, 'hideTitle', !this.titleLabel.visible && onMesh ? false : true);
|
|
|
this.updateDepthParams();
|
|
@@ -56202,6 +56267,7 @@
|
|
|
//tag.onMesh && Potree.Utils.updateVisible(tag.line, 'hideTitle-'+reason, v)
|
|
|
//line的可见性比较复杂,所以干脆跟随title的,reason不记录那么多
|
|
|
this.onMesh && Potree.Utils.updateVisible(this.line, 'hideTitle', this.titleLabel.visible);
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
}
|
|
|
setFontSize(fontsize) {
|
|
|
this.titleLabel.fontsize = this.fontsize = fontsize;
|
|
@@ -63533,6 +63599,12 @@
|
|
|
}, {
|
|
|
'hoverTranHandle': 'grab'
|
|
|
}, {
|
|
|
+ pen_delPoint: "url({Potree.resourcePath}/images/polygon_mark/pic_pen_sub.png),auto"
|
|
|
+ }, {
|
|
|
+ pen_addPoint: "url({Potree.resourcePath}/images/polygon_mark/pic_pen_add.png),auto"
|
|
|
+ }, {
|
|
|
+ pen: "url({Potree.resourcePath}/images/polygon_mark/pic_pen.png),auto"
|
|
|
+ }, {
|
|
|
"movePointcloud": 'move'
|
|
|
}, {
|
|
|
"polygon_isIntersectSelf": 'not-allowed'
|
|
@@ -73011,7 +73083,7 @@
|
|
|
var rotQua2$1 = new Quaternion().setFromAxisAngle(new Vector3(0, 0, 1), -Math.PI);
|
|
|
var lineMats$3 = {};
|
|
|
var circleMats = {};
|
|
|
- var renderOrders$1 = {
|
|
|
+ var renderOrders$2 = {
|
|
|
circleSelected: 3,
|
|
|
circle: 2,
|
|
|
line: 1
|
|
@@ -73247,7 +73319,7 @@
|
|
|
this.linkGuideLine.visible = false;
|
|
|
this.linkGuideLine.name = 'linkGuideLine';
|
|
|
viewer.scene.scene.add(this.linkGuideLine);
|
|
|
- this.linkGuideLine.renderOrder = renderOrders$1.line;
|
|
|
+ this.linkGuideLine.renderOrder = renderOrders$2.line;
|
|
|
var update = e => {
|
|
|
if (this.operation != 'addLink' || this.activeViewName != 'top' && this.activeViewName != 'mainView' || !this.selectedPano) {
|
|
|
return this.linkGuideLine.visible = false;
|
|
@@ -73914,7 +73986,7 @@
|
|
|
mat: lineMats$3.default
|
|
|
});
|
|
|
line.name = "".concat(pano0.id, "-").concat(pano1.id);
|
|
|
- line.renderOrder = line.pickOrder = renderOrders$1.line;
|
|
|
+ line.renderOrder = line.pickOrder = renderOrders$2.line;
|
|
|
this.lineMeshes.add(line);
|
|
|
this.panoLink[pano0.id][pano1.id].line = this.panoLink[pano1.id][pano0.id].line = line;
|
|
|
line.addEventListener('mouseover', () => {
|
|
@@ -74057,8 +74129,8 @@
|
|
|
nearBound: 2,
|
|
|
farBound: 10
|
|
|
},
|
|
|
- renderOrder: renderOrders$1.circle,
|
|
|
- pickOrder: renderOrders$1.circle
|
|
|
+ renderOrder: renderOrders$2.circle,
|
|
|
+ pickOrder: renderOrders$2.circle
|
|
|
});
|
|
|
circle.pickDontCheckDis = true;
|
|
|
circle.name = 'panoCircle';
|
|
@@ -74151,7 +74223,7 @@
|
|
|
var opaProp = this.activeViewName == 'top' ? opacitys.topView : opacitys.sideView;
|
|
|
if (this.selectedPano) {
|
|
|
this.selectedPano.circle.material = circleMats['default' + '_' + this.getPanoRtkState(this.selectedPano)];
|
|
|
- this.selectedPano.circle.renderOrder = renderOrders$1.circle;
|
|
|
+ this.selectedPano.circle.renderOrder = renderOrders$2.circle;
|
|
|
this.selectedPano.removeEventListener('rePos', this.panoReposCallback);
|
|
|
if (this.activeViewName == 'mainView') {} else {
|
|
|
this.selectedClouds.forEach(e => {
|
|
@@ -74164,7 +74236,7 @@
|
|
|
this.updateSelectGroup();
|
|
|
if (pano) {
|
|
|
this.selectedPano.circle.material = circleMats['selected' + '_' + this.getPanoRtkState(this.selectedPano)];
|
|
|
- this.selectedPano.circle.renderOrder = this.selectedPano.circle.pickOrder = renderOrders$1.circleSelected; //侧视图能显示在最前
|
|
|
+ this.selectedPano.circle.renderOrder = this.selectedPano.circle.pickOrder = renderOrders$2.circleSelected; //侧视图能显示在最前
|
|
|
|
|
|
//viewer.controls.setTarget(this.selectedPano.position) //3d时绕其为中心转动 (注释原因:不想变来变去不习惯,难以查看任意角落细节)
|
|
|
this.selectedPano.addEventListener('rePos', this.panoReposCallback);
|
|
@@ -74352,7 +74424,7 @@
|
|
|
mat: lineMats$3.suggestLink
|
|
|
});
|
|
|
this.suggestLines.push(line);
|
|
|
- line.renderOrder = renderOrders$1.line;
|
|
|
+ line.renderOrder = renderOrders$2.line;
|
|
|
viewer.scene.scene.add(line);
|
|
|
});
|
|
|
}
|
|
@@ -77446,9 +77518,9 @@
|
|
|
if (!viewport /* || viewport.camera.type == "OrthographicCamera" */) return;
|
|
|
//let camera = viewport.camera
|
|
|
|
|
|
- if (e.drag.object !== null) {
|
|
|
- return;
|
|
|
- }
|
|
|
+ /* if (e.drag.object !== null) {
|
|
|
+ return;
|
|
|
+ } */
|
|
|
var mode;
|
|
|
if (e.isTouch) {
|
|
|
if (e.touches.length == 1) {
|