How to add an internal TopoDS_Edge to TopoDS_Face?

Hi All,
I would like to add an internal edge to face, as shown by the red line in the figure. I wish the face wasn't divided into two.
Which interfaces should be used to implement this function?
And what is the final topology structure?

Attachments: 
leo lei's picture

Hi. Try BRepBuilderAPI_MakeFace::Add (const TopoDS_Wire &W)