Implement queryNodesByDistance function to retrieve node IDs within a specified distance
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
#include <array>
|
||||
std::vector<StardustBridge::NodeId> StardustBridge::queryNodesByDistance(const glm::vec3& center, float radius, size_t maxCount) {
|
||||
std::vector<NodeId> result;
|
||||
if (!m_fnQueryNodesByDistance) return result;
|
||||
std::vector<std::uint64_t> ids(maxCount);
|
||||
std::size_t found = m_fnQueryNodesByDistance(center.x, center.y, center.z, radius, ids.data(), maxCount);
|
||||
result.assign(ids.begin(), ids.begin() + found);
|
||||
return result;
|
||||
}
|
||||
// StardustBridge.cpp
|
||||
#include "StardustBridge.hpp"
|
||||
#include "ModelCache.hpp"
|
||||
@@ -380,7 +389,8 @@ bool StardustBridge::loadBridge() {
|
||||
m_fnSetTexture = reinterpret_cast<fn_set_texture_t>(req("sdxr_set_node_texture"));
|
||||
m_fnSetColor = reinterpret_cast<fn_set_color_t>(req("sdxr_set_node_color"));
|
||||
m_fnSetDimensions = reinterpret_cast<fn_set_dimensions_t>(req("sdxr_set_node_dimensions"));
|
||||
m_fnSetEntityType = reinterpret_cast<fn_set_entity_type_t>(req("sdxr_set_node_entity_type"));
|
||||
m_fnQueryNodesByDistance = reinterpret_cast<fn_query_nodes_by_distance_t>(req("sdxr_query_nodes_by_distance"));
|
||||
m_fnSetEntityType = reinterpret_cast<fn_set_entity_type_t>(req("sdxr_set_node_entity_type"));
|
||||
if (m_fnStart && m_fnPoll && m_fnCreateNode && m_fnUpdateNode) {
|
||||
m_bridgeHandle = h;
|
||||
std::cout << "[StardustBridge] Loaded Rust bridge: " << path << std::endl;
|
||||
|
||||
Reference in New Issue
Block a user