X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAPI%2FGeomAPI.i;h=aa26482458d7cac892cda2ac8a9a319fe1a1ba03;hb=b06cf1477fb1ee46d7ae260c234cac5d0000abf2;hp=c6002ccc9fb71e956b00c8c80cde50c5f2f7684c;hpb=a94fc319f2aa64b43c9a73b5ff7063923648faec;p=modules%2Fshaper.git diff --git a/src/GeomAPI/GeomAPI.i b/src/GeomAPI/GeomAPI.i index c6002ccc9..aa2648245 100644 --- a/src/GeomAPI/GeomAPI.i +++ b/src/GeomAPI/GeomAPI.i @@ -29,22 +29,30 @@ // standard definitions %include "typemaps.i" +%include "std_list.i" %include "std_string.i" %include "std_shared_ptr.i" // shared pointers %shared_ptr(GeomAPI_AISObject) +%shared_ptr(GeomAPI_Angle) +%shared_ptr(GeomAPI_Angle2d) %shared_ptr(GeomAPI_Ax1) %shared_ptr(GeomAPI_Ax2) %shared_ptr(GeomAPI_Ax3) +%shared_ptr(GeomAPI_Box) %shared_ptr(GeomAPI_Circ) %shared_ptr(GeomAPI_Circ2d) +%shared_ptr(GeomAPI_Cone) %shared_ptr(GeomAPI_Curve) +%shared_ptr(GeomAPI_Cylinder) %shared_ptr(GeomAPI_DataMapOfShapeMapOfShapes) %shared_ptr(GeomAPI_DataMapOfShapeShape) %shared_ptr(GeomAPI_Dir) %shared_ptr(GeomAPI_Dir2d) %shared_ptr(GeomAPI_Edge) +%shared_ptr(GeomAPI_Ellipse) +%shared_ptr(GeomAPI_Ellipse2d) %shared_ptr(GeomAPI_Face) %shared_ptr(GeomAPI_ICustomPrs) %shared_ptr(GeomAPI_Interface) @@ -58,28 +66,65 @@ %shared_ptr(GeomAPI_Shape) %shared_ptr(GeomAPI_ShapeExplorer) %shared_ptr(GeomAPI_ShapeIterator) +%shared_ptr(GeomAPI_Shell) +%shared_ptr(GeomAPI_Solid) +%shared_ptr(GeomAPI_Sphere) +%shared_ptr(GeomAPI_Torus) +%shared_ptr(GeomAPI_Trsf) %shared_ptr(GeomAPI_Vertex) +%shared_ptr(GeomAPI_Wire) %shared_ptr(GeomAPI_XY) %shared_ptr(GeomAPI_XYZ) -%shared_ptr(GeomAPI_Trsf) -%shared_ptr(GeomAPI_Wire) + + +%typemap(in) std::list > &thePoints (std::list > temp) { + std::shared_ptr * temp_pnt; + int newmem = 0; + if (PySequence_Check($input)) { + for (Py_ssize_t i = 0; i < PySequence_Size($input); ++i) { + PyObject * item = PySequence_GetItem($input, i); + if ((SWIG_ConvertPtrAndOwn(item, (void **)&temp_pnt, $descriptor(std::shared_ptr *), SWIG_POINTER_EXCEPTION, &newmem)) == 0) { + if (!temp_pnt) { + PyErr_SetString(PyExc_TypeError, "argument must be list of GeomAPI_Pnt."); + return NULL; + } + temp.push_back(*temp_pnt); + if (newmem & SWIG_CAST_NEW_MEMORY) { + delete temp_pnt; + } + } + Py_DECREF(item); + } + $1 = &temp; + } else { + PyErr_SetString(PyExc_ValueError, "argument must be list of GeomAPI_Pnt."); + return NULL; + } +} // all supported interfaces %include "GeomAPI_Interface.h" %include "GeomAPI_Shape.h" %include "GeomAPI_AISObject.h" +%include "GeomAPI_Angle.h" +%include "GeomAPI_Angle2d.h" %include "GeomAPI_Ax1.h" %include "GeomAPI_Ax2.h" %include "GeomAPI_Ax3.h" +%include "GeomAPI_Box.h" %include "GeomAPI_Circ.h" %include "GeomAPI_Circ2d.h" +%include "GeomAPI_Cone.h" %include "GeomAPI_Curve.h" +%include "GeomAPI_Cylinder.h" %include "GeomAPI_DataMapOfShapeMapOfShapes.h" %include "GeomAPI_DataMapOfShapeShape.h" %include "GeomAPI_Dir.h" %include "GeomAPI_Dir2d.h" %include "GeomAPI_Edge.h" +%include "GeomAPI_Ellipse.h" +%include "GeomAPI_Ellipse2d.h" %include "GeomAPI_Face.h" %include "GeomAPI_ICustomPrs.h" %include "GeomAPI_IPresentable.h" @@ -91,8 +136,16 @@ %include "GeomAPI_Pnt2d.h" %include "GeomAPI_ShapeExplorer.h" %include "GeomAPI_ShapeIterator.h" +%include "GeomAPI_Shell.h" +%include "GeomAPI_Solid.h" +%include "GeomAPI_Sphere.h" +%include "GeomAPI_Torus.h" +%include "GeomAPI_Trsf.h" %include "GeomAPI_Vertex.h" +%include "GeomAPI_Wire.h" %include "GeomAPI_XY.h" %include "GeomAPI_XYZ.h" -%include "GeomAPI_Trsf.h" -%include "GeomAPI_Wire.h" + +// std::list -> [] +%template(PointList) std::list >; +%template(ShapeList) std::list >;