@xeokit/xeokit-sdk 2.6.13 → 2.6.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/xeokit-sdk.cjs.js +22 -2
- package/dist/xeokit-sdk.es.js +22 -2
- package/dist/xeokit-sdk.es5.js +2 -2
- package/dist/xeokit-sdk.min.cjs.js +1 -1
- package/dist/xeokit-sdk.min.es.js +1 -1
- package/dist/xeokit-sdk.min.es5.js +1 -1
- package/package.json +2 -2
- package/src/plugins/DotBIMLoaderPlugin/DotBIMLoaderPlugin.js +22 -2
package/dist/xeokit-sdk.cjs.js
CHANGED
|
@@ -137233,7 +137233,7 @@ class DotBIMDefaultDataSource {
|
|
|
137233
137233
|
* excludeTypes: ["IfcSpace"]
|
|
137234
137234
|
* });
|
|
137235
137235
|
* ````
|
|
137236
|
-
*
|
|
137236
|
+
*
|
|
137237
137237
|
* # Configuring initial IFC object appearances
|
|
137238
137238
|
*
|
|
137239
137239
|
* We can specify the custom initial appearance of loaded objects according to their IFC types.
|
|
@@ -137593,11 +137593,31 @@ class DotBIMLoaderPlugin extends Plugin {
|
|
|
137593
137593
|
isObject: true
|
|
137594
137594
|
});
|
|
137595
137595
|
|
|
137596
|
+
for (let infoKey in info) {
|
|
137597
|
+
let properties;
|
|
137598
|
+
if (infoKey.startsWith("IFC_Pset_")) {
|
|
137599
|
+
if (!properties) {
|
|
137600
|
+
properties = [];
|
|
137601
|
+
}
|
|
137602
|
+
properties.push({
|
|
137603
|
+
name: infoKey,
|
|
137604
|
+
value: info[infoKey]
|
|
137605
|
+
});
|
|
137606
|
+
}
|
|
137607
|
+
if (properties) {
|
|
137608
|
+
metaModelData.propertySets.push({
|
|
137609
|
+
id: objectId,
|
|
137610
|
+
properties
|
|
137611
|
+
});
|
|
137612
|
+
}
|
|
137613
|
+
}
|
|
137614
|
+
|
|
137596
137615
|
metaModelData.metaObjects.push({
|
|
137597
137616
|
id: objectId,
|
|
137598
137617
|
name: info && info.Name && info.Name !== "None" ? info.Name : `${element.type} ${objectId}`,
|
|
137599
137618
|
type: element.type,
|
|
137600
|
-
parent: ifcBuildingStoryId
|
|
137619
|
+
parent: ifcBuildingStoryId,
|
|
137620
|
+
propertySetIds: [objectId]
|
|
137601
137621
|
});
|
|
137602
137622
|
}
|
|
137603
137623
|
|
package/dist/xeokit-sdk.es.js
CHANGED
|
@@ -137229,7 +137229,7 @@ class DotBIMDefaultDataSource {
|
|
|
137229
137229
|
* excludeTypes: ["IfcSpace"]
|
|
137230
137230
|
* });
|
|
137231
137231
|
* ````
|
|
137232
|
-
*
|
|
137232
|
+
*
|
|
137233
137233
|
* # Configuring initial IFC object appearances
|
|
137234
137234
|
*
|
|
137235
137235
|
* We can specify the custom initial appearance of loaded objects according to their IFC types.
|
|
@@ -137589,11 +137589,31 @@ class DotBIMLoaderPlugin extends Plugin {
|
|
|
137589
137589
|
isObject: true
|
|
137590
137590
|
});
|
|
137591
137591
|
|
|
137592
|
+
for (let infoKey in info) {
|
|
137593
|
+
let properties;
|
|
137594
|
+
if (infoKey.startsWith("IFC_Pset_")) {
|
|
137595
|
+
if (!properties) {
|
|
137596
|
+
properties = [];
|
|
137597
|
+
}
|
|
137598
|
+
properties.push({
|
|
137599
|
+
name: infoKey,
|
|
137600
|
+
value: info[infoKey]
|
|
137601
|
+
});
|
|
137602
|
+
}
|
|
137603
|
+
if (properties) {
|
|
137604
|
+
metaModelData.propertySets.push({
|
|
137605
|
+
id: objectId,
|
|
137606
|
+
properties
|
|
137607
|
+
});
|
|
137608
|
+
}
|
|
137609
|
+
}
|
|
137610
|
+
|
|
137592
137611
|
metaModelData.metaObjects.push({
|
|
137593
137612
|
id: objectId,
|
|
137594
137613
|
name: info && info.Name && info.Name !== "None" ? info.Name : `${element.type} ${objectId}`,
|
|
137595
137614
|
type: element.type,
|
|
137596
|
-
parent: ifcBuildingStoryId
|
|
137615
|
+
parent: ifcBuildingStoryId,
|
|
137616
|
+
propertySetIds: [objectId]
|
|
137597
137617
|
});
|
|
137598
137618
|
}
|
|
137599
137619
|
|
package/dist/xeokit-sdk.es5.js
CHANGED
|
@@ -29808,7 +29808,7 @@ var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedInd
|
|
|
29808
29808
|
* excludeTypes: ["IfcSpace"]
|
|
29809
29809
|
* });
|
|
29810
29810
|
* ````
|
|
29811
|
-
*
|
|
29811
|
+
*
|
|
29812
29812
|
* # Configuring initial IFC object appearances
|
|
29813
29813
|
*
|
|
29814
29814
|
* We can specify the custom initial appearance of loaded objects according to their IFC types.
|
|
@@ -29966,7 +29966,7 @@ var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedInd
|
|
|
29966
29966
|
* @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}
|
|
29967
29967
|
*/,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
|
|
29968
29968
|
if(!params.src&&!params.dotBIM){this.error("load() param expected: src or dotBIM");return sceneModel;// Return new empty model
|
|
29969
|
-
}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
|
|
29969
|
+
}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
|
|
29970
29970
|
sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
|
|
29971
29971
|
});};if(params.src){var src=params.src;this.viewer.scene.canvas.spinner.processes++;this._dataSource.getDotBIM(src,function(fileData){// OK
|
|
29972
29972
|
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;}/**
|