Skip to content

Commit

Permalink
Fix ID globalize for metamodels without property sets #1103
Browse files Browse the repository at this point in the history
  • Loading branch information
xeolabs committed Jul 17, 2023
1 parent bc4fcc8 commit 52cbbba
Showing 1 changed file with 28 additions and 22 deletions.
50 changes: 28 additions & 22 deletions src/viewer/metadata/MetaScene.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,39 +233,45 @@ class MetaScene {
}

_globalizeIDs(modelId, metaModelData, options) {

const globalize = !!options.globalizeObjectIds;
for (let i = 0, len = metaModelData.metaObjects.length; i < len; i++) {
const metaObjectData = metaModelData.metaObjects[i];

// Globalize MetaObject IDs and parent IDs
if (metaModelData.metaObjects) {
for (let i = 0, len = metaModelData.metaObjects.length; i < len; i++) {
const metaObjectData = metaModelData.metaObjects[i];

metaObjectData.originalSystemId = metaObjectData.id;
metaObjectData.originalParentSystemId = metaObjectData.parent;
if (globalize) {
metaObjectData.id = math.globalizeObjectId(modelId, metaObject.id);
metaObjectData.parent = math.globalizeObjectId(modelId, metaObject.parent);
}
// Globalize MetaObject IDs and parent IDs

// Globalize MetaObject property set IDs
metaObjectData.originalSystemId = metaObjectData.id;
metaObjectData.originalParentSystemId = metaObjectData.parent;
if (globalize) {
metaObjectData.id = math.globalizeObjectId(modelId, metaObject.id);
metaObjectData.parent = math.globalizeObjectId(modelId, metaObject.parent);
}

const propertySetIds = metaObjectData.propertySetIds;
if (propertySetIds) {
const propertySetGlobalIds = [];
for (let j = 0, lenj = propertySetIds.length; j < lenj; j++) {
propertySetGlobalIds.push(math.globalizeObjectId(modelId, propertySetIds[j]));
// Globalize MetaObject property set IDs

const propertySetIds = metaObjectData.propertySetIds;
if (propertySetIds) {
const propertySetGlobalIds = [];
for (let j = 0, lenj = propertySetIds.length; j < lenj; j++) {
propertySetGlobalIds.push(math.globalizeObjectId(modelId, propertySetIds[j]));
}
metaObjectData.propertySetIds = propertySetGlobalIds;
metaObjectData.originalSystemPropertySetIds = propertySetIds;
}
metaObjectData.propertySetIds = propertySetGlobalIds;
metaObjectData.originalSystemPropertySetIds = propertySetIds;
}
}

// Globalize global PropertySet IDs

for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
const propertySet = metaModelData.propertySets[i];
propertySet.originalSystemId = propertySet.id;
if (globalize) {
propertySet.id = math.globalizeObjectId(modelId, propertySet.id);
if (metaModelData.propertySets) {
for (let i = 0, len = metaModelData.propertySets.length; i < len; i++) {
const propertySet = metaModelData.propertySets[i];
propertySet.originalSystemId = propertySet.id;
if (globalize) {
propertySet.id = math.globalizeObjectId(modelId, propertySet.id);
}
}
}
}
Expand Down

0 comments on commit 52cbbba

Please sign in to comment.