@@ -28,16 +28,13 @@ namespace webifc::cache
2828 void IfcCache::Clear ()
2929 {
3030 _expressIDToPlacement.clear ();
31- std::unordered_map<uint32_t , glm::dmat4>().swap (_expressIDToPlacement);
3231 _cartesianPoint3DCache.clear ();
33- std::unordered_map<uint32_t , glm::dvec3>().swap (_cartesianPoint3DCache);
3432 _cartesianPoint2DCache.clear ();
35- std::unordered_map<uint32_t , glm::dvec2>().swap (_cartesianPoint2DCache);
3633 }
3734
38- std::unordered_map <uint32_t , std::vector<uint32_t >> IfcCache::PopulateRelVoidsMap ()
35+ ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> IfcCache::PopulateRelVoidsMap ()
3936 {
40- std::unordered_map <uint32_t , std::vector<uint32_t >> resultVector;
37+ ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> resultVector;
4138 auto relVoids = _loader.GetExpressIDsWithType (schema::IFCRELVOIDSELEMENT );
4239
4340 for (uint32_t relVoidID : relVoids)
@@ -53,9 +50,9 @@ namespace webifc::cache
5350 return resultVector;
5451 }
5552
56- std::unordered_map <uint32_t , std::vector<uint32_t >> IfcCache::PopulateRelAggregatesMap ()
53+ ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> IfcCache::PopulateRelAggregatesMap ()
5754 {
58- std::unordered_map <uint32_t , std::vector<uint32_t >> resultVector;
55+ ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> resultVector;
5956 auto relAggregates = _loader.GetExpressIDsWithType (schema::IFCRELAGGREGATES );
6057
6158 for (uint32_t relAggregateID : relAggregates)
@@ -86,9 +83,9 @@ namespace webifc::cache
8683 return resultVector;
8784 }
8885
89- std::unordered_map <uint32_t , std::vector<uint32_t >> IfcCache::PopulateRelNestsMap ()
86+ ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> IfcCache::PopulateRelNestsMap ()
9087 {
91- std::unordered_map <uint32_t , std::vector<uint32_t >> resultVector;
88+ ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> resultVector;
9289 auto relNests = _loader.GetExpressIDsWithType (schema::IFCRELNESTS );
9390
9491 for (uint32_t relNestID : relNests)
@@ -107,9 +104,9 @@ namespace webifc::cache
107104 return resultVector;
108105 }
109106
110- std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> IfcCache::PopulateStyledItemMap ()
107+ ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> IfcCache::PopulateStyledItemMap ()
111108 {
112- std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> returnVector;
109+ ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> returnVector;
113110 auto styledItems = _loader.GetExpressIDsWithType (schema::IFCSTYLEDITEM );
114111
115112 for (uint32_t styledItemID : styledItems)
@@ -133,9 +130,9 @@ namespace webifc::cache
133130 return returnVector;
134131 }
135132
136- std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> IfcCache::PopulateRelMaterialsMap ()
133+ ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> IfcCache::PopulateRelMaterialsMap ()
137134 {
138- std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> resultVector;
135+ ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> resultVector;
139136 auto styledItems = _loader.GetExpressIDsWithType (schema::IFCRELASSOCIATESMATERIAL );
140137
141138 for (uint32_t styledItemID : styledItems)
@@ -157,9 +154,9 @@ namespace webifc::cache
157154 return resultVector;
158155 }
159156
160- std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> IfcCache::PopulateMaterialDefinitionsMap ()
157+ ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> IfcCache::PopulateMaterialDefinitionsMap ()
161158 {
162- std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> resultVector;
159+ ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> resultVector;
163160 auto matDefs = _loader.GetExpressIDsWithType (schema::IFCMATERIALDEFINITIONREPRESENTATION );
164161
165162 for (uint32_t styledItemID : matDefs)
@@ -342,22 +339,22 @@ namespace webifc::cache
342339 return 1 ;
343340 }
344341
345- const std::unordered_map <uint32_t , std::vector<uint32_t >> &IfcCache::GetRelVoids () const
342+ const ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> &IfcCache::GetRelVoids () const
346343 {
347344 return _relVoids;
348345 }
349346
350- const std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &IfcCache::GetStyledItems () const
347+ const ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &IfcCache::GetStyledItems () const
351348 {
352349 return _styledItems;
353350 }
354351
355- const std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &IfcCache::GetRelMaterials () const
352+ const ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &IfcCache::GetRelMaterials () const
356353 {
357354 return _relMaterials;
358355 }
359356
360- const std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &IfcCache::GetMaterialDefinitions () const
357+ const ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &IfcCache::GetMaterialDefinitions () const
361358 {
362359 return _materialDefinitions;
363360 }
@@ -376,30 +373,30 @@ namespace webifc::cache
376373 return _angularScalingFactor;
377374 }
378375
379- const std::unordered_map <uint32_t , std::vector<uint32_t >> &IfcCache::GetRelAggregates () const {
376+ const ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> &IfcCache::GetRelAggregates () const {
380377 return _relAggregates;
381378 }
382379
383- const std::unordered_map <uint32_t , std::vector<uint32_t >> &IfcCache::GetRelNests () const {
380+ const ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> &IfcCache::GetRelNests () const {
384381 return _relNests;
385382 }
386383
387- std::unordered_map <uint32_t , glm::dvec3> &IfcCache::GetCartesianPoint3DCache () {
384+ ankerl::unordered_dense::map <uint32_t , glm::dvec3> &IfcCache::GetCartesianPoint3DCache () {
388385 return _cartesianPoint3DCache;
389386 }
390-
391- std::unordered_map <uint32_t , glm::dvec2> &IfcCache::GetCartesianPoint2DCache () {
387+
388+ ankerl::unordered_dense::map <uint32_t , glm::dvec2> &IfcCache::GetCartesianPoint2DCache () {
392389 return _cartesianPoint2DCache;
393390 }
394-
395- std::unordered_map <uint32_t , glm::dmat4> &IfcCache::GetExpressIDToPlacement () {
391+
392+ ankerl::unordered_dense::map <uint32_t , glm::dmat4> &IfcCache::GetExpressIDToPlacement () {
396393 return _expressIDToPlacement;
397394 }
398395
399396 std::vector<geometry::IfcCurve> &IfcCache::GetLocalCurvesList () {
400397 return _localCurvesList;
401398 }
402-
399+
403400 std::vector<uint32_t > &IfcCache::GetLocalCurvesIndices () {
404401 return _localcurvesIndices;
405402 }
@@ -410,7 +407,7 @@ namespace webifc::cache
410407 return newCache;
411408 }
412409
413- IfcCache::IfcCache (const webifc::parsing::IfcLoader &loader, const std::unordered_map <uint32_t , std::vector<uint32_t >> &relVoids, const std::unordered_map <uint32_t , std::vector<uint32_t >> &relNests, const std::unordered_map <uint32_t , std::vector<uint32_t >> &relAggregates, const std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &styledItems, const std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &relMaterials, const std::unordered_map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &materialDefinitions, double linearScalingFactor, double squaredScalingFactor, double cubicScalingFactor, double angularScalingFactor, std::string angleUnits, const std::vector<geometry::IfcCurve> &localCurvesList, const std::vector<uint32_t > &localcurvesIndices, std::unordered_map <uint32_t , glm::dmat4> expressIDToPlacement)
410+ IfcCache::IfcCache (const webifc::parsing::IfcLoader &loader, const ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> &relVoids, const ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> &relNests, const ankerl::unordered_dense::map <uint32_t , std::vector<uint32_t >> &relAggregates, const ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &styledItems, const ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &relMaterials, const ankerl::unordered_dense::map <uint32_t , std::vector<std::pair<uint32_t , uint32_t >>> &materialDefinitions, double linearScalingFactor, double squaredScalingFactor, double cubicScalingFactor, double angularScalingFactor, std::string angleUnits, const std::vector<geometry::IfcCurve> &localCurvesList, const std::vector<uint32_t > &localcurvesIndices, ankerl::unordered_dense::map <uint32_t , glm::dmat4> expressIDToPlacement)
414411 : _loader(loader), _relVoids(relVoids), _relNests(relNests), _relAggregates(relAggregates), _styledItems(styledItems), _relMaterials(relMaterials), _materialDefinitions(materialDefinitions), _linearScalingFactor(linearScalingFactor), _squaredScalingFactor(squaredScalingFactor), _cubicScalingFactor(cubicScalingFactor), _angularScalingFactor(angularScalingFactor), _angleUnits(angleUnits), _localCurvesList(localCurvesList), _localcurvesIndices(localcurvesIndices), _expressIDToPlacement(expressIDToPlacement)
415412 {
416413 }
0 commit comments