//插入点
....
vec.push_back(gp_Pnt(xxx));
....
//画
BRepBuilderAPI_MakePolygon polygon;
for (int i = 0; i < vec.size(); i++)
{
polygon.Add(vec[i]);
}
if (polygon.IsDone()) {
polygon.Close();
auto wire = polygon.Wire();
BRepBuilderAPI_MakeFace face(wire, true);
if (face.IsDone())
{
if (face.Error() != BRepBuilderAPI_FaceDone)
{
qDebug() << " make face error " << face.Error();
return nullptr;
}
if (face.Shape().IsNull())
{
qDebug() << "face is null";
return nullptr;
}
TopoDS_Shape sr = BRepPrimAPI_MakePrism(face, vector, true);
return std::shared_ptr<TopoDS_Shape>(new TopoDS_Shape(sr));
}
}
return nullptr;