Skip to content
ZichaoNickFox edited this page Mar 17, 2018 · 1 revision
// 取出一定范围内场景数据到数据集
struct FMarvelDataSetVoxelDataFetcher {
    // 第三个不定长参数为空
    static void DoFetchData(
        TMarvelDataSet<FMarvelVoxelData>* DataSet,
	const FMarvelDataScopeCalculator& Scope
    )
    {
	// 对于范围中所有的Chunk
	for (const FMarvelChunkPos& ChunkPos : Scope.GetChunkPoses())
	{
	    // 创建取体素数据的对象
	    TMarvelTakeChunkData<EMarvelDataType::VoxelData> Take(ChunkPos);
	    // 得到范围中该Chunk内所有体素坐标
	    TArray<FMarvelVoxelChunkPos> VoxelChunkPoses = Scope.GetVoxelChunkPoses(ChunkPos);
	    for (const FMarvelVoxelChunkPos& VoxelChunkPos : VoxelChunkPoses)
	    {
		// 取该体素坐标数据
		const FMarvelVoxelData* VoxelData = Take.TakeData(VoxelChunkPos);
		// 存到数据集中
		DataSet->PutData(ChunkPos, VoxelChunkPos, *VoxelData);
	    }
        }
    }
};

Clone this wiki locally