Difference in model tree/label tag structure for imported glTF files between OCC V7.5.0 and V7.6.0

Hello Everyone,
I am trying to port my viewer application from v7.5.0 to v7.6.0. I found some differences in model tree
structure of the imported glTF files between older and newer versions. To check whether it is due to
my code or changes in v7.6.0, I just created simple console application for gltf
import and printed the labels tags for v7.5 and v7.6.

RWGltf_CafReader reader;
Handle(TDocStd_Document) aDoc;
Handle(TDocStd_Application) anApp = XCAFApp_Application::GetApplication();
anApp->NewDocument(TCollection_ExtendedString("BinXCAF"), aDoc);

reader.SetDocument(aDoc);
Message_ProgressRange pRange;
auto res = reader.Perform("D:\\STEP-Models\\STEPsample04.gltf", pRange);

if (res) {
TDF_ChildIterator it;
TCollection_AsciiString es;
for (it.Initialize(aDoc->Main(), Standard_True); it.More(); it.Next()) {
TDF_Tool::Entry(it.Value(), es);
std::cout << es.ToCString() << std::endl;
}
}

I found out that some extra nodes getting added to the files in V7.6.0. Attached is the
image of output of both the versions. Can anyone tell why is this difference occurring? I didn't found
anything mentioned in release notes or on
https://dev.opencascade.org/doc/overview/html/occt__upgrade.html#upgrade... .

Kirill Gavrilov's picture

There have been several bug-fixes and improvements in glTF reader within 7.6.0 related to assembly structure that might affect your particular file. Previously the reader might erroneously "swallow" some levels of hierarchy defined within glTF file (in "nodes" section) having only single child node.

The best way to compare is to open your file in CAD Assistant and see if assembly tree has expected elements / compare them with glTF file content.