From 63ab506df34bfc0cdd521de2c470b8ae2ce6d1aa Mon Sep 17 00:00:00 2001 From: bobo339 <3219323925@qq.com> Date: Fri, 20 Dec 2024 22:47:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加了部分注释 --- .../Source/CarlaTools/Private/OpenDriveToMap.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/OpenDriveToMap.cpp b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/OpenDriveToMap.cpp index b8d4c0384e..cc806b9611 100644 --- a/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/OpenDriveToMap.cpp +++ b/Unreal/CarlaUE4/Plugins/CarlaTools/Source/CarlaTools/Private/OpenDriveToMap.cpp @@ -545,23 +545,34 @@ void UOpenDriveToMap::GenerateAll(const boost::optional& Param // 生成道路网格 void UOpenDriveToMap::GenerateRoadMesh( const boost::optional& ParamCarlaMap, FVector MinLocation, FVector MaxLocation ) { + // 设置用于生成道路网格的参数 opg_parameters.vertex_distance = 0.5f; opg_parameters.vertex_width_resolution = 8.0f; + // simplification_percentage用于指定后续网格简化的比例 opg_parameters.simplification_percentage = 50.0f; + // 记录生成道路网格操作开始的时间 double start = FPlatformTime::Seconds(); carla::geom::Vector3D CarlaMinLocation(MinLocation.X / 100, MinLocation.Y / 100, MinLocation.Z /100); carla::geom::Vector3D CarlaMaxLocation(MaxLocation.X / 100, MaxLocation.Y / 100, MaxLocation.Z /100); + // 调用ParamCarlaMap的GenerateOrderedChunkedMeshInLocations函数,传入之前设置的参数和转换后的坐标范围, + // 生成网格数据并存储在Meshes变量中 const auto Meshes = ParamCarlaMap->GenerateOrderedChunkedMeshInLocations(opg_parameters, CarlaMinLocation, CarlaMaxLocation); + // 记录生成道路网格操作结束的时间 double end = FPlatformTime::Seconds(); + // 使用UE_LOG输出一条日志信息,记录生成网格代码的执行时间以及当前的网格简化百分比 UE_LOG(LogCarlaToolsMapGenerator, Log, TEXT(" GenerateOrderedChunkedMesh code executed in %f seconds. Simplification percentage is %f"), end - start, opg_parameters.simplification_percentage); start = FPlatformTime::Seconds(); + // 定义一个静态变量index,用于给创建的静态网格演员设置唯一标签 static int index = 0; for (const auto &PairMap : Meshes) { + // 遍历每个键值对中的网格数据(Mesh) for( auto& Mesh : PairMap.second ) { + // 网格数据有效性检查 + // 如果网格顶点数量为0,则跳过当前网格的处理 if (!Mesh->GetVertices().size()) { continue;