Skip to content

Commit

Permalink
Rebuild
Browse files Browse the repository at this point in the history
  • Loading branch information
xeolabs committed Jun 1, 2024
1 parent 1ae0aa5 commit 7485873
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 9 deletions.
24 changes: 22 additions & 2 deletions dist/xeokit-sdk.cjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -137233,7 +137233,7 @@ class DotBIMDefaultDataSource {
* excludeTypes: ["IfcSpace"]
* });
* ````
*
*
* # Configuring initial IFC object appearances
*
* We can specify the custom initial appearance of loaded objects according to their IFC types.
Expand Down Expand Up @@ -137593,11 +137593,31 @@ class DotBIMLoaderPlugin extends Plugin {
isObject: true
});

for (let infoKey in info) {
let properties;
if (infoKey.startsWith("IFC_Pset_")) {
if (!properties) {
properties = [];
}
properties.push({
name: infoKey,
value: info[infoKey]
});
}
if (properties) {
metaModelData.propertySets.push({
id: objectId,
properties
});
}
}

metaModelData.metaObjects.push({
id: objectId,
name: info && info.Name && info.Name !== "None" ? info.Name : `${element.type} ${objectId}`,
type: element.type,
parent: ifcBuildingStoryId
parent: ifcBuildingStoryId,
propertySetIds: [objectId]
});
}

Expand Down
24 changes: 22 additions & 2 deletions dist/xeokit-sdk.es.js
Original file line number Diff line number Diff line change
Expand Up @@ -137229,7 +137229,7 @@ class DotBIMDefaultDataSource {
* excludeTypes: ["IfcSpace"]
* });
* ````
*
*
* # Configuring initial IFC object appearances
*
* We can specify the custom initial appearance of loaded objects according to their IFC types.
Expand Down Expand Up @@ -137589,11 +137589,31 @@ class DotBIMLoaderPlugin extends Plugin {
isObject: true
});

for (let infoKey in info) {
let properties;
if (infoKey.startsWith("IFC_Pset_")) {
if (!properties) {
properties = [];
}
properties.push({
name: infoKey,
value: info[infoKey]
});
}
if (properties) {
metaModelData.propertySets.push({
id: objectId,
properties
});
}
}

metaModelData.metaObjects.push({
id: objectId,
name: info && info.Name && info.Name !== "None" ? info.Name : `${element.type} ${objectId}`,
type: element.type,
parent: ifcBuildingStoryId
parent: ifcBuildingStoryId,
propertySetIds: [objectId]
});
}

Expand Down
4 changes: 2 additions & 2 deletions dist/xeokit-sdk.es5.js
Original file line number Diff line number Diff line change
Expand Up @@ -29808,7 +29808,7 @@ var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedInd
* excludeTypes: ["IfcSpace"]
* });
* ````
*
*
* # Configuring initial IFC object appearances
*
* We can specify the custom initial appearance of loaded objects according to their IFC types.
Expand Down Expand Up @@ -29966,7 +29966,7 @@ var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedInd
* @returns {Entity} Entity representing the model, which will have {@link Entity#isModel} set ````true```` and will be registered by {@link Entity#id} in {@link Scene#models}
*/,set:function set(value){this._objectDefaults=value||IFCObjectDefaults;}},{key:"load",value:function load(){var _this174=this;var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}var sceneModel=new SceneModel(this.viewer.scene,utils.apply(params,{isModel:true,backfaces:params.backfaces,dtxEnabled:params.dtxEnabled,rotation:params.rotation,origin:params.origin}));var modelId=sceneModel.id;// In case ID was auto-generated
if(!params.src&&!params.dotBIM){this.error("load() param expected: src or dotBIM");return sceneModel;// Return new empty model
}var objectDefaults=params.objectDefaults||this._objectDefaults||IFCObjectDefaults;var includeTypes;if(params.includeTypes){includeTypes={};for(var _i590=0,len=params.includeTypes.length;_i590<len;_i590++){includeTypes[params.includeTypes[_i590]]=true;}}var excludeTypes;if(params.excludeTypes){excludeTypes={};if(!includeTypes){includeTypes={};}for(var _i591=0,_len123=params.excludeTypes.length;_i591<_len123;_i591++){includeTypes[params.excludeTypes[_i591]]=true;}}var parseDotBIM=function parseDotBIM(ctx){var fileData=ctx.fileData;var sceneModel=ctx.sceneModel;var dbMeshIndices={};var dbMeshLoaded={};var ifcProjectId=math.createUUID();var ifcSiteId=math.createUUID();var ifcBuildingId=math.createUUID();var ifcBuildingStoryId=math.createUUID();var metaModelData={metaObjects:[{id:ifcProjectId,name:"IfcProject",type:"IfcProject",parent:null},{id:ifcSiteId,name:"IfcSite",type:"IfcSite",parent:ifcProjectId},{id:ifcBuildingId,name:"IfcBuilding",type:"IfcBuilding",parent:ifcSiteId},{id:ifcBuildingStoryId,name:"IfcBuildingStorey",type:"IfcBuildingStorey",parent:ifcBuildingId}],propertySets:[]};for(var _i592=0,_len124=fileData.meshes.length;_i592<_len124;_i592++){var dbMesh=fileData.meshes[_i592];dbMeshIndices[dbMesh.mesh_id]=_i592;}var parseDBMesh=function parseDBMesh(dbMeshId){if(dbMeshLoaded[dbMeshId]){return;}var dbMeshIndex=dbMeshIndices[dbMeshId];var dbMesh=fileData.meshes[dbMeshIndex];sceneModel.createGeometry({id:dbMeshId,primitive:"triangles",positions:dbMesh.coordinates,indices:dbMesh.indices});dbMeshLoaded[dbMeshId]=true;};var dbElements=fileData.elements;for(var _i593=0,_len125=dbElements.length;_i593<_len125;_i593++){var element=dbElements[_i593];var elementType=element.type;if(excludeTypes&&excludeTypes[elementType]){continue;}if(includeTypes&&!includeTypes[elementType]){continue;}var info=element.info;var objectId=element.guid!==undefined?"".concat(element.guid):info!==undefined&&info.id!==undefined?info.id:_i593;var dbMeshId=element.mesh_id;parseDBMesh(dbMeshId);var meshId="".concat(objectId,"-mesh");var vector=element.vector;var rotation=element.rotation;var props=objectDefaults?objectDefaults[elementType]||objectDefaults["DEFAULT"]:null;var visible=true;var pickable=true;var _color12=element.color?[element.color.r/255,element.color.g/255,element.color.b/255]:[1,1,1];var _opacity7=element.color?element.color.a/255:1.0;if(props){if(props.visible===false){visible=false;}if(props.pickable===false){pickable=false;}if(props.colorize){_color12=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){_opacity7=props.opacity;}}sceneModel.createMesh({id:meshId,geometryId:dbMeshId,color:_color12,opacity:_opacity7,quaternion:rotation&&(rotation.qz!==0||rotation.qy!==0||rotation.qx!==0||rotation.qw!==1.0)?[rotation.qx,rotation.qy,rotation.qz,rotation.qw]:undefined,position:vector?[vector.x,vector.y,vector.z]:undefined});sceneModel.createEntity({id:objectId,meshIds:[meshId],visible:visible,pickable:pickable,isObject:true});metaModelData.metaObjects.push({id:objectId,name:info&&info.Name&&info.Name!=="None"?info.Name:"".concat(element.type," ").concat(objectId),type:element.type,parent:ifcBuildingStoryId});}sceneModel.finalize();_this174.viewer.metaScene.createMetaModel(modelId,metaModelData);sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
}var objectDefaults=params.objectDefaults||this._objectDefaults||IFCObjectDefaults;var includeTypes;if(params.includeTypes){includeTypes={};for(var _i590=0,len=params.includeTypes.length;_i590<len;_i590++){includeTypes[params.includeTypes[_i590]]=true;}}var excludeTypes;if(params.excludeTypes){excludeTypes={};if(!includeTypes){includeTypes={};}for(var _i591=0,_len123=params.excludeTypes.length;_i591<_len123;_i591++){includeTypes[params.excludeTypes[_i591]]=true;}}var parseDotBIM=function parseDotBIM(ctx){var fileData=ctx.fileData;var sceneModel=ctx.sceneModel;var dbMeshIndices={};var dbMeshLoaded={};var ifcProjectId=math.createUUID();var ifcSiteId=math.createUUID();var ifcBuildingId=math.createUUID();var ifcBuildingStoryId=math.createUUID();var metaModelData={metaObjects:[{id:ifcProjectId,name:"IfcProject",type:"IfcProject",parent:null},{id:ifcSiteId,name:"IfcSite",type:"IfcSite",parent:ifcProjectId},{id:ifcBuildingId,name:"IfcBuilding",type:"IfcBuilding",parent:ifcSiteId},{id:ifcBuildingStoryId,name:"IfcBuildingStorey",type:"IfcBuildingStorey",parent:ifcBuildingId}],propertySets:[]};for(var _i592=0,_len124=fileData.meshes.length;_i592<_len124;_i592++){var dbMesh=fileData.meshes[_i592];dbMeshIndices[dbMesh.mesh_id]=_i592;}var parseDBMesh=function parseDBMesh(dbMeshId){if(dbMeshLoaded[dbMeshId]){return;}var dbMeshIndex=dbMeshIndices[dbMeshId];var dbMesh=fileData.meshes[dbMeshIndex];sceneModel.createGeometry({id:dbMeshId,primitive:"triangles",positions:dbMesh.coordinates,indices:dbMesh.indices});dbMeshLoaded[dbMeshId]=true;};var dbElements=fileData.elements;for(var _i593=0,_len125=dbElements.length;_i593<_len125;_i593++){var element=dbElements[_i593];var elementType=element.type;if(excludeTypes&&excludeTypes[elementType]){continue;}if(includeTypes&&!includeTypes[elementType]){continue;}var info=element.info;var objectId=element.guid!==undefined?"".concat(element.guid):info!==undefined&&info.id!==undefined?info.id:_i593;var dbMeshId=element.mesh_id;parseDBMesh(dbMeshId);var meshId="".concat(objectId,"-mesh");var vector=element.vector;var rotation=element.rotation;var props=objectDefaults?objectDefaults[elementType]||objectDefaults["DEFAULT"]:null;var visible=true;var pickable=true;var _color12=element.color?[element.color.r/255,element.color.g/255,element.color.b/255]:[1,1,1];var _opacity7=element.color?element.color.a/255:1.0;if(props){if(props.visible===false){visible=false;}if(props.pickable===false){pickable=false;}if(props.colorize){_color12=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){_opacity7=props.opacity;}}sceneModel.createMesh({id:meshId,geometryId:dbMeshId,color:_color12,opacity:_opacity7,quaternion:rotation&&(rotation.qz!==0||rotation.qy!==0||rotation.qx!==0||rotation.qw!==1.0)?[rotation.qx,rotation.qy,rotation.qz,rotation.qw]:undefined,position:vector?[vector.x,vector.y,vector.z]:undefined});sceneModel.createEntity({id:objectId,meshIds:[meshId],visible:visible,pickable:pickable,isObject:true});for(var infoKey in info){var properties=void 0;if(infoKey.startsWith("IFC_Pset_")){if(!properties){properties=[];}properties.push({name:infoKey,value:info[infoKey]});}if(properties){metaModelData.propertySets.push({id:objectId,properties:properties});}}metaModelData.metaObjects.push({id:objectId,name:info&&info.Name&&info.Name!=="None"?info.Name:"".concat(element.type," ").concat(objectId),type:element.type,parent:ifcBuildingStoryId,propertySetIds:[objectId]});}sceneModel.finalize();_this174.viewer.metaScene.createMetaModel(modelId,metaModelData);sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
});};if(params.src){var src=params.src;this.viewer.scene.canvas.spinner.processes++;this._dataSource.getDotBIM(src,function(fileData){// OK
var ctx={fileData:fileData,sceneModel:sceneModel,nextId:0,error:function error(errMsg){}};parseDotBIM(ctx);_this174.viewer.scene.canvas.spinner.processes--;},function(err){_this174.viewer.scene.canvas.spinner.processes--;_this174.error(err);});}else if(params.dotBIM){var ctx={fileData:params.dotBIM,sceneModel:sceneModel,nextId:0,error:function error(errMsg){}};parseDotBIM(ctx);}sceneModel.once("destroyed",function(){_this174.viewer.metaScene.destroyMetaModel(modelId);});return sceneModel;}/**
Expand Down
2 changes: 1 addition & 1 deletion dist/xeokit-sdk.min.cjs.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/xeokit-sdk.min.es.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/xeokit-sdk.min.es5.js

Large diffs are not rendered by default.

0 comments on commit 7485873

Please sign in to comment.