Add Tests

This commit is contained in:
bgbsww
2024-03-27 16:47:15 -04:00
parent 75c78369c7
commit c8d54181d4
6 changed files with 415 additions and 213 deletions

View File

@@ -122,26 +122,35 @@ extern const char* BRepBuilderAPI_FaceErrorText(BRepBuilderAPI_FaceError fe);
namespace Part {
PartExport void getPyShapes(PyObject *obj, std::vector<TopoShape> &shapes) {
if(!obj)
PartExport void getPyShapes(PyObject* obj, std::vector<TopoShape>& shapes)
{
if (!obj) {
return;
if(PyObject_TypeCheck(obj,&Part::TopoShapePy::Type))
}
if (PyObject_TypeCheck(obj, &Part::TopoShapePy::Type)) {
shapes.push_back(*static_cast<TopoShapePy*>(obj)->getTopoShapePtr());
else if (PyObject_TypeCheck(obj, &GeometryPy::Type))
}
else if (PyObject_TypeCheck(obj, &GeometryPy::Type)) {
shapes.emplace_back(static_cast<GeometryPy*>(obj)->getGeometryPtr()->toShape());
else if(PySequence_Check(obj)) {
}
else if (PySequence_Check(obj)) {
Py::Sequence list(obj);
for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) {
if (PyObject_TypeCheck((*it).ptr(), &(Part::TopoShapePy::Type)))
if (PyObject_TypeCheck((*it).ptr(), &(Part::TopoShapePy::Type))) {
shapes.push_back(*static_cast<TopoShapePy*>((*it).ptr())->getTopoShapePtr());
else if (PyObject_TypeCheck((*it).ptr(), &GeometryPy::Type))
shapes.emplace_back(static_cast<GeometryPy*>(
(*it).ptr())->getGeometryPtr()->toShape());
else
}
else if (PyObject_TypeCheck((*it).ptr(), &GeometryPy::Type)) {
shapes.emplace_back(
static_cast<GeometryPy*>((*it).ptr())->getGeometryPtr()->toShape());
}
else {
throw Py::TypeError("expect shape in sequence");
}
}
}else
}
else {
throw Py::TypeError("expect shape or sequence of shapes");
}
}
PartExport std::vector<TopoShape> getPyShapes(PyObject *obj) {