CARLA
 
载入中...
搜索中...
未找到
MapGenFunctionLibrary.h
浏览该文件的文档.
1// Copyright (c) 2023 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7// 这是一个头文件保护指令,确保该头文件内容在一个编译单元中只被包含一次
8#pragma once
9
10// Engine headers
11#include "CoreMinimal.h"
12#include "Kismet/BlueprintFunctionLibrary.h"
13#include "MeshDescription.h"
14#include "ProceduralMeshComponent.h"
15// Carla C++ headers
16
17// Carla plugin headers
19
20#include "MapGenFunctionLibrary.generated.h"
21
22// 声明一个名为LogCarlaMapGenFunctionLibrary的日志类别,用于在代码中输出相关日志信息
23// Log表示日志级别,All表示涵盖所有类型的日志消息
24DECLARE_LOG_CATEGORY_EXTERN(LogCarlaMapGenFunctionLibrary, Log, All);
25
26// 定义UMapGenFunctionLibrary类,它继承自UBlueprintFunctionLibrary,意味着这个类主要用于在蓝图中提供可调用的函数功能
27UCLASS(BlueprintType)
29{
30 GENERATED_BODY()
31
32public:
33 // 一个可在蓝图中调用的函数(UFUNCTION标记且BlueprintCallable属性),用于创建一个UStaticMesh(静态网格体)对象
34 // 参数说明:
35 // - Data:包含了自定义网格体相关数据的结构体,用于描述网格体的形状、顶点等信息,类型为FProceduralCustomMesh
36 // - ParamTangents:包含了网格体切线相关数据的数组,类型为TArray<FProcMeshTangent>,用于处理网格体的表面法线等相关属性
37 // - MaterialInstance:材质实例指针,用于指定要应用到创建的网格体上的材质
38 // - MapName:字符串类型,可能用于标识地图相关的名称(具体用途需看代码上下文)
39 // - FolderName:字符串类型,可能表示存储相关资源的文件夹名称(同样依赖上下文确定准确用途)
40 // - MeshName:FName类型,用于指定要创建的网格体的名称
41 UFUNCTION(BlueprintCallable)
42 static UStaticMesh* CreateMesh(
43 const FProceduralCustomMesh& Data,
44 const TArray<FProcMeshTangent>& ParamTangents,
45 UMaterialInstance* MaterialInstance,
46 FString MapName,
47 FString FolderName,
48 FName MeshName);
49
50 // 静态函数,用于根据给定的自定义网格体数据以及切线数据等构建一个FMeshDescription对象(用于描述网格信息)
51 // 参数含义与CreateMesh函数中对应的参数类似,用于提供网格体形状、切线和材质相关信息来构建描述对象
52 static FMeshDescription BuildMeshDescriptionFromData(
53 const FProceduralCustomMesh& Data,
54 const TArray<FProcMeshTangent>& ParamTangents,
55 UMaterialInstance* MaterialInstance );
56
57 // 一个可在蓝图中调用的函数,用于进行横向墨卡托投影转换,将经纬度坐标(lat和lon)基于给定的参考经纬度(lat0和lon0)转换为二维平面坐标(返回值FVector2D类型)
58 // 参数说明:
59 // - lat:表示要转换的纬度坐标,float类型
60 // - lon:表示要转换的经度坐标,float类型
61 // - lat0:参考纬度坐标,float类型
62 // - lon0:参考经度坐标,float类型
63 UFUNCTION(BlueprintCallable)
64 static FVector2D GetTransversemercProjection(float lat, float lon, float lat0, float lon0);
65
66 // 可在蓝图中调用的函数,用于设置线程休眠的时间(单位:秒),通过传入的float类型参数seconds指定休眠时长
67 UFUNCTION(BlueprintCallable)
68 static void SetThreadToSleep(float seconds);
69
70 // 可在蓝图中调用的函数,用于在蓝图环境中刷新渲染命令(具体功能可能与游戏引擎的渲染管线相关,需结合具体使用场景深入理解)
71 UFUNCTION(BlueprintCallable)
72 static void FlushRenderingCommandsInBlueprint();
73
74 // 可在蓝图中调用的函数,用于清理游戏引擎相关资源(具体清理的内容和机制取决于其内部实现,从函数名大致推测是做一些资源释放等清理工作)
75 UFUNCTION(BlueprintCallable)
76 static void CleanupGEngine();
77};
DECLARE_LOG_CATEGORY_EXTERN(LogCarlaMapGenFunctionLibrary, Log, All)
A definition of a Carla Mesh.