occt-products: master a97a54fc

Author Committer Branch Timestamp Parent
atychini smoskvin master 2022-07-11 12:55:05 master 2768e535
Changeset 0033058: JT Import - perform XT translation in multiple threads

Implementing parallel translation for JT file format.

Creating new function processJtUnit which purpose is to Process the units from the NCollection_Vector<Handle(JTCAFControl_ReaderProcessingUnit)> myProcessingUnits.

In this container we append only leaves which type is Handle(JtNode_Part)
Such Processing is taking place if the myPrefGeomRepr field is set to JTCAFControl_Representation_PreferMesh, JTCAFControl_Representation_PreferBRep or JTCAFControl_Representation_BRepOnly.

When myPrefGeomRepr is equal to PreferMesh we call fillGroup from the parseSceneNode at first.
If fillGroup returns false, we will add this Node to the myProcessingUnits and in the processJtUnit we
will try to call JTCAFControl_Reader::TranslateBReps to translate the Shape.

In case of JTCAFControl_Representation_PreferBRep we are adding the Node to the myProcessingUnits,
calling TranslateBReps and if it returns false, we are trying to call fillGroup.
If new nodes have been added after calling fillGroup, we call processJtUnit again (recursively).

And when myPrefGeomRepr is JTCAFControl_Representation_BRepOnly, we are adding the Node to the container and trying to call LoadAndTranslate from the ProcessJtUnit

I've replaced XShow with XDisplay in tests/jt/read/begin because of unstable document displaying.
-parallel flag was also removed because it caused performance slowdown when testgrid was running in parallel mode.
mod - diff Diff File
mod - src/JTCAFControl/JTCAFControl_Reader.hxx Diff File
mod - tests/jt/read/begin Diff File
add - tests/jt/read/F5 Diff File
add - tests/jt/read/F6 Diff File
add - tests/jt/read/F7 Diff File