ShapeUpgrade_UnifySameDomain Infinite Loop

static TopoDS_Shape readModel(const std::string& filepath)
{
  STEPControl_Reader    stepReader;
  IFSelect_ReturnStatus ret        = stepReader.ReadFile(filepath.c_str());
  Standard_Integer      count      = stepReader.TransferRoots();
  Standard_Integer      shapeCount = stepReader.NbShapes();
  TopoDS_Shape          stepShape  = stepReader.OneShape();
  return stepShape;
}

int main()
{
  std::cout << "OCCT Version: " << OCC_VERSION_STRING << std::endl; // OCCT Version: 7.9
  TopoDS_Shape       model = readModel("./11.step");
  BRepCheck_Analyzer ana(model);
  std::cout << "isValid:" << ana.IsValid() << std::endl; // isValid:1
  ShapeUpgrade_UnifySameDomain unify(model);
  unify.Build();
  TopoDS_Shape res = unify.Shape();
}

the model is valid.

When executing Build(), the program got stuck in an infinite loop. The infinite loop occurs in the  RelocatePCurvesToNewUorigin  function.

Attachments: 
lws-sys's picture

Infinite Loop in 7.9.1
7.9.3 is ok.It unified the cone face,but still have a piece of cylinder face. What may cause this result?

Attachments: