UE snap02 解析ASCII文本文件

发布于:2024-03-22 ⋅ 阅读:(68) ⋅ 点赞:(0)

UE snap02 解析ASCII文本文件

示例数据data.dat

11389477.2714892 3364559.73645693 0
11389471.5162524 3364567.8860295 0
11389471.5162524 3365813.09618369 0
11388329.6082659 3366184.85895869 0
11388320.4775297 3366197.78833087 0
11388270.6882384 3366214.84811269 0
11388002.8778118 3366302.11473086 0
11387997.4076579 3366303.9056727 0
11387384.8339758 3366503.50145564 0
11387380.6581128 3366513.70979389 0
11387134.3355798 3367376.95843306 0
11387119.1215479 3367119.81430385 0
11387077.7033874 3367570.395508 0
11387077.1245603 3367572.37023947 0
11387033.4883937 3367730.15674309 0
11387000.0871094 3367845.7129394 0
TArray<FVector> UGeoJsonComponentParser::ParseXYZPoint(const FString& InPath)
{
	TArray<uint8> FileData;
	TArray<FVector>OutVertices;
	bool isOk = FFileHelper::LoadFileToArray(FileData, *InPath);
	if (!isOk)
	{
		return OutVertices;
	}

	FString RawData;
	FFileHelper::BufferToString(RawData, FileData.GetData(), FileData.Num());

	TArray<FString> DataLineArr;
	if(RawData.Find(TEXT("\r\n"))>0)
		RawData.ParseIntoArray(DataLineArr, TEXT("\r\n"));
	else
		RawData.ParseIntoArray(DataLineArr, TEXT("\n"));

	FVector newVertex;
	for (size_t i = 0; i < DataLineArr.Num(); ++i)
	{
		TArray<FString> Items;
		DataLineArr[i].ParseIntoArray(Items, TEXT(" "));

		newVertex.X = FCString::Atod(*Items[0]) - CoordOffset.X;
		newVertex.Y = FCString::Atod(*Items[1]) - CoordOffset.Y;
		newVertex.Z = FCString::Atod(*Items[2]) - CoordOffset.Z;

		newVertex *= FVector(100, -100, 100);
		OutVertices.Add(newVertex);
	}
	return OutVertices;
}

在这里插入图片描述
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到