|
@@ -69855,7 +69855,7 @@ void main() {
|
|
|
}else {
|
|
|
volume = new Potree.BoxVolume({boxColor: 0xff3158/* , boxOpacity:0.3 */});
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
volume.clip = args.clip || false;
|
|
|
volume.name = args.name || 'Volume';
|
|
|
volume.clipTask = ClipTask.SHOW_OUTSIDE;
|
|
@@ -112215,7 +112215,7 @@ ENDSEC
|
|
|
this.updateMatrixWorld = function () {
|
|
|
if(!this.visible)return//add
|
|
|
if ( this.object !== undefined ) {
|
|
|
-
|
|
|
+
|
|
|
this.object.updateMatrixWorld();
|
|
|
this.object.parent.matrixWorld.decompose( parentPosition, parentQuaternion, parentScale );
|
|
|
this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
|
|
@@ -114533,7 +114533,52 @@ ENDSEC
|
|
|
|
|
|
|
|
|
model.lastMatrixWorld = model.matrixWorld.clone();
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ changeOpacity(model, opacity){
|
|
|
+
|
|
|
+ let isRoot = model.dataset_id != void 0; //是否是最外层
|
|
|
+
|
|
|
+
|
|
|
+ if(model.isPointcloud){
|
|
|
+ model.changePointOpacity(opacity);
|
|
|
+ //MergeEditor.updateEdgeStrength()
|
|
|
+ }else {
|
|
|
+ //model.traverse(e=>e.material && setOp(e, opacity))
|
|
|
+ model.traverse(mesh=>{
|
|
|
+ if(mesh.material){
|
|
|
+
|
|
|
+ mesh.material.opacity = opacity;
|
|
|
+ if(opacity<1){
|
|
|
+ mesh.material.transparent = true;
|
|
|
+ if(model.isPointcloud){
|
|
|
+ mesh.changePointOpacity(opacity);
|
|
|
+ }else {
|
|
|
+ mesh.material.opacity = opacity;
|
|
|
+ }
|
|
|
+
|
|
|
+ mesh.renderOrder = Potree.config.renderOrders.model+1;
|
|
|
+ mesh.material.depthWrite = false;
|
|
|
+ }else {
|
|
|
+ mesh.material.transparent = false;
|
|
|
+ mesh.renderOrder = Potree.config.renderOrders.model;
|
|
|
+ mesh.material.depthWrite = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ isRoot && (model.opacity = opacity);//记录在最外层
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
};
|
|
|
|
|
|
|
|
@@ -122404,6 +122449,9 @@ ENDSEC
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //xzw add:----
|
|
|
+
|
|
|
+ let unknownExtensions = {};
|
|
|
let oldSet = MeshBasicMaterial.prototype.setValues;
|
|
|
MeshBasicMaterial.prototype.setValues = function(values){
|
|
|
return oldSet.call(this,values)
|
|
@@ -122740,9 +122788,10 @@ ENDSEC
|
|
|
default:
|
|
|
|
|
|
if ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) {
|
|
|
-
|
|
|
- console.warn( 'THREE.GLTFLoader: Unknown extension "' + extensionName + '".' ,'使用默认的KHR_materials_unlit材质' );
|
|
|
-
|
|
|
+ if(!unknownExtensions[extensionName]){
|
|
|
+ console.warn( 'GLTFLoader: Unknown extension "' + extensionName + '".' ,'使用默认的KHR_materials_unlit材质' );
|
|
|
+ unknownExtensions[extensionName] = 1;
|
|
|
+ }
|
|
|
//xzw add: 默认
|
|
|
json.extensionsRequired = 'KHR_materials_unlit';
|
|
|
json.materials = [{
|
|
@@ -143674,6 +143723,7 @@ ENDSEC
|
|
|
}
|
|
|
|
|
|
function getRefine(refine) {
|
|
|
+
|
|
|
switch (refine) {
|
|
|
case 'REPLACE':
|
|
|
case 'replace':
|
|
@@ -143683,7 +143733,7 @@ ENDSEC
|
|
|
case 'add':
|
|
|
return TILE_REFINEMENT.ADD;
|
|
|
|
|
|
- default:
|
|
|
+ default:
|
|
|
return refine;
|
|
|
}
|
|
|
}
|
|
@@ -144445,6 +144495,10 @@ ENDSEC
|
|
|
tileBoxes.add(box);
|
|
|
boxMap[tile.id] = box;
|
|
|
}
|
|
|
+ //xzw :
|
|
|
+ tileset.dispatchEvent({type:'meshLoaded',tileContent});
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}),
|
|
|
onTileLoad: (tile) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -144813,8 +144867,8 @@ ENDSEC
|
|
|
// !zeg改
|
|
|
//未知
|
|
|
//tileContent.position.set(tile.header.boundingVolume.box[0], tile.header.boundingVolume.box[1], tile.header.boundingVolume.box[2])//add
|
|
|
- //这个链接需要加上这句https://testgis.4dage.com/LVBADUI_qp/tileset.json
|
|
|
- //console.log('位移tile', tileContent.position)
|
|
|
+ //这个链接需要加上这句https://testgis.4dage.com/LVBADUI_qp/tileset.json //这和子集是否为json无关,为何在另一个工程正常
|
|
|
+ //console.log('位移tile', tileContent.position)
|
|
|
|
|
|
|
|
|
|
|
@@ -151660,14 +151714,16 @@ ENDSEC
|
|
|
const scaleZ = vecZ.length();
|
|
|
/* boundingBox.expandByPoint(center);
|
|
|
boundingBox.expandByVector(new THREE.Vector3(scaleX,scaleY,scaleZ)) */
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
|
|
|
boundingBox.min.set( - scaleX, - scaleY, - scaleZ );
|
|
|
boundingBox.max.set( scaleX, scaleY, scaleZ );
|
|
|
|
|
|
-
|
|
|
+ //中心点居然没用。可能是漏用了什么信息,也许这和LVBADUI_qp是散的有关。
|
|
|
console.log('3d tiles json',json);
|
|
|
+
|
|
|
+ json.root.refine = 'ADD';
|
|
|
+ json.refine = 'ADD';
|
|
|
}else {
|
|
|
this.setObjectLayers(object,'model');
|
|
|
|
|
@@ -151778,13 +151834,17 @@ ENDSEC
|
|
|
|
|
|
|
|
|
let loaded = false;
|
|
|
- result.runtime.getTileset().addEventListener('endTileLoading', function (data) {//Tileset3D
|
|
|
+ let tileset = result.runtime.getTileset();
|
|
|
+ tileset.addEventListener('endTileLoading', function (data) {//Tileset3D
|
|
|
if (data.loadingCount == 0 && !loaded) {
|
|
|
loaded = true;
|
|
|
console.log('loaded!!!!!!!!!!!!!');
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+ tileset.addEventListener('meshLoaded',(e)=>{
|
|
|
+ let opacity = result.model.opacity;
|
|
|
+ MergeEditor.changeOpacity(e.tileContent,opacity);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
|