File indexing completed on 2025-08-06 08:17:38
0001 #include "MbdVertexMapv1.h"
0002
0003 #include "MbdVertex.h"
0004
0005 #include <iterator> // for reverse_iterator
0006 #include <utility> // for pair, make_pair
0007
0008 MbdVertexMapv1::~MbdVertexMapv1()
0009 {
0010 MbdVertexMapv1::clear();
0011 }
0012
0013 void MbdVertexMapv1::identify(std::ostream& os) const
0014 {
0015 os << "MbdVertexMapv1: size = " << _map.size() << std::endl;
0016 return;
0017 }
0018
0019 void MbdVertexMapv1::clear()
0020 {
0021 for (auto& iter : _map)
0022 {
0023 delete iter.second;
0024 }
0025 _map.clear();
0026 return;
0027 }
0028
0029 const MbdVertex* MbdVertexMapv1::get(unsigned int id) const
0030 {
0031 ConstIter iter = _map.find(id);
0032 if (iter == _map.end())
0033 {
0034 return nullptr;
0035 }
0036 return iter->second;
0037 }
0038
0039 MbdVertex* MbdVertexMapv1::get(unsigned int id)
0040 {
0041 Iter iter = _map.find(id);
0042 if (iter == _map.end())
0043 {
0044 return nullptr;
0045 }
0046 return iter->second;
0047 }
0048
0049 MbdVertex* MbdVertexMapv1::insert(MbdVertex* clus)
0050 {
0051 unsigned int index = 0;
0052 if (!_map.empty())
0053 {
0054 index = _map.rbegin()->first + 1;
0055 }
0056 _map.insert(std::make_pair(index, clus));
0057 _map[index]->set_id(index);
0058 return _map[index];
0059 }