diff --git a/MeshLib/MeshSubset.h b/MeshLib/MeshSubset.h index 7149043fe9fff4c8396a3cefaf741582a64eeba5..b00b928ef12ebe80ab69a1ea1e83ff929d3bba28 100644 --- a/MeshLib/MeshSubset.h +++ b/MeshLib/MeshSubset.h @@ -28,19 +28,37 @@ namespace MeshLib class MeshSubset { public: - /// construct from nodes + /// Construct a mesh subset from vector of nodes on the given mesh. + /// \param msh Mesh + /// \param vec_items Vector of Node pointers. + /// \param delete_ptr Deletes the vector of Node pointers if true. + /// \note When delete_ptr is set only the vector is deleted, not the + /// elements of the vector. MeshSubset(const Mesh& msh, std::vector<Node*> const* vec_items, bool const delete_ptr = false) : _msh(msh), _nodes(vec_items), _eles(nullptr), _delete_ptr(delete_ptr) {} - /// construct from elements + /// Construct a mesh subset from vector of elements on the given mesh. + /// \param msh Mesh + /// \param vec_items Vector of Element pointers. + /// \param delete_ptr Deletes the vector of Element pointers if true. + /// \note When delete_ptr is set only the vector is deleted, not the + /// elements of the vector. MeshSubset(const Mesh& msh, std::vector<Element*> const* vec_items, bool const delete_ptr = false) : _msh(msh), _nodes(nullptr), _eles(vec_items), _delete_ptr(delete_ptr) {} /// construct from both nodes and elements + /// Construct a mesh subset from vector of nodes and a vector of elements on + /// the given mesh. + /// \param msh Mesh + /// \param vec_nodes Vector of Node pointers. + /// \param vec_eles Vector of Element pointers. + /// \param delete_ptr Deletes the vector of Node pointers if true. + /// \note When delete_ptr is set only the vectors are deleted, not the + /// elements of the vectors. MeshSubset(const Mesh& msh, std::vector<Node*> const* vec_nodes, std::vector<Element*> const* vec_eles, bool const delete_ptr = false) : _msh(msh), _nodes(vec_nodes), _eles(vec_eles), _delete_ptr(delete_ptr) @@ -127,6 +145,8 @@ public: active_nodes->push_back(n); } + // Transfer the ownership of active_nodes to the new MeshSubset, which + // deletes the pointer itself. return new MeshSubset(_msh, active_nodes, true); }