15 std::vector<int> materialMap;
16 std::set<int> materials;
25 materialMap.push_back(passedMaterialId);
26 materials.insert(passedMaterialId);
30 if (materialMap.empty()) {
34 int idToRemove = materialMap.back();
35 materialMap.pop_back();
37 bool isUnique = std::find(materialMap.begin(), materialMap.end(),
38 idToRemove) == materialMap.end();
41 materials.erase(idToRemove);
46 if (index >= materialMap.size()) {
47 materialMap.resize(index + 1, -1);
49 materialMap[index] = materialId;
50 materials.insert(materialId);
58 if (index >= materialMap.size())
60 return materialMap[index];
65 return index < materialMap.size();
73 void reserve(
const std::size_t size) { materialMap.reserve(size); }
76 return materials.count(materialId) > 0;
std::size_t getNumberOfMaterials() const
Definition lsMaterialMap.hpp:55
std::size_t getNumberOfLayers() const
Definition lsMaterialMap.hpp:53
MaterialMap & operator=(MaterialMap &&)=default
int getMaterialId(const std::size_t index) const
Definition lsMaterialMap.hpp:57
void clear()
Definition lsMaterialMap.hpp:68
void insertNextMaterial(const int passedMaterialId)
Definition lsMaterialMap.hpp:24
MaterialMap(const MaterialMap &)=default
const std::vector< int > & getMaterialMap() const
Definition lsMaterialMap.hpp:81
bool hasMaterial(const int materialId) const
Definition lsMaterialMap.hpp:75
MaterialMap & operator=(const MaterialMap &)=default
void setMaterialId(const std::size_t index, const int materialId)
Definition lsMaterialMap.hpp:45
void removeLastMaterial()
Definition lsMaterialMap.hpp:29
const std::set< int > & getMaterials() const
Definition lsMaterialMap.hpp:79
bool isValidIndex(const std::size_t index) const
Definition lsMaterialMap.hpp:64
void reserve(const std::size_t size)
Definition lsMaterialMap.hpp:73
Definition lsAdvect.hpp:40