OCCUtils provides Shapes::FromFaces
to convert a std::vector<TopoDS_Face>
to a std::vector<TopoDS_Shape>
in OpenCASCADE:
#include <occutils/Shape.hxx> using namespace OCCUtils; std::vector<TopoDS_Face> faces = /* ... */; std::vector<TopoDS_Shape> shapes = Shapes::FromFaces(faces);
In case you need to do it manually without using OCCUtils, use this snippet:
#include <algorithm> // Create return vector std::vector<TopoDS_Shape> shapes; shapes.reserve(faces.size()); // Do the copying std::copy(faces.begin(), faces.end(), std::back_inserter(shapes));