aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/Collision/BoundingIntervalHierarchyWrapper.h3
-rw-r--r--src/common/Collision/DynamicTree.cpp6
-rw-r--r--src/common/Collision/DynamicTree.h3
3 files changed, 12 insertions, 0 deletions
diff --git a/src/common/Collision/BoundingIntervalHierarchyWrapper.h b/src/common/Collision/BoundingIntervalHierarchyWrapper.h
index 85048da58bc..03c6f0268c8 100644
--- a/src/common/Collision/BoundingIntervalHierarchyWrapper.h
+++ b/src/common/Collision/BoundingIntervalHierarchyWrapper.h
@@ -19,6 +19,7 @@
#define TRINITYCORE_BOUNDING_INTERVAL_HIERARCHY_WRAPPER_H
#include "BoundingIntervalHierarchy.h"
+#include <span>
#include <unordered_map>
template<class T, class BoundsFunc = BoundsTrait<T> >
@@ -115,6 +116,8 @@ public:
MDLCallback<IsectCallback> callback(intersectCallback, m_objects.data(), m_objects.size());
m_tree.intersectPoint(point, callback);
}
+
+ std::span<T const* const> getObjects() const { return m_objects; }
};
#endif // TRINITYCORE_BOUNDING_INTERVAL_HIERARCHY_WRAPPER_H
diff --git a/src/common/Collision/DynamicTree.cpp b/src/common/Collision/DynamicTree.cpp
index 85dc9d52618..59a7c988ee8 100644
--- a/src/common/Collision/DynamicTree.cpp
+++ b/src/common/Collision/DynamicTree.cpp
@@ -280,3 +280,9 @@ bool DynamicMapTree::getAreaAndLiquidData(float x, float y, float z, PhaseShift
}
return false;
}
+
+std::span<GameObjectModel const* const> DynamicMapTree::getModelsInGrid(uint32 gx, uint32 gy) const
+{
+ // convert from map tile X/Y to RegularGrid internal representation
+ return impl->getObjects(63 - int32(gx), 63 - int32(gy));
+}
diff --git a/src/common/Collision/DynamicTree.h b/src/common/Collision/DynamicTree.h
index 11d701ebd7c..73c667acb29 100644
--- a/src/common/Collision/DynamicTree.h
+++ b/src/common/Collision/DynamicTree.h
@@ -21,6 +21,7 @@
#include "Define.h"
#include "Optional.h"
#include <memory>
+#include <span>
namespace G3D
{
@@ -59,6 +60,8 @@ public:
void balance();
void update(uint32 diff);
+
+ std::span<GameObjectModel const* const> getModelsInGrid(uint32 gx, uint32 gy) const;
};
#endif // _DYNTREE_H