how to get data from iges files?

I need to implement the following approach in my application - load IGES file, get tessellation and some other data for every element:
- vertices and faces,
- lines,
- circles,
- object name,
- object color.

How to get the coordinate value of each graphic element? For example, the start and end coordinates of a straight line, the radius of a circle, etc.

The official demo source code is too simple, and there is no introduction in this regard.Could you please give me some hints how to get it?


#include “IGESControl_Reader.hxx” 
#include “TColStd_HSequenceOfTransient.hxx” 
#include “TopoDS_Shape.hxx” 
IGESControl_Reader myIgesReader; 
Standard_Integer nIgesFaces,nTransFaces; 
myIgesReader.ReadFile (“MyFile.igs”); 
//loads file MyFile.igs 
Handle(TColStd_HSequenceOfTransient) myList =  myIgesReader.GiveList(“iges-faces”); 
//selects all IGES faces in the file and puts them into a list  called //MyList, 
nIgesFaces = myList-Length();  
nTransFaces = myIgesReader.TransferList(myList); 
//translates MyList, 
cout<<"IGES Faces: "<<nIgesFaces<<"   Transferred:"<<nTransFaces<<endl; 
TopoDS_Shape sh = myIgesReader.OneShape(); 
//and obtains the results in an OCCT shape.