|
@@ -22425,14 +22425,14 @@
|
|
},
|
|
},
|
|
renderOrders: {
|
|
renderOrders: {
|
|
//会影响到绘制、pick时的顺序。
|
|
//会影响到绘制、pick时的顺序。
|
|
- model: 10,
|
|
|
|
|
|
+ line: 3,
|
|
reticule: 5,
|
|
reticule: 5,
|
|
measureMarker: 6,
|
|
measureMarker: 6,
|
|
measureLabelSub: 7,
|
|
measureLabelSub: 7,
|
|
measureLabel: 8,
|
|
measureLabel: 8,
|
|
sorptionSign: 10,
|
|
sorptionSign: 10,
|
|
model: 10,
|
|
model: 10,
|
|
- line: 3,
|
|
|
|
|
|
+ model: 10,
|
|
magnifier: 50
|
|
magnifier: 50
|
|
},
|
|
},
|
|
siteModel: {
|
|
siteModel: {
|
|
@@ -39810,7 +39810,7 @@
|
|
class ctrlPolygon extends Object3D {
|
|
class ctrlPolygon extends Object3D {
|
|
constructor(type, prop) {
|
|
constructor(type, prop) {
|
|
super();
|
|
super();
|
|
- this.type = type;
|
|
|
|
|
|
+ this.Type = type;
|
|
this.maxMarkers = Number.MAX_SAFE_INTEGER;
|
|
this.maxMarkers = Number.MAX_SAFE_INTEGER;
|
|
this.transformData(prop);
|
|
this.transformData(prop);
|
|
for (var i in prop) {
|
|
for (var i in prop) {
|
|
@@ -42346,8 +42346,21 @@
|
|
var titleLineHeight = 2;
|
|
var titleLineHeight = 2;
|
|
//const edgeExtrudePoints = [new THREE.Vector2(0,-0.4), new THREE.Vector2(0,0.4)]
|
|
//const edgeExtrudePoints = [new THREE.Vector2(0,-0.4), new THREE.Vector2(0,0.4)]
|
|
var renderOrders = {
|
|
var renderOrders = {
|
|
|
|
+ path: 1,
|
|
|
|
+ marker: 2,
|
|
line: 3,
|
|
line: 3,
|
|
- title: 4
|
|
|
|
|
|
+ label: 4
|
|
|
|
+ };
|
|
|
|
+ var depthProps = {
|
|
|
|
+ useDepth: true,
|
|
|
|
+ //startClipDis : 0.5,
|
|
|
|
+ clipDistance: 6,
|
|
|
|
+ //消失距离
|
|
|
|
+ //startOcclusDis: 0.5,
|
|
|
|
+ occlusionDistance: 2,
|
|
|
|
+ //变为backColor距离
|
|
|
|
+ maxOcclusionFactor: 0.7,
|
|
|
|
+ maxClipFactor: 1
|
|
};
|
|
};
|
|
var planeGeo$2 = new PlaneBufferGeometry(1, 1);
|
|
var planeGeo$2 = new PlaneBufferGeometry(1, 1);
|
|
var voidGeometry = new BufferGeometry();
|
|
var voidGeometry = new BufferGeometry();
|
|
@@ -42356,10 +42369,10 @@
|
|
return function (name) {
|
|
return function (name) {
|
|
if (!mats) {
|
|
if (!mats) {
|
|
mats = {
|
|
mats = {
|
|
- default: new MeshBasicMaterial({
|
|
|
|
|
|
+ default: new DepthBasicMaterial($.extend({}, depthProps, {
|
|
transparent: true,
|
|
transparent: true,
|
|
map: texLoader$7.load(Potree.resourcePath + '/textures/dot_n.png')
|
|
map: texLoader$7.load(Potree.resourcePath + '/textures/dot_n.png')
|
|
- }),
|
|
|
|
|
|
+ })),
|
|
drag: new MeshBasicMaterial({
|
|
drag: new MeshBasicMaterial({
|
|
transparent: true,
|
|
transparent: true,
|
|
map: texLoader$7.load(Potree.resourcePath + '/textures/dot_s.png')
|
|
map: texLoader$7.load(Potree.resourcePath + '/textures/dot_s.png')
|
|
@@ -42391,7 +42404,7 @@
|
|
{
|
|
{
|
|
var group = new Object3D();
|
|
var group = new Object3D();
|
|
group.name = 'titleGroup';
|
|
group.name = 'titleGroup';
|
|
- this.titleLabel = new TextSprite$2(Object.assign({}, {} /* depthMatProp */, {
|
|
|
|
|
|
+ this.titleLabel = new TextSprite$2(Object.assign({}, depthProps, {
|
|
text: '',
|
|
text: '',
|
|
sizeInfo: {
|
|
sizeInfo: {
|
|
width2d: 200
|
|
width2d: 200
|
|
@@ -42403,15 +42416,17 @@
|
|
a: 1.0
|
|
a: 1.0
|
|
},
|
|
},
|
|
backgroundColor: {
|
|
backgroundColor: {
|
|
- r: 0,
|
|
|
|
- g: 0,
|
|
|
|
- b: 0,
|
|
|
|
- a: 0.7
|
|
|
|
|
|
+ r: 255,
|
|
|
|
+ g: 255,
|
|
|
|
+ b: 255,
|
|
|
|
+ a: 0.9
|
|
},
|
|
},
|
|
borderRadius: 6,
|
|
borderRadius: 6,
|
|
fontsize: this.fontsize || 13,
|
|
fontsize: this.fontsize || 13,
|
|
- fontWeight: '' //thick
|
|
|
|
- //renderOrder : renderOrders.label, pickOrder:renderOrders.label,
|
|
|
|
|
|
+ fontWeight: '',
|
|
|
|
+ //thick
|
|
|
|
+ renderOrder: renderOrders.label,
|
|
|
|
+ pickOrder: renderOrders.label
|
|
//useDepth : true ,//暂时不遮挡
|
|
//useDepth : true ,//暂时不遮挡
|
|
}));
|
|
}));
|
|
this.titleLabel.sprite.material.depthTest = false;
|
|
this.titleLabel.sprite.material.depthTest = false;
|
|
@@ -42423,19 +42438,20 @@
|
|
group.add(this.titleLabel);
|
|
group.add(this.titleLabel);
|
|
this.titleLabel.position.z = titleLineHeight;
|
|
this.titleLabel.position.z = titleLineHeight;
|
|
this.add(group);
|
|
this.add(group);
|
|
|
|
+ this.setTitleVisi(this.titleLabel.parent, false, 'noPoint');
|
|
this.setTitle(this.title);
|
|
this.setTitle(this.title);
|
|
}
|
|
}
|
|
{
|
|
{
|
|
//和measure不同的是它的边是连在一起的一整条
|
|
//和measure不同的是它的边是连在一起的一整条
|
|
- this.edge = new Mesh(voidGeometry, new MeshBasicMaterial({
|
|
|
|
- depthWrite: false,
|
|
|
|
- transparent: true,
|
|
|
|
|
|
+ this.edge = new Mesh(voidGeometry, new DepthBasicMaterial($.extend({}, depthProps, {
|
|
color: this.pathColor || '#fff',
|
|
color: this.pathColor || '#fff',
|
|
opacity: 0.5,
|
|
opacity: 0.5,
|
|
- side: 2
|
|
|
|
- }));
|
|
|
|
|
|
+ side: 2,
|
|
|
|
+ transparent: true
|
|
|
|
+ })));
|
|
|
|
+ //new THREE.MeshBasicMaterial({depthWrite:false, transparent:true, color:this.pathColor || '#fff', opacity:0.5, side:2}))
|
|
this.add(this.edge);
|
|
this.add(this.edge);
|
|
- this.edge.renderOrder = Potree.config.renderOrders.line;
|
|
|
|
|
|
+ this.edge.renderOrder = renderOrders.path;
|
|
this.edge.name = 'pathEdge';
|
|
this.edge.name = 'pathEdge';
|
|
var addHoverEvent = () => {
|
|
var addHoverEvent = () => {
|
|
var mouseover = e => {
|
|
var mouseover = e => {
|
|
@@ -42487,15 +42503,27 @@
|
|
Potree.Utils.setObjectLayers(this, 'measure');
|
|
Potree.Utils.setObjectLayers(this, 'measure');
|
|
this.initData(prop);
|
|
this.initData(prop);
|
|
}
|
|
}
|
|
- createMarkerLabel(name, hasHoverEvent) {
|
|
|
|
- var inf = {
|
|
|
|
|
|
+ createMarkerLabel(text, hasHoverEvent) {
|
|
|
|
+ var label = new TextSprite$2($.extend({}, depthProps, {
|
|
sizeInfo: labelSizeInfo$1,
|
|
sizeInfo: labelSizeInfo$1,
|
|
- name: name || 'label'
|
|
|
|
- };
|
|
|
|
- var label = new TextSprite$2($.extend({
|
|
|
|
- text: inf.name,
|
|
|
|
- fontsize: this.fontsize
|
|
|
|
- }, hasHoverEvent ? mainLabelProp$1 : subLabelProp$1, inf));
|
|
|
|
|
|
+ name: 'markerTitle',
|
|
|
|
+ text: text || 'aaa',
|
|
|
|
+ fontsize: this.fontsize,
|
|
|
|
+ renderOrder: renderOrders.label,
|
|
|
|
+ pickOrder: renderOrders.label,
|
|
|
|
+ backgroundColor: {
|
|
|
|
+ r: 20,
|
|
|
|
+ g: 20,
|
|
|
|
+ b: 20,
|
|
|
|
+ a: 0.3
|
|
|
|
+ },
|
|
|
|
+ textColor: {
|
|
|
|
+ r: 255,
|
|
|
|
+ g: 255,
|
|
|
|
+ b: 255,
|
|
|
|
+ a: 1
|
|
|
|
+ }
|
|
|
|
+ }));
|
|
if (hasHoverEvent) {
|
|
if (hasHoverEvent) {
|
|
label.addEventListener('mouseover', () => {
|
|
label.addEventListener('mouseover', () => {
|
|
this.setSelected(true, 'label');
|
|
this.setSelected(true, 'label');
|
|
@@ -42507,19 +42535,22 @@
|
|
this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure');
|
|
this.isNew || viewer.measuringTool.isAdding || viewer.focusOnObject(this, 'measure');
|
|
});
|
|
});
|
|
}
|
|
}
|
|
- label.visible = false;
|
|
|
|
label.measure = this;
|
|
label.measure = this;
|
|
label.sprite.material.depthTestWhenPick = true;
|
|
label.sprite.material.depthTestWhenPick = true;
|
|
Potree.Utils.setObjectLayers(label, 'measure');
|
|
Potree.Utils.setObjectLayers(label, 'measure');
|
|
|
|
+ label.position.z = 1;
|
|
return label;
|
|
return label;
|
|
}
|
|
}
|
|
updateMarker(marker, pos) {
|
|
updateMarker(marker, pos) {
|
|
|
|
+ var _this$markerLabels$in;
|
|
marker.position.copy(pos);
|
|
marker.position.copy(pos);
|
|
marker.position.z += 0.01;
|
|
marker.position.z += 0.01;
|
|
var index = this.markers.indexOf(marker);
|
|
var index = this.markers.indexOf(marker);
|
|
if (index == 0) {
|
|
if (index == 0) {
|
|
this.titleLabel.parent.position.copy(pos);
|
|
this.titleLabel.parent.position.copy(pos);
|
|
|
|
+ this.titleLabel.sprite.waitUpdate();
|
|
}
|
|
}
|
|
|
|
+ (_this$markerLabels$in = this.markerLabels[index]) === null || _this$markerLabels$in === void 0 || _this$markerLabels$in.sprite.waitUpdate();
|
|
}
|
|
}
|
|
setPathWidth(w) {
|
|
setPathWidth(w) {
|
|
this.halfPathWidth = w / 2;
|
|
this.halfPathWidth = w / 2;
|
|
@@ -42587,17 +42618,22 @@
|
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
if (options.index == -1) return;
|
|
if (options.index == -1) return;
|
|
super.update(options); //updateEdge marker
|
|
super.update(options); //updateEdge marker
|
|
|
|
+
|
|
|
|
+ {
|
|
|
|
+ var oldVisi = this.titleLabel.parent.visible;
|
|
|
|
+ this.setTitleVisi(this.titleLabel.parent, this.markers.length > 0, 'noPoint');
|
|
|
|
+ if (this.titleLabel.parent.visible && !oldVisi) this.titleLabel.sprite.waitUpdate();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
addMarker() {
|
|
addMarker() {
|
|
var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
- //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.add(this.createMarkerLabel());
|
|
|
|
setMarkerScale(marker, this.halfPathWidth);
|
|
setMarkerScale(marker, this.halfPathWidth);
|
|
marker.markerSelectStates = {};
|
|
marker.markerSelectStates = {};
|
|
Potree.Utils.setObjectLayers(marker, 'measure');
|
|
Potree.Utils.setObjectLayers(marker, 'measure');
|
|
- marker.renderOrder = Potree.config.renderOrders.measureMarker;
|
|
|
|
|
|
+ marker.renderOrder = renderOrders.marker;
|
|
marker.addEventListener('click', e => {
|
|
marker.addEventListener('click', e => {
|
|
this.dispatchEvent({
|
|
this.dispatchEvent({
|
|
type: 'markerSelect',
|
|
type: 'markerSelect',
|
|
@@ -42634,8 +42670,12 @@
|
|
this.setMarkerSelected(marker, 'unclick');
|
|
this.setMarkerSelected(marker, 'unclick');
|
|
});
|
|
});
|
|
super.addMarker(Object.assign(o, {
|
|
super.addMarker(Object.assign(o, {
|
|
|
|
+ index,
|
|
marker
|
|
marker
|
|
}));
|
|
}));
|
|
|
|
+ var label = this.createMarkerLabel('');
|
|
|
|
+ marker.add(label);
|
|
|
|
+ this.markerLabels = [...this.markerLabels.slice(0, index), label, ...this.markerLabels.slice(index, this.points.length)];
|
|
|
|
|
|
//this.updateEdge()
|
|
//this.updateEdge()
|
|
return marker;
|
|
return marker;
|
|
@@ -42691,13 +42731,13 @@
|
|
state == 'unclick' && (marker.markerSelectStates.click = false);
|
|
state == 'unclick' && (marker.markerSelectStates.click = false);
|
|
if (marker.markerSelectStates.click) {
|
|
if (marker.markerSelectStates.click) {
|
|
marker.material = getMarkerMat('drag');
|
|
marker.material = getMarkerMat('drag');
|
|
- marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker + 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('delete');
|
|
- marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker + 1;
|
|
|
|
|
|
+ marker.renderOrder = marker.pickOrder = renderOrders.marker + 1;
|
|
} else {
|
|
} else {
|
|
marker.material = getMarkerMat('default');
|
|
marker.material = getMarkerMat('default');
|
|
- marker.renderOrder = marker.pickOrder = Potree.config.renderOrders.measureMarker;
|
|
|
|
|
|
+ marker.renderOrder = marker.pickOrder = renderOrders.marker;
|
|
}
|
|
}
|
|
|
|
|
|
//marker.selected = absoluteState
|
|
//marker.selected = absoluteState
|
|
@@ -42941,12 +42981,12 @@
|
|
createMeasureFromData(data) {
|
|
createMeasureFromData(data) {
|
|
//add
|
|
//add
|
|
|
|
|
|
- var measure = data.measureType == 'MulDistance Ring' ? new Prism(data) : data.measureType == 'Path' ? new Path$1(data) : new Measure$1(data);
|
|
|
|
|
|
+ var measure = data.measureType == 'MulDistance Ring' ? new Prism(data) : data.type == 'Path' ? new Path$1(data) : new Measure$1(data);
|
|
if (measure.failBuilded) {
|
|
if (measure.failBuilded) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
viewer.scene.addMeasurement(measure);
|
|
viewer.scene.addMeasurement(measure);
|
|
- data.measureType == 'Path' && measure.setEditEnable(false);
|
|
|
|
|
|
+ data.type == 'Path' && measure.setEditEnable(false);
|
|
if (measure.guideLine) measure.guideLine.visible = false;
|
|
if (measure.guideLine) measure.guideLine.visible = false;
|
|
return measure;
|
|
return measure;
|
|
}
|
|
}
|
|
@@ -43148,7 +43188,7 @@
|
|
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 domElement = this.viewer.renderer.domElement;
|
|
var domElement = this.viewer.renderer.domElement;
|
|
- var measure = args.measureType == 'MulDistance Ring' ? new Prism(args) : args.measureType == 'Path' ? new Path$1(args) : new Measure$1(args);
|
|
|
|
|
|
+ var measure = args.measureType == 'MulDistance Ring' ? new Prism(args) : args.type == 'Path' ? new Path$1(args) : new Measure$1(args);
|
|
this.scene.add(measure);
|
|
this.scene.add(measure);
|
|
measure.isNew = true;
|
|
measure.isNew = true;
|
|
this.viewer.dispatchEvent({
|
|
this.viewer.dispatchEvent({
|
|
@@ -56248,7 +56288,7 @@
|
|
this.titleLabel.parent.add(this.spot);
|
|
this.titleLabel.parent.add(this.spot);
|
|
this.updateTitlePos();
|
|
this.updateTitlePos();
|
|
this.spot.position.set(0, 0, 0);
|
|
this.spot.position.set(0, 0, 0);
|
|
- this.spot.quaternion.set(0, 0, 0, 1); //this.titleLabel.update()
|
|
|
|
|
|
+ this.spot.quaternion.set(0, 0, 0, 1); //this.titleLabel.waitUpdate()
|
|
this.line.renderOrder = renderOrders$1.line; //还原
|
|
this.line.renderOrder = renderOrders$1.line; //还原
|
|
}
|
|
}
|
|
Potree.Utils.updateVisible(this.line, 'hideTitle', !this.titleLabel.visible && onMesh ? false : true);
|
|
Potree.Utils.updateVisible(this.line, 'hideTitle', !this.titleLabel.visible && onMesh ? false : true);
|