mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-13 10:57:49 +00:00
Fix and augment v0.8 taxonomy wrapper
This commit is contained in:
@@ -247,7 +247,8 @@ PyObject* item_to_pyobject(const ifcopenshell::geometry::taxonomy::item::ptr& i)
|
||||
auto kind = i->kind();
|
||||
// @todo this is not automatically generated :(
|
||||
// we can probably use the dispatch mechanism for this we already have in the kernel
|
||||
if (kind == BSPLINE_CURVE) { return SWIG_NewPointerObj(SWIG_as_voidptr(new std::shared_ptr<bspline_curve>(std::static_pointer_cast<bspline_curve>(i))), SWIGTYPE_p_std__shared_ptrT_ifcopenshell__geometry__taxonomy__bspline_curve_t, 0 | SWIG_POINTER_OWN); }
|
||||
if (kind == BOOLEAN_RESULT) { return SWIG_NewPointerObj(SWIG_as_voidptr(new std::shared_ptr<boolean_result>(std::static_pointer_cast<boolean_result>(i))), SWIGTYPE_p_std__shared_ptrT_ifcopenshell__geometry__taxonomy__boolean_result_t, 0 | SWIG_POINTER_OWN); }
|
||||
else if (kind == BSPLINE_CURVE) { return SWIG_NewPointerObj(SWIG_as_voidptr(new std::shared_ptr<bspline_curve>(std::static_pointer_cast<bspline_curve>(i))), SWIGTYPE_p_std__shared_ptrT_ifcopenshell__geometry__taxonomy__bspline_curve_t, 0 | SWIG_POINTER_OWN); }
|
||||
else if (kind == BSPLINE_SURFACE) { return SWIG_NewPointerObj(SWIG_as_voidptr(new std::shared_ptr<bspline_surface>(std::static_pointer_cast<bspline_surface>(i))), SWIGTYPE_p_std__shared_ptrT_ifcopenshell__geometry__taxonomy__bspline_surface_t, 0 | SWIG_POINTER_OWN); }
|
||||
else if (kind == CIRCLE) { return SWIG_NewPointerObj(SWIG_as_voidptr(new std::shared_ptr<circle>(std::static_pointer_cast<circle>(i))), SWIGTYPE_p_std__shared_ptrT_ifcopenshell__geometry__taxonomy__circle_t, 0 | SWIG_POINTER_OWN); }
|
||||
else if (kind == COLLECTION) { return SWIG_NewPointerObj(SWIG_as_voidptr(new std::shared_ptr<collection>(std::static_pointer_cast<collection>(i))), SWIGTYPE_p_std__shared_ptrT_ifcopenshell__geometry__taxonomy__collection_t, 0 | SWIG_POINTER_OWN); }
|
||||
|
||||
@@ -112,8 +112,14 @@ CREATE_VECTOR_TYPEMAP_OUT(IfcGeom::ConversionResultShape *)
|
||||
}
|
||||
};
|
||||
|
||||
%typemap(out) const item_name::ptr& {
|
||||
$result = item_to_pyobject(*$1);
|
||||
};
|
||||
|
||||
%enddef
|
||||
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::item)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::boolean_result)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::bspline_curve)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::bspline_surface)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::circle)
|
||||
@@ -141,3 +147,4 @@ vector_of_item(ifcopenshell::geometry::taxonomy::sphere)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::torus)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::style)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::sweep_along_curve)
|
||||
vector_of_item(ifcopenshell::geometry::taxonomy::geom_item)
|
||||
|
||||
Reference in New Issue
Block a user