From eef2f091009d2f748e437c80927d1eadfeb7b054 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 27 Mar 2023 19:26:33 +0800 Subject: [PATCH] 1 --- server/gameserver/mt/MapCollider.cc | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/server/gameserver/mt/MapCollider.cc b/server/gameserver/mt/MapCollider.cc index 80485776..ee2524ec 100644 --- a/server/gameserver/mt/MapCollider.cc +++ b/server/gameserver/mt/MapCollider.cc @@ -76,6 +76,32 @@ namespace mt } fclose(fp); } + if (verts_pb.triangles().size() <= 0) { + abort(); + } + const std::string terrain_name = "_terrain_"; + mc::ColliderNode* node = new mc::ColliderNode(); + node->name = terrain_name; + if (nodes_.find(node->name) != nodes_.end()) { + abort(); + } + { + mc::MeshCollider* mesh = new mc::MeshCollider(); + for (auto v : verts_pb.vectors()) { + mesh->mesh.vertices.push_back + ( + glm::vec3(v.x(), v.y(), v.z()) + ); + } + for (auto t : verts_pb.triangles()) { + mesh->mesh.raw_triangles.push_back + ( + t + ); + } + node->colliders.push_back(mesh); + } + nodes_[node->name] = node; long long end_tick = a8::XGetTickCount(); f8::UdpLog::Instance()->Info("load terrain file_name:%s triangles:%d vectors:%d cost_time:%d", {