|
@@ -25015,12 +25015,12 @@
|
|
|
//设置下默认经纬度位置,当点击恢复默认时要恢复到此位置
|
|
|
|
|
|
if (!model.isPointcloud) {
|
|
|
- var _prop$raw;
|
|
|
+ var _prop$raw, _prop$raw2, _prop$raw3;
|
|
|
//有经纬度 3dtiles
|
|
|
prop.baseRotation && model.rotation.copy(prop.baseRotation); //有的需要翻转90度
|
|
|
|
|
|
- if ((_prop$raw = prop.raw) !== null && _prop$raw !== void 0 && _prop$raw.convertType) {
|
|
|
- //带坐标的osgb,原本给cesium用的,把在球面的转为平面的坐标
|
|
|
+ if ((_prop$raw = prop.raw) !== null && _prop$raw !== void 0 && _prop$raw.convertType && model.fileType == '3dtiles' && ((_prop$raw2 = prop.raw) !== null && _prop$raw2 !== void 0 && _prop$raw2.wgs84 || (_prop$raw3 = prop.raw) !== null && _prop$raw3 !== void 0 && _prop$raw3.gcj02)) {
|
|
|
+ //新的软件转出的带坐标的osgb,原本给cesium用的,把在球面的转为平面的坐标
|
|
|
|
|
|
var center = new Vector3().fromArray(model.runtime.getTileset().tileset.root.transform.slice(12, 15));
|
|
|
var pos = math.fromCes(center);
|
|
@@ -25030,8 +25030,8 @@
|
|
|
|
|
|
model.hasLonLat = true;
|
|
|
} else {
|
|
|
- var _prop$raw2;
|
|
|
- var lonlat = /* prop.raw?.wgs84 || */(_prop$raw2 = prop.raw) === null || _prop$raw2 === void 0 ? void 0 : _prop$raw2.rtkLocation; //前者为素材库的osgb的
|
|
|
+ var _prop$raw4;
|
|
|
+ var lonlat = /* prop.raw?.wgs84 || */(_prop$raw4 = prop.raw) === null || _prop$raw4 === void 0 ? void 0 : _prop$raw4.rtkLocation; //前者为素材库的osgb的
|
|
|
if (lonlat) {
|
|
|
var locationLonLat = lonlat.split(',').map(e => parseFloat(e));
|
|
|
var location = new Vector3().fromArray(viewer.transform.lonlatToLocal.forward(locationLonLat));
|
|
@@ -25053,9 +25053,9 @@
|
|
|
model.position.add(location);
|
|
|
}
|
|
|
} else {
|
|
|
- var _prop$raw3;
|
|
|
+ var _prop$raw5;
|
|
|
MergeEditor.moveBoundCenterTo(model, location);
|
|
|
- if ((_prop$raw3 = prop.raw) !== null && _prop$raw3 !== void 0 && _prop$raw3.orientation) {
|
|
|
+ if ((_prop$raw5 = prop.raw) !== null && _prop$raw5 !== void 0 && _prop$raw5.orientation) {
|
|
|
model.rotation.y = parseFloat(prop.raw.orientation);
|
|
|
}
|
|
|
if (prop.is4dkkModel) {
|
|
@@ -50699,10 +50699,11 @@
|
|
|
var sideVec = void 0; //该点两边对应的向量
|
|
|
var uvX = void 0;
|
|
|
if (i == 0 || i == count - 1) {
|
|
|
- sideVec = new Vector3().copy(math.getNormal2d({
|
|
|
+ var nor = math.getNormal2d({
|
|
|
p1: i == 0 ? B : O,
|
|
|
p2: i == 0 ? O : A
|
|
|
- })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
|
+ }) || new Vector3(1, 0, 0);
|
|
|
+ sideVec = new Vector3().copy(nor).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
|
uvX = i == 0 ? 0 : 1; //percent of length
|
|
|
} else {
|
|
|
var OA = new Vector3().subVectors(A, O).setZ(0).normalize(); //只保证俯视角度正确。(如果两点有高度差,该段四个点不会在同一平面,看起来有扭转,有的地方会肥大,但从俯视角度看是正确的。)
|
|
@@ -50710,10 +50711,11 @@
|
|
|
var angle = math.getAngle(OA, OB, 'z');
|
|
|
if (math.closeTo(angle, 0, 1e-4) || math.closeTo(angle, Math.PI, 1e-4) || math.closeTo(angle, -Math.PI, 1e-4)) {
|
|
|
//这时候直接加两个向量算出的平分线不准,故直接找垂线
|
|
|
- sideVec = new Vector3().copy(math.getNormal2d({
|
|
|
+ var _nor = math.getNormal2d({
|
|
|
p1: O,
|
|
|
p2: A
|
|
|
- })).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
|
+ }) || new Vector3(1, 0, 0);
|
|
|
+ sideVec = new Vector3().copy(_nor).setZ(0).multiplyScalar(this.halfPathWidth); //垂线
|
|
|
//console.log('接近0或180',angle, sideVec)
|
|
|
} else {
|
|
|
var midVecLength = this.halfPathWidth / Math.sin(angle / 2);
|
|
@@ -87718,7 +87720,7 @@
|
|
|
this.dispatchEvent('content_changed'); //渲染 尤其vpn访问google网速慢需要
|
|
|
}, 1000);
|
|
|
});
|
|
|
- this.map3d.sceneGroup.position.z = -20;
|
|
|
+ this.map3d.sceneGroup.position.z = -0.1;
|
|
|
this.addEventListener('setLonlat', e => {
|
|
|
this.map3d.disabled = false;
|
|
|
Potree.settings.cameraFar = 80000000;
|
|
@@ -93214,10 +93216,11 @@
|
|
|
var angle = radSegments * i;
|
|
|
circlePts.push(new Vector2(radius * Math.cos(angle), radius * Math.sin(angle)));
|
|
|
}
|
|
|
- var mat = new MeshStandardMaterial({
|
|
|
+
|
|
|
+ //var mat = new THREE.MeshStandardMaterial({color, /* wireframe:true, depthTest:false,*/ roughness:0.9,metalness:0.3})
|
|
|
+ var mat = new DepthBasicMaterial({
|
|
|
color,
|
|
|
- /* wireframe:true, depthTest:false,*/roughness: 0.9,
|
|
|
- metalness: 0.3
|
|
|
+ useDepth: false
|
|
|
});
|
|
|
var linePath = path.map(e => {
|
|
|
e instanceof Array && (e = new Vector3().fromArray(e));
|
|
@@ -93252,6 +93255,23 @@
|
|
|
Potree.Utils.updateVisible(mesh, 'isInEntity', e.entity && e.entity.name == visiEntity);
|
|
|
});
|
|
|
}
|
|
|
+ {
|
|
|
+ mat.defines.mapOverlay = true;
|
|
|
+ var map = new TextureLoader().load(Potree.resourcePath + '/textures/rectangle.png', () => {
|
|
|
+ viewer.dispatchEvent('content_changed');
|
|
|
+ });
|
|
|
+ mat.uniforms.mapColor.value.set('#f00');
|
|
|
+ map.anisotropy = 2;
|
|
|
+ map.wrapS = RepeatWrapping;
|
|
|
+ map.wrapT = RepeatWrapping;
|
|
|
+ /* map.repeat.set(10,1.3)
|
|
|
+ map.offset.set(0,-0.15) */
|
|
|
+ mat.map = map;
|
|
|
+
|
|
|
+ //mat.map.repeat.x = Math.round(this.totalLength / this.halfPathWidth * 0.5) * (this.reverse ? -1 : 1)
|
|
|
+ mat.map.needsUpdate = true;
|
|
|
+ mat.setUV();
|
|
|
+ }
|
|
|
}
|
|
|
while (index < data.length) {
|
|
|
addMesh(data[index]);
|