Tuesday, February 26, 2013

Wrappers update

This week I continued working on the xml generating code and now all the methods, constructors and enums are translated to the format used in the api files. There were some extra packages needed to run aside from the ones specified on the website (will update the information there when I finish generating the wrappers, to make sure everything is ok). The command I used was:

-cppext -cppdir out -cdldir c:\OpenCASCADE6.3.0\ros\src\ Standard MMgt TCollection Quantity TColgp TColStd Message gp TopLoc GeomAbs Geom Bnd TShort TColQuantity SortTools Resource Aspect Viewer OSD MFT PlotMgt Image Graphic2d Xw WNT AlienImage Graphic3d Visual3d V2d V3d TopAbs TopoDS Geom2d StdFail math Adaptor2d Adaptor3d Geom2dAdaptor Precision GeomAdaptor BRepAdaptor CPnts GCPnts TopTools TopExp Intrv TopBas TopTrans TopCnx IntRes2d IntAna2d IntAna Intf IntImp IntSurf IntCurveSurface HLRAlgo MeshDS MeshShape MeshAlgo Poly Prs3d PrsMgr SelectBasics Select2D Select3D SelectMgr StdSelect DsgPrs AIS BRep LProp BRepLProp BRepTools Geom2dLProp GProp TColGeom2d PLib AdvApprox GeomLProp LProp3d AdvApp2Var FEmTool AppParCurves AppCont Approx AppDef BndLib Extrema gce GC GCE2d Convert Geom2dConvert TColGeom GeomConvert GeomLib GeomProjLib GeomTools Hermit ProjLib MeshVS CGM PS Prs2d AIS2D GGraphic2d BRepLib BRepBuilderAPI Primitives BRepPrim Sweep BRepSweep BRepPrimAPI IntImpParGen IntCurve Geom2dInt TopClass BRepClass CSLib BRepTopAdaptor IntStart IntWalk IntPatch BRepIntCurveSurface IntCurvesFace BRepClass3d TopOpeBRepTool TopOpeBRepDS TopOpeBRep TopOpeBRepBuild BOPTColStd BooleanOperations GeomAPI IntTools BOPTools BOP BRepAlgo BRepAlgoAPI Law Draft BRepOffset MAT GccInt Bisector AppBlend GeomFill MAT2d BRepMAT2d ElSLib Plate GeomPlate BRepFill BRepOffsetAPI Blend BlendFunc BRepBlend ChFi2d ChFiDS ChFi3d BRepFilletAPI ChFiKPart FilletSurf PStandard PMMgt DBC PCollection PColStd PTColStd TDF Storage CDM PCDM PDF MDF CDF TDocStd TNaming TDataStd AppStdL AppStd TPrsStd TFunction Dico MoniTool LibCtl Interface Transfer IFSelect XSControl StepBasic StepData StepGeom StepShape StepRepr StepVisual StepAP203 StepAP214 STEPConstruct TransferBRep STEPControl BRepMesh BRepExtrema BRepGProp ShapeExtend ShapeAnalysis BRepCheck

This added some new classes that we didn't have at all, many of them related to Step. The run time was not affected by the newly added packages.
There are 177 packages used by the old OccWrappers.api and 205 packages we need to parse in order to export the xml files for these. I wrote a LinqPAD program to check that all the required packages were exported and another program to concatenate the classes into one file for each package.

The next step is loading these partial files in the NaroHost solution and checking that the translation was done correctly. Aside from loading the xml files, it will transform the C++ types to the types used in C# and do the Setter/Getter transformation. After the check is finished, I will incorporate the test programs in the NaroHost solutions so that the checks and file merges are done automatically.

No comments: