Open MyDataHouse opened 1 year ago
Thanks for the report @MyDataHouse.
To solve this, IS3* classes will need to be refactored.
Looked into this a little bit more while addressing something else.
It seems a shorter term solution than a full refactor of the I3S
classes is to just extract the I3SDataProvider.loadJson
function into it's own file. That's the only funciton in I3SDataProvider
that is called from all the other files that end up creating the circular dependencies.
• Circular Dependencies
1) packages/engine/Source/Scene/I3SDataProvider.js -> packages/engine/Source/Scene/I3SLayer.js -> packages/engine/Source/Scene/I3SNode.js
2) packages/engine/Source/Scene/I3SDataProvider.js -> packages/engine/Source/Scene/I3SLayer.js -> packages/engine/Source/Scene/I3SNode.js -> packages/engine/Source/Scene/I3SFeature.js
3) packages/engine/Source/Scene/I3SDataProvider.js -> packages/engine/Source/Scene/I3SStatistics.js
4) packages/engine/Source/Scene/I3SDataProvider.js -> packages/engine/Source/Scene/I3SSublayer.js
(output from dpdm
)
I carefully inspected the files and indeed found that the warning pointed out the location where circular dependencies occurred.
I am using the package manager pnpm and Cesium version 1.108.
rollup setting
code
package.json setting