aboutsummaryrefslogtreecommitdiff
path: root/sdk/extensions/serialization/source/DTO/NvBlastChunkDTO.cpp
blob: 38814ed01a7533869acc5e3892b523f0097256c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
* Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
*
* NVIDIA CORPORATION and its licensors retain all intellectual property
* and proprietary rights in and to this software, related documentation
* and any modifications thereto.  Any use, reproduction, disclosure or
* distribution of this software and related documentation without an express
* license agreement from NVIDIA CORPORATION is strictly prohibited.
*/

#include "NvBlastChunkDTO.h"
#include "NvBlastAssert.h"

namespace Nv
{
	namespace Blast
	{
		bool NvBlastChunkDTO::serialize(Nv::Blast::Serialization::NvBlastChunk::Builder builder, const NvBlastChunk* poco)
		{
			NVBLAST_ASSERT(poco != nullptr);
		
			kj::ArrayPtr<const float> centArray(poco->centroid, 3);
			builder.setCentroid(centArray);
		
			builder.setVolume(poco->volume);
		
			builder.setParentChunkIndex(poco->parentChunkIndex);
			builder.setFirstChildIndex(poco->firstChildIndex);
			builder.setChildIndexStop(poco->childIndexStop);
			builder.setUserData(poco->userData);
		
			return true;
		}
		
		NvBlastChunk* NvBlastChunkDTO::deserialize(Nv::Blast::Serialization::NvBlastChunk::Reader reader)
		{
			//FIXME
			reader = reader;
		
			return nullptr;
		}
		
		bool NvBlastChunkDTO::deserializeInto(Nv::Blast::Serialization::NvBlastChunk::Reader reader, NvBlastChunk* target)
		{
			NVBLAST_ASSERT(target != nullptr);
		
			target->centroid[0] = reader.getCentroid()[0];
			target->centroid[1] = reader.getCentroid()[1];
			target->centroid[2] = reader.getCentroid()[2];
		
			target->childIndexStop = reader.getChildIndexStop();
			target->firstChildIndex = reader.getFirstChildIndex();
			target->parentChunkIndex = reader.getParentChunkIndex();
			target->userData = reader.getUserData();
			target->volume = reader.getVolume();
		
			return true;
		}
	}
}