|
@@ -8100,6 +8100,20 @@
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ set fadeFar(far) {
|
|
|
|
+ var needsUpdate = !this.fadeFar != !far; //null为全部范围可见
|
|
|
|
+ //console.log('fadeFar needsUpdate', needsUpdate)
|
|
|
|
+ if (far) {
|
|
|
|
+ this.defines.FadeFar = true;
|
|
|
|
+ this.uniforms.fadeFar.value = far;
|
|
|
|
+ } else {
|
|
|
|
+ delete this.defines.FadeFar;
|
|
|
|
+ }
|
|
|
|
+ needsUpdate && (this.needsUpdate = true);
|
|
|
|
+ }
|
|
|
|
+ get fadeFar() {
|
|
|
|
+ return 'FadeFar' in this.defines && this.uniforms.fadeFar.value;
|
|
|
|
+ }
|
|
updateDepthParams() {
|
|
updateDepthParams() {
|
|
var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var viewport = e.viewport || viewer.mainViewport;
|
|
var viewport = e.viewport || viewer.mainViewport;
|
|
@@ -17238,8 +17252,7 @@
|
|
fragmentShader: fs,
|
|
fragmentShader: fs,
|
|
depthWrite: false,
|
|
depthWrite: false,
|
|
depthTest: false,
|
|
depthTest: false,
|
|
- transparent: o.transparent == void 0 ? true : o.transparent,
|
|
|
|
- side: o.side || 0 /* THREE.DoubleSide */
|
|
|
|
|
|
+ transparent: o.transparent == void 0 ? true : o.transparent
|
|
});
|
|
});
|
|
this.events = {
|
|
this.events = {
|
|
setSize: e => {
|
|
setSize: e => {
|
|
@@ -17264,12 +17277,15 @@
|
|
|
|
|
|
//-----其他----
|
|
//-----其他----
|
|
|
|
|
|
- this.autoDepthTest = o.autoDepthTest;
|
|
|
|
- if (o.opacity != void 0) {
|
|
|
|
- this.opacity = o.opacity;
|
|
|
|
|
|
+ /*this.autoDepthTest = o.autoDepthTest
|
|
|
|
+ if(o.opacity != void 0){
|
|
|
|
+ this.opacity = o.opacity
|
|
}
|
|
}
|
|
- this.useDepth = o.useDepth;
|
|
|
|
- this.map = o.map;
|
|
|
|
|
|
+ this.useDepth = o.useDepth
|
|
|
|
+ this.fadeFar = o.fadeFar
|
|
|
|
+ this.map = o.map */
|
|
|
|
+
|
|
|
|
+ this.setValues(o);
|
|
}
|
|
}
|
|
get useDepth() {
|
|
get useDepth() {
|
|
return this.useDepth_;
|
|
return this.useDepth_;
|
|
@@ -17323,7 +17339,7 @@
|
|
return this.uniforms.opacity.value;
|
|
return this.uniforms.opacity.value;
|
|
}
|
|
}
|
|
set opacity(o) {
|
|
set opacity(o) {
|
|
- this.uniforms && (this.uniforms.opacity.value = o);
|
|
|
|
|
|
+ this.uniforms && o != void 0 && (this.uniforms.opacity.value = o);
|
|
}
|
|
}
|
|
get color() {
|
|
get color() {
|
|
return this.uniforms.baseColor.value;
|
|
return this.uniforms.baseColor.value;
|
|
@@ -17331,12 +17347,20 @@
|
|
set color(c) {
|
|
set color(c) {
|
|
this.uniforms && this.uniforms.baseColor.value.set(c);
|
|
this.uniforms && this.uniforms.baseColor.value.set(c);
|
|
}
|
|
}
|
|
-
|
|
|
|
- /* dispose(){
|
|
|
|
- super.dispose()
|
|
|
|
- viewer.depthBasic
|
|
|
|
- } */
|
|
|
|
-
|
|
|
|
|
|
+ set fadeFar(far) {
|
|
|
|
+ var needsUpdate = !this.fadeFar != !far; //null为全部范围可见
|
|
|
|
+ //console.log('fadeFar needsUpdate', needsUpdate)
|
|
|
|
+ if (far) {
|
|
|
|
+ this.defines.FadeFar = true;
|
|
|
|
+ this.uniforms.fadeFar.value = far;
|
|
|
|
+ } else {
|
|
|
|
+ delete this.defines.FadeFar;
|
|
|
|
+ }
|
|
|
|
+ needsUpdate && (this.needsUpdate = true);
|
|
|
|
+ }
|
|
|
|
+ get fadeFar() {
|
|
|
|
+ return 'FadeFar' in this.defines && this.uniforms.fadeFar.value;
|
|
|
|
+ }
|
|
copy(source) {
|
|
copy(source) {
|
|
super.copy(source);
|
|
super.copy(source);
|
|
this.useDepth = source.useDepth;
|
|
this.useDepth = source.useDepth;
|
|
@@ -17828,12 +17852,9 @@
|
|
this.position.copy(pos);
|
|
this.position.copy(pos);
|
|
this.sprite.waitUpdate();
|
|
this.sprite.waitUpdate();
|
|
}
|
|
}
|
|
- /* update(){
|
|
|
|
- this.sprite.waitUpdate()
|
|
|
|
- } */
|
|
|
|
- /* setVisible(v){
|
|
|
|
- Potree.Utils.updateVisible(this, 'setVisible', v)
|
|
|
|
- } */
|
|
|
|
|
|
+ updatePose() {
|
|
|
|
+ this.sprite.waitUpdate();
|
|
|
|
+ }
|
|
setUniforms(name, value) {
|
|
setUniforms(name, value) {
|
|
this.sprite.setUniforms(name, value);
|
|
this.sprite.setUniforms(name, value);
|
|
}
|
|
}
|
|
@@ -26955,18 +26976,8 @@
|
|
this.label.position.copy(this.floorPosition);
|
|
this.label.position.copy(this.floorPosition);
|
|
}
|
|
}
|
|
this.label.position.z += 0.14;
|
|
this.label.position.z += 0.14;
|
|
- this.label.update();
|
|
|
|
|
|
+ this.label.updatePose();
|
|
}
|
|
}
|
|
-
|
|
|
|
- /* if(this.label2){
|
|
|
|
- if(Potree.settings.editType == 'pano'){
|
|
|
|
- this.label2.position.copy(this.position)
|
|
|
|
- }else{
|
|
|
|
- this.label2.position.copy(this.floorPosition)
|
|
|
|
- }
|
|
|
|
- this.label2.position.copy(this.marker.position)
|
|
|
|
- this.label2.update()
|
|
|
|
- } */
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/* getRealPos(){//当整体移动以后
|
|
/* getRealPos(){//当整体移动以后
|
|
@@ -40376,9 +40387,8 @@
|
|
removeMarker(index) {
|
|
removeMarker(index) {
|
|
this.points.splice(index, 1);
|
|
this.points.splice(index, 1);
|
|
var marker = this.markers[index];
|
|
var marker = this.markers[index];
|
|
- //this.remove(marker);
|
|
|
|
this.markers.splice(index, 1);
|
|
this.markers.splice(index, 1);
|
|
- marker.dispose && marker.dispose();
|
|
|
|
|
|
+ marker.dispose ? marker.dispose() : marker.parent.remove(marker);
|
|
var edgeIndex = index; //(index === 0) ? 0 : (index - 1);
|
|
var edgeIndex = index; //(index === 0) ? 0 : (index - 1);
|
|
var edge = this.edges[edgeIndex];
|
|
var edge = this.edges[edgeIndex];
|
|
if (edge) {
|
|
if (edge) {
|
|
@@ -42413,6 +42423,21 @@
|
|
var s = halfPathWidth * 2.9;
|
|
var s = halfPathWidth * 2.9;
|
|
marker.scale.set(s, s, s);
|
|
marker.scale.set(s, s, s);
|
|
};
|
|
};
|
|
|
|
+ /* let getFakeMarker = ()=>{//添加marker时指示位置
|
|
|
|
+ let marker
|
|
|
|
+ if(!marker){
|
|
|
|
+ let marker = new THREE.Mesh(planeGeo, getMarkerMat('default'))
|
|
|
|
+ marker.name = 'fakeMarker'
|
|
|
|
+ setMarkerScale(marker,this.halfPathWidth)
|
|
|
|
+ marker.markerSelectStates = {}
|
|
|
|
+ Potree.Utils.setObjectLayers(marker, 'measure' )
|
|
|
|
+ marker.renderOrder = renderOrders.marker
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ */
|
|
|
|
+
|
|
class Path$1 extends ctrlPolygon {
|
|
class Path$1 extends ctrlPolygon {
|
|
constructor(prop) {
|
|
constructor(prop) {
|
|
super('Path', prop);
|
|
super('Path', prop);
|
|
@@ -42443,13 +42468,15 @@
|
|
fontsize: this.fontsize || 13,
|
|
fontsize: this.fontsize || 13,
|
|
renderOrder: renderOrders.label,
|
|
renderOrder: renderOrders.label,
|
|
pickOrder: renderOrders.label,
|
|
pickOrder: renderOrders.label,
|
|
- clipDistance: 10 //消失距离
|
|
|
|
|
|
+ clipDistance: 10,
|
|
|
|
+ fadeFar: this.fadeFar
|
|
}));
|
|
}));
|
|
this.titleLabel.sprite.material.depthTest = false;
|
|
this.titleLabel.sprite.material.depthTest = false;
|
|
var line = LineDraw.createFatLine([new Vector3(0, 0, 0), new Vector3(0, 0, titleLineHeight)], Object.assign({}, depthProps, {
|
|
var line = LineDraw.createFatLine([new Vector3(0, 0, 0), new Vector3(0, 0, titleLineHeight)], Object.assign({}, depthProps, {
|
|
color: '#ffffff',
|
|
color: '#ffffff',
|
|
lineWidth: 1,
|
|
lineWidth: 1,
|
|
- transparent: true
|
|
|
|
|
|
+ transparent: true,
|
|
|
|
+ fadeFar: this.fadeFar
|
|
}));
|
|
}));
|
|
line.renderOrder = renderOrders.line;
|
|
line.renderOrder = renderOrders.line;
|
|
group.add(line);
|
|
group.add(line);
|
|
@@ -42459,28 +42486,28 @@
|
|
this.setTitleVisi(this.titleLabel.parent, false, 'noPoint');
|
|
this.setTitleVisi(this.titleLabel.parent, false, 'noPoint');
|
|
this.setTitle(Potree.settings.isOfficial ? '' : 'title');
|
|
this.setTitle(Potree.settings.isOfficial ? '' : 'title');
|
|
line.addEventListener('mouseover', e => {
|
|
line.addEventListener('mouseover', e => {
|
|
- viewer.dispatchEvent({
|
|
|
|
|
|
+ this.editEnable && viewer.dispatchEvent({
|
|
type: "CursorChange",
|
|
type: "CursorChange",
|
|
action: 'add',
|
|
action: 'add',
|
|
name: 'hoverGrab'
|
|
name: 'hoverGrab'
|
|
});
|
|
});
|
|
});
|
|
});
|
|
line.addEventListener('startDragging', e => {
|
|
line.addEventListener('startDragging', e => {
|
|
- viewer.dispatchEvent({
|
|
|
|
|
|
+ this.editEnable && viewer.dispatchEvent({
|
|
type: "CursorChange",
|
|
type: "CursorChange",
|
|
action: 'add',
|
|
action: 'add',
|
|
name: 'grabbing'
|
|
name: 'grabbing'
|
|
});
|
|
});
|
|
});
|
|
});
|
|
line.addEventListener('drop', e => {
|
|
line.addEventListener('drop', e => {
|
|
- viewer.dispatchEvent({
|
|
|
|
|
|
+ this.editEnable && viewer.dispatchEvent({
|
|
type: "CursorChange",
|
|
type: "CursorChange",
|
|
action: 'remove',
|
|
action: 'remove',
|
|
name: 'hoverGrab'
|
|
name: 'hoverGrab'
|
|
});
|
|
});
|
|
});
|
|
});
|
|
line.addEventListener('mouseleave', e => {
|
|
line.addEventListener('mouseleave', e => {
|
|
- viewer.dispatchEvent({
|
|
|
|
|
|
+ this.editEnable && viewer.dispatchEvent({
|
|
type: "CursorChange",
|
|
type: "CursorChange",
|
|
action: 'remove',
|
|
action: 'remove',
|
|
name: 'grabbing'
|
|
name: 'grabbing'
|
|
@@ -42488,7 +42515,7 @@
|
|
});
|
|
});
|
|
line.addEventListener('drag', e => {
|
|
line.addEventListener('drag', e => {
|
|
var _e$intersect;
|
|
var _e$intersect;
|
|
- if ((_e$intersect = e.intersect) !== null && _e$intersect !== void 0 && _e$intersect.location) {
|
|
|
|
|
|
+ if (this.editEnable && (_e$intersect = e.intersect) !== null && _e$intersect !== void 0 && _e$intersect.location) {
|
|
this.updateTitlePos(e.intersect.location);
|
|
this.updateTitlePos(e.intersect.location);
|
|
this.dispatchEvent({
|
|
this.dispatchEvent({
|
|
type: 'titlePosChanged',
|
|
type: 'titlePosChanged',
|
|
@@ -42504,7 +42531,8 @@
|
|
color: this.pathColor || '#fff',
|
|
color: this.pathColor || '#fff',
|
|
opacity: 0.5,
|
|
opacity: 0.5,
|
|
side: 2,
|
|
side: 2,
|
|
- transparent: true
|
|
|
|
|
|
+ transparent: true,
|
|
|
|
+ fadeFar: this.fadeFar
|
|
})));
|
|
})));
|
|
//new THREE.MeshBasicMaterial({depthWrite:false, transparent:true, color:this.pathColor || '#fff', opacity:0.5, side:2}))
|
|
//new THREE.MeshBasicMaterial({depthWrite:false, transparent:true, color:this.pathColor || '#fff', opacity:0.5, side:2}))
|
|
this.add(this.edge);
|
|
this.add(this.edge);
|
|
@@ -42513,9 +42541,21 @@
|
|
var addHoverEvent = () => {
|
|
var addHoverEvent = () => {
|
|
var mouseover = e => {
|
|
var mouseover = e => {
|
|
this.setSelected(true, 'edge');
|
|
this.setSelected(true, 'edge');
|
|
|
|
+ if (this.addOrRemovePoint && !this.isNew) {
|
|
|
|
+ viewer.dispatchEvent({
|
|
|
|
+ type: "CursorChange",
|
|
|
|
+ action: 'add',
|
|
|
|
+ name: 'pen_addPoint'
|
|
|
|
+ });
|
|
|
|
+ }
|
|
};
|
|
};
|
|
var mouseleave = e => {
|
|
var mouseleave = e => {
|
|
this.setSelected(false, 'edge');
|
|
this.setSelected(false, 'edge');
|
|
|
|
+ viewer.dispatchEvent({
|
|
|
|
+ type: "CursorChange",
|
|
|
|
+ action: 'remove',
|
|
|
|
+ name: 'pen_addPoint'
|
|
|
|
+ });
|
|
};
|
|
};
|
|
this.edge.addEventListener('mouseover', mouseover);
|
|
this.edge.addEventListener('mouseover', mouseover);
|
|
this.edge.addEventListener('mouseleave', mouseleave);
|
|
this.edge.addEventListener('mouseleave', mouseleave);
|
|
@@ -42523,7 +42563,7 @@
|
|
var now = Date.now();
|
|
var now = Date.now();
|
|
if (now - this.lastDropTime < 100 || this.isNew) return; //防止拖拽marker时误触导致focus, 以及点到marker不focus
|
|
if (now - this.lastDropTime < 100 || this.isNew) return; //防止拖拽marker时误触导致focus, 以及点到marker不focus
|
|
|
|
|
|
- if (this.enableEdit) {
|
|
|
|
|
|
+ if (this.addOrRemovePoint) {
|
|
viewer.measuringTool.history.beforeChange(this);
|
|
viewer.measuringTool.history.beforeChange(this);
|
|
var prevIndex = Math.floor(e.hoveredElement.faceIndex / 2); //端点1(可能是最后一个)
|
|
var prevIndex = Math.floor(e.hoveredElement.faceIndex / 2); //端点1(可能是最后一个)
|
|
var nextIndex = this.getIndex(prevIndex, 1); //端点2(可能是第一个)
|
|
var nextIndex = this.getIndex(prevIndex, 1); //端点2(可能是第一个)
|
|
@@ -42558,6 +42598,12 @@
|
|
this.setEditEnable(true);
|
|
this.setEditEnable(true);
|
|
this.lastDropTime = 0;
|
|
this.lastDropTime = 0;
|
|
Potree.Utils.setObjectLayers(this, 'measure');
|
|
Potree.Utils.setObjectLayers(this, 'measure');
|
|
|
|
+ if (!Potree.settings.isOfficial) {
|
|
|
|
+ this.setAddOrRemPoint(true);
|
|
|
|
+ this.addEventListener('createDone', () => {
|
|
|
|
+ this.setAddOrRemPoint(false);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
this.initData(prop);
|
|
this.initData(prop);
|
|
}
|
|
}
|
|
updateTitlePos(pos) {
|
|
updateTitlePos(pos) {
|
|
@@ -42571,14 +42617,14 @@
|
|
}
|
|
}
|
|
if (pos) {
|
|
if (pos) {
|
|
this.titleLabel.parent.position.copy(pos);
|
|
this.titleLabel.parent.position.copy(pos);
|
|
- this.titleLabel.sprite.waitUpdate();
|
|
|
|
|
|
+ this.titleLabel.updatePose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
createMarkerLabel(text, hasHoverEvent) {
|
|
createMarkerLabel(text, hasHoverEvent) {
|
|
var label = new TextSprite$2($.extend({}, depthProps, {
|
|
var label = new TextSprite$2($.extend({}, depthProps, {
|
|
sizeInfo: labelSizeInfo$1,
|
|
sizeInfo: labelSizeInfo$1,
|
|
name: 'markerTitle',
|
|
name: 'markerTitle',
|
|
- text: text || Potree.settings.isOfficial ? "" : 'point',
|
|
|
|
|
|
+ text: "",
|
|
fontsize: this.fontsize || 12,
|
|
fontsize: this.fontsize || 12,
|
|
renderOrder: renderOrders.label,
|
|
renderOrder: renderOrders.label,
|
|
pickOrder: renderOrders.label,
|
|
pickOrder: renderOrders.label,
|
|
@@ -42595,7 +42641,8 @@
|
|
g: 0,
|
|
g: 0,
|
|
b: 0,
|
|
b: 0,
|
|
a: 1
|
|
a: 1
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ fadeFar: this.fadeFar
|
|
}));
|
|
}));
|
|
if (hasHoverEvent) {
|
|
if (hasHoverEvent) {
|
|
label.addEventListener('mouseover', () => {
|
|
label.addEventListener('mouseover', () => {
|
|
@@ -42608,8 +42655,8 @@
|
|
this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure');
|
|
this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure');
|
|
});
|
|
});
|
|
}
|
|
}
|
|
- label.measure = this;
|
|
|
|
- label.sprite.material.depthTestWhenPick = true;
|
|
|
|
|
|
+ //label.measure = this
|
|
|
|
+ //label.sprite.material.depthTestWhenPick = true
|
|
Potree.Utils.setObjectLayers(label, 'measure');
|
|
Potree.Utils.setObjectLayers(label, 'measure');
|
|
this.add(label);
|
|
this.add(label);
|
|
return label;
|
|
return label;
|
|
@@ -42621,7 +42668,7 @@
|
|
if (this.markerLabels[index]) {
|
|
if (this.markerLabels[index]) {
|
|
this.markerLabels[index].position.copy(pos);
|
|
this.markerLabels[index].position.copy(pos);
|
|
this.markerLabels[index].position.z += 1;
|
|
this.markerLabels[index].position.z += 1;
|
|
- this.markerLabels[index].sprite.waitUpdate();
|
|
|
|
|
|
+ this.markerLabels[index].updatePose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
setPathWidth(w) {
|
|
setPathWidth(w) {
|
|
@@ -42695,7 +42742,7 @@
|
|
{
|
|
{
|
|
var oldVisi = this.titleLabel.parent.visible;
|
|
var oldVisi = this.titleLabel.parent.visible;
|
|
this.setTitleVisi(this.titleLabel.parent, this.markers.length > 0, 'noPoint');
|
|
this.setTitleVisi(this.titleLabel.parent, this.markers.length > 0, 'noPoint');
|
|
- if (this.titleLabel.parent.visible && !oldVisi) this.titleLabel.sprite.waitUpdate();
|
|
|
|
|
|
+ if (this.titleLabel.parent.visible && !oldVisi) this.titleLabel.updatePose();
|
|
}
|
|
}
|
|
this.updateTitlePos();
|
|
this.updateTitlePos();
|
|
}
|
|
}
|
|
@@ -42704,31 +42751,60 @@
|
|
var index = o.index == void 0 ? this.points.length : o.index; //要当第几个
|
|
var index = o.index == void 0 ? this.points.length : o.index; //要当第几个
|
|
|
|
|
|
var marker = new Mesh(planeGeo$2, getMarkerMat('default'));
|
|
var marker = new Mesh(planeGeo$2, getMarkerMat('default'));
|
|
|
|
+ marker.name = 'marker';
|
|
setMarkerScale(marker, this.halfPathWidth);
|
|
setMarkerScale(marker, this.halfPathWidth);
|
|
marker.markerSelectStates = {};
|
|
marker.markerSelectStates = {};
|
|
Potree.Utils.setObjectLayers(marker, 'measure');
|
|
Potree.Utils.setObjectLayers(marker, 'measure');
|
|
marker.renderOrder = renderOrders.marker;
|
|
marker.renderOrder = renderOrders.marker;
|
|
- marker.addEventListener('click', e => {
|
|
|
|
- this.dispatchEvent({
|
|
|
|
- type: 'markerSelect',
|
|
|
|
- marker
|
|
|
|
|
|
+ marker.addEventListener('mouseover', e => {
|
|
|
|
+ if (this.addOrRemovePoint && !this.isNew) {
|
|
|
|
+ viewer.dispatchEvent({
|
|
|
|
+ type: "CursorChange",
|
|
|
|
+ action: 'add',
|
|
|
|
+ name: 'pen_delPoint'
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ } /* ,{importance:1} */);
|
|
|
|
+ marker.addEventListener('mouseleave', e => {
|
|
|
|
+ viewer.dispatchEvent({
|
|
|
|
+ type: "CursorChange",
|
|
|
|
+ action: 'remove',
|
|
|
|
+ name: 'pen_delPoint'
|
|
});
|
|
});
|
|
- this.setMarkerSelected(marker, 'click');
|
|
|
|
- setTimeout(() => {
|
|
|
|
- viewer.addEventListener('global_click', () => {
|
|
|
|
- this.dispatchEvent({
|
|
|
|
- type: 'markerSelect',
|
|
|
|
- marker,
|
|
|
|
- cancel: true
|
|
|
|
- });
|
|
|
|
- this.setMarkerSelected(marker, 'unclick');
|
|
|
|
- }, {
|
|
|
|
- once: true
|
|
|
|
|
|
+ });
|
|
|
|
+ marker.addEventListener('click', e => {
|
|
|
|
+ if (this.isNew) return;
|
|
|
|
+ if (this.addOrRemovePoint) {
|
|
|
|
+ //点击删除点
|
|
|
|
+
|
|
|
|
+ //viewer.measuringTool.history.beforeChange(this)
|
|
|
|
+ var _index = this.markers.indexOf(marker);
|
|
|
|
+ this.removeMarker(_index);
|
|
|
|
+ //viewer.measuringTool.history.afterChange(this)
|
|
|
|
+ this.dispatchEvent('changed');
|
|
|
|
+ } else {
|
|
|
|
+ //点击选中点
|
|
|
|
+ this.dispatchEvent({
|
|
|
|
+ type: 'markerSelect',
|
|
|
|
+ marker
|
|
});
|
|
});
|
|
- }, 1);
|
|
|
|
|
|
+ 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 => {
|
|
marker.addEventListener('startDragging', e => {
|
|
- this.setMarkerSelected(marker, 'click');
|
|
|
|
|
|
+ this.isNew || this.setMarkerSelected(marker, 'click'); //选中
|
|
});
|
|
});
|
|
marker.addEventListener('drop', e => {
|
|
marker.addEventListener('drop', e => {
|
|
if (e.button != MOUSE.LEFT) return;
|
|
if (e.button != MOUSE.LEFT) return;
|
|
@@ -42745,6 +42821,7 @@
|
|
});
|
|
});
|
|
var label = this.createMarkerLabel('');
|
|
var label = this.createMarkerLabel('');
|
|
this.markerLabels = [...this.markerLabels.slice(0, index), label, ...this.markerLabels.slice(index, this.points.length)];
|
|
this.markerLabels = [...this.markerLabels.slice(0, index), label, ...this.markerLabels.slice(index, this.points.length)];
|
|
|
|
+ this.setMarkerTitle(index, Potree.settings.isOfficial ? '' : 'point');
|
|
super.addMarker(Object.assign(o, {
|
|
super.addMarker(Object.assign(o, {
|
|
index,
|
|
index,
|
|
marker
|
|
marker
|
|
@@ -42755,9 +42832,18 @@
|
|
}
|
|
}
|
|
setEditEnable(state) {
|
|
setEditEnable(state) {
|
|
//是否显示可修改控件
|
|
//是否显示可修改控件
|
|
- this.enableEdit = !!state;
|
|
|
|
|
|
+ this.editEnable = !!state;
|
|
this.markers.forEach(e => Potree.Utils.updateVisible(e, 'editEnable', this.enableEdit));
|
|
this.markers.forEach(e => Potree.Utils.updateVisible(e, 'editEnable', this.enableEdit));
|
|
}
|
|
}
|
|
|
|
+ setAddOrRemPoint(state) {
|
|
|
|
+ //是否可以加减点, 此时不能拖拽marker
|
|
|
|
+ this.addOrRemovePoint = !!state;
|
|
|
|
+ viewer.dispatchEvent({
|
|
|
|
+ type: "CursorChange",
|
|
|
|
+ action: state ? 'add' : 'remove',
|
|
|
|
+ name: 'pen'
|
|
|
|
+ });
|
|
|
|
+ }
|
|
setTitleVisi(label, v) {
|
|
setTitleVisi(label, v) {
|
|
var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
Potree.Utils.updateVisible(label, 'hideTitle-' + reason, v);
|
|
Potree.Utils.updateVisible(label, 'hideTitle-' + reason, v);
|
|
@@ -42807,7 +42893,7 @@
|
|
marker.material = getMarkerMat('drag');
|
|
marker.material = getMarkerMat('drag');
|
|
marker.renderOrder = marker.pickOrder = renderOrders.marker + 2;
|
|
marker.renderOrder = marker.pickOrder = renderOrders.marker + 2;
|
|
} else if (marker.markerSelectStates.hover) {
|
|
} else if (marker.markerSelectStates.hover) {
|
|
- marker.material = getMarkerMat('delete');
|
|
|
|
|
|
+ marker.material = getMarkerMat(this.addOrRemovePoint ? 'delete' : 'drag');
|
|
marker.renderOrder = marker.pickOrder = renderOrders.marker + 1;
|
|
marker.renderOrder = marker.pickOrder = renderOrders.marker + 1;
|
|
} else {
|
|
} else {
|
|
marker.material = getMarkerMat('default');
|
|
marker.material = getMarkerMat('default');
|
|
@@ -42878,42 +42964,6 @@
|
|
super.dispose();
|
|
super.dispose();
|
|
this.dispatchEvent('disposed');
|
|
this.dispatchEvent('disposed');
|
|
}
|
|
}
|
|
-
|
|
|
|
- /* getCenter(type){
|
|
|
|
- if(this.center){
|
|
|
|
- return this.center.clone()
|
|
|
|
- }else{
|
|
|
|
- let center = this.points.reduce(function(total, currentValue ){
|
|
|
|
- return total.add(currentValue)
|
|
|
|
- }, new THREE.Vector3 )
|
|
|
|
-
|
|
|
|
- this.points.length && center.multiplyScalar(1/this.points.length)
|
|
|
|
- return center //求不出重心呜呜
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } */
|
|
|
|
-
|
|
|
|
- /* createCenterLabel(name){
|
|
|
|
- const centerLabel = new TextSprite(
|
|
|
|
- $.extend({},mainLabelProp,{sizeInfo: labelSizeInfo, name, disToLine:0, fontsize:16*textSizeRatio} )
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- centerLabel.addEventListener('mouseover',()=>{
|
|
|
|
- this.isNew || this.setSelected(true, 'centerLabel')
|
|
|
|
- })
|
|
|
|
- centerLabel.addEventListener('mouseleave',()=>{
|
|
|
|
- this.isNew || this.setSelected(false, 'centerLabel')
|
|
|
|
- })
|
|
|
|
- centerLabel.addEventListener('click',()=>{
|
|
|
|
- this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure')
|
|
|
|
- })
|
|
|
|
- Potree.Utils.setObjectLayers(centerLabel, 'measure' )
|
|
|
|
-
|
|
|
|
- Utils.updateVisible(centerLabel, 'setVisible', false)
|
|
|
|
- return centerLabel;
|
|
|
|
- }
|
|
|
|
- */
|
|
|
|
-
|
|
|
|
setFontSize(fontsize) {
|
|
setFontSize(fontsize) {
|
|
this.fontsize = fontsize;
|
|
this.fontsize = fontsize;
|
|
this.markerLabels.concat(this.titleLabel).forEach(e => {
|
|
this.markerLabels.concat(this.titleLabel).forEach(e => {
|
|
@@ -42924,17 +42974,11 @@
|
|
}
|
|
}
|
|
setFadeFar(far) {
|
|
setFadeFar(far) {
|
|
//消失距离
|
|
//消失距离
|
|
- var needsUpdate = far == void 0 != (this.fadeFar == void 0); //null为全部范围可见
|
|
|
|
this.traverse(e => {
|
|
this.traverse(e => {
|
|
var _e$material;
|
|
var _e$material;
|
|
|
|
+ if (e.name == 'marker') return; //因为marker材质共用的所以不改。因此正式编辑时(有marker时)别设置消失距离。
|
|
if ((_e$material = e.material) !== null && _e$material !== void 0 && (_e$material = _e$material.uniforms) !== null && _e$material !== void 0 && _e$material.fadeFar) {
|
|
if ((_e$material = e.material) !== null && _e$material !== void 0 && (_e$material = _e$material.uniforms) !== null && _e$material !== void 0 && _e$material.fadeFar) {
|
|
- if (far) {
|
|
|
|
- e.material.defines.FadeFar = '';
|
|
|
|
- e.material.uniforms.fadeFar.value = far;
|
|
|
|
- } else {
|
|
|
|
- delete e.material.defines.FadeFar;
|
|
|
|
- }
|
|
|
|
- needsUpdate && (e.material.needsUpdate = true);
|
|
|
|
|
|
+ e.material.fadeFar = far;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
this.fadeFar = far;
|
|
this.fadeFar = far;
|
|
@@ -42973,6 +43017,7 @@
|
|
}
|
|
}
|
|
Path$1.prototype.cloneMarker = Measure$1.prototype.cloneMarker;
|
|
Path$1.prototype.cloneMarker = Measure$1.prototype.cloneMarker;
|
|
Path$1.prototype.updateDatasetBelong = Measure$1.prototype.updateDatasetBelong;
|
|
Path$1.prototype.updateDatasetBelong = Measure$1.prototype.updateDatasetBelong;
|
|
|
|
+ Path$1.prototype.getTotalDistance = Measure$1.prototype.getTotalDistance;
|
|
|
|
|
|
/*
|
|
/*
|
|
|
|
|
|
@@ -43293,9 +43338,14 @@
|
|
var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var callback = arguments.length > 1 ? arguments[1] : undefined;
|
|
var callback = arguments.length > 1 ? arguments[1] : undefined;
|
|
var cancelFun = arguments.length > 2 ? arguments[2] : undefined;
|
|
var cancelFun = arguments.length > 2 ? arguments[2] : undefined;
|
|
|
|
+ var measure;
|
|
var domElement = this.viewer.renderer.domElement;
|
|
var domElement = this.viewer.renderer.domElement;
|
|
- var measure = args.measureType == 'MulDistance Ring' ? new Prism(args) : args.type == 'Path' ? new Path$1(args) : new Measure$1(args);
|
|
|
|
- this.scene.add(measure);
|
|
|
|
|
|
+ if (args.resume) {
|
|
|
|
+ measure = args.measure;
|
|
|
|
+ } else {
|
|
|
|
+ measure = args.measureType == 'MulDistance Ring' ? new Prism(args) : args.type == 'Path' ? new Path$1(args) : new Measure$1(args);
|
|
|
|
+ this.scene.add(measure);
|
|
|
|
+ }
|
|
measure.isNew = true;
|
|
measure.isNew = true;
|
|
this.viewer.dispatchEvent({
|
|
this.viewer.dispatchEvent({
|
|
type: 'start_inserting_measurement',
|
|
type: 'start_inserting_measurement',
|
|
@@ -43437,7 +43487,7 @@
|
|
if (e.measure && e.measure != measure || !viewer.scene.measurements.includes(measure) || !measure.isNew) {
|
|
if (e.measure && e.measure != measure || !viewer.scene.measurements.includes(measure) || !measure.isNew) {
|
|
return; //若指定了退出的measure但和该measure不一致,就返回
|
|
return; //若指定了退出的measure但和该measure不一致,就返回
|
|
}
|
|
}
|
|
- if (e.remove || e.type == 'cancel_insertions') {
|
|
|
|
|
|
+ if (e.remove || e.type == 'cancel_insertions' && !e.dontRemove) {
|
|
viewer.scene.removeMeasurement(measure);
|
|
viewer.scene.removeMeasurement(measure);
|
|
}
|
|
}
|
|
measure.editStateChange(false);
|
|
measure.editStateChange(false);
|
|
@@ -57859,7 +57909,7 @@
|
|
constructor(points, lineMat, color, name) {
|
|
constructor(points, lineMat, color, name) {
|
|
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
super();
|
|
super();
|
|
- this.curve = new CatmullRomCurve3(points, false, "centripetal" /* , tension */);
|
|
|
|
|
|
+ this.curve = new CatmullRomCurve3(points, false, options.tension == void 0 ? "centripetal" : 'catmullrom', options.tension);
|
|
this.name = name || 'curveNode';
|
|
this.name = name || 'curveNode';
|
|
this.handleMat = options.handleMat;
|
|
this.handleMat = options.handleMat;
|
|
this.lineMat = lineMat;
|
|
this.lineMat = lineMat;
|
|
@@ -58053,7 +58103,7 @@
|
|
return lineMats$1[name];
|
|
return lineMats$1[name];
|
|
};
|
|
};
|
|
class CameraAnimation$1 extends EventDispatcher {
|
|
class CameraAnimation$1 extends EventDispatcher {
|
|
- constructor(viewer) {
|
|
|
|
|
|
+ constructor(viewer, tension) {
|
|
super();
|
|
super();
|
|
this.viewer = viewer;
|
|
this.viewer = viewer;
|
|
this.selectedElement = null;
|
|
this.selectedElement = null;
|
|
@@ -58072,7 +58122,7 @@
|
|
this.curveType = "centripetal";
|
|
this.curveType = "centripetal";
|
|
this.visible = true;
|
|
this.visible = true;
|
|
this.targets = [];
|
|
this.targets = [];
|
|
- this.createPath();
|
|
|
|
|
|
+ this.createPath(tension);
|
|
this.duration = 5;
|
|
this.duration = 5;
|
|
this.percent = 0;
|
|
this.percent = 0;
|
|
this.currentIndex = 0;
|
|
this.currentIndex = 0;
|
|
@@ -58196,8 +58246,10 @@
|
|
this.durations.splice(index, 1);
|
|
this.durations.splice(index, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- createPath() {
|
|
|
|
- this.posCurve = new CurveCtrl([], getLineMat('position'), colors$1.position, 'posCurve');
|
|
|
|
|
|
+ createPath(tension) {
|
|
|
|
+ this.posCurve = new CurveCtrl([], getLineMat('position'), colors$1.position, 'posCurve', {
|
|
|
|
+ tension
|
|
|
|
+ });
|
|
//this.targetCurve = new CurveCtrl([], getLineMat('target'), colors.target, 'targetCurve', {noLine:true});
|
|
//this.targetCurve = new CurveCtrl([], getLineMat('target'), colors.target, 'targetCurve', {noLine:true});
|
|
this.posCurve.needsPercent = true;
|
|
this.posCurve.needsPercent = true;
|
|
this.node.add(this.posCurve);
|
|
this.node.add(this.posCurve);
|
|
@@ -63728,18 +63780,7 @@
|
|
var CursorDeal = {
|
|
var CursorDeal = {
|
|
priorityEvent: [
|
|
priorityEvent: [
|
|
//在前面的优先级高
|
|
//在前面的优先级高
|
|
-
|
|
|
|
{
|
|
{
|
|
- 'zoomInCloud': 'zoom-in'
|
|
|
|
- }, {
|
|
|
|
- 'hoverPano': 'pointer'
|
|
|
|
- }, {
|
|
|
|
- "notAllowed-default": 'not-allowed'
|
|
|
|
- }, {
|
|
|
|
- 'connectPano': "url({Potree.resourcePath}/images/connect.png),auto"
|
|
|
|
- }, {
|
|
|
|
- 'disconnectPano': "url({Potree.resourcePath}/images/connect-dis.png),auto"
|
|
|
|
- }, {
|
|
|
|
'grabbing': 'grabbing'
|
|
'grabbing': 'grabbing'
|
|
},
|
|
},
|
|
//通用
|
|
//通用
|
|
@@ -63747,18 +63788,27 @@
|
|
'hoverGrab': 'grab'
|
|
'hoverGrab': 'grab'
|
|
},
|
|
},
|
|
//通用
|
|
//通用
|
|
-
|
|
|
|
{
|
|
{
|
|
- 'hoverLine': 'pointer'
|
|
|
|
- }, {
|
|
|
|
- 'hoverTranHandle': 'grab'
|
|
|
|
- }, {
|
|
|
|
pen_delPoint: "url({Potree.resourcePath}/images/polygon_mark/pic_pen_sub.png),auto"
|
|
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_addPoint: "url({Potree.resourcePath}/images/polygon_mark/pic_pen_add.png),auto"
|
|
}, {
|
|
}, {
|
|
pen: "url({Potree.resourcePath}/images/polygon_mark/pic_pen.png),auto"
|
|
pen: "url({Potree.resourcePath}/images/polygon_mark/pic_pen.png),auto"
|
|
}, {
|
|
}, {
|
|
|
|
+ 'zoomInCloud': 'zoom-in'
|
|
|
|
+ }, {
|
|
|
|
+ 'hoverPano': 'pointer'
|
|
|
|
+ }, {
|
|
|
|
+ "notAllowed-default": 'not-allowed'
|
|
|
|
+ }, {
|
|
|
|
+ 'connectPano': "url({Potree.resourcePath}/images/connect.png),auto"
|
|
|
|
+ }, {
|
|
|
|
+ 'disconnectPano': "url({Potree.resourcePath}/images/connect-dis.png),auto"
|
|
|
|
+ }, {
|
|
|
|
+ 'hoverLine': 'pointer'
|
|
|
|
+ }, {
|
|
|
|
+ 'hoverTranHandle': 'grab'
|
|
|
|
+ }, {
|
|
"movePointcloud": 'move'
|
|
"movePointcloud": 'move'
|
|
}, {
|
|
}, {
|
|
"polygon_isIntersectSelf": 'not-allowed'
|
|
"polygon_isIntersectSelf": 'not-allowed'
|
|
@@ -73024,7 +73074,7 @@
|
|
|
|
|
|
var CamAniEditor = {
|
|
var CamAniEditor = {
|
|
createAnimation(data) {
|
|
createAnimation(data) {
|
|
- var animation = new CameraAnimation$1(viewer);
|
|
|
|
|
|
+ var animation = new CameraAnimation$1(viewer, data.tension);
|
|
if (data) {
|
|
if (data) {
|
|
animation.name = data.name;
|
|
animation.name = data.name;
|
|
animation.duration = data.duration;
|
|
animation.duration = data.duration;
|