aboutsummaryrefslogtreecommitdiff
path: root/sdk/extensions/serialization/source/NvBlastExtSerializationLL.capn
blob: 026056f035ff8d718dd20ab0ceb67266fa1be1c2 (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# 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.

@0x9a4a58fac38375e0;

using Cxx = import "/capnp/c++.capnp";

$Cxx.namespace("Nv::Blast::Serialization");

struct Asset
{
	header @0 :NvBlastDataBlock;
	
	iD @1 :UUID;
	
	chunkCount @2 :UInt32;
	
	graph @3 :NvBlastSupportGraph;
	
	leafChunkCount @4 :UInt32;
	
	firstSubsupportChunkIndex @5 :UInt32;
	
	bondCount @6 :UInt32;
	
	chunks @7: List(NvBlastChunk);
	
	bonds @8: List(NvBlastBond);
	
	subtreeLeafChunkCounts @9: List(UInt32);
	
	chunkToGraphNodeMap @10: List(UInt32);
}

struct NvBlastDataBlock
{
	enum Type
	{
		assetDataBlock @0;
		instanceDataBlock @1;
	}
	
	dataType @0 :Type;
	
	formatVersion @1 :UInt32;
	
	size @2 :UInt32;
}

struct NvBlastChunk
{
	centroid @0 :List(Float32);
	
	volume @1 :Float32;
	
	parentChunkIndex @2 :UInt32;
	firstChildIndex @3 :UInt32;
	childIndexStop @4 :UInt32;
	userData @5 :UInt32;
}

struct NvBlastBond
{
	normal @0 :List(Float32);
	area @1 :Float32;
	centroid @2 :List(Float32);
	userData @3 :UInt32;
}

struct NvBlastSupportGraph
{
	nodeCount @0 : UInt32;
	
	chunkIndices @1 : List(UInt32);
	adjacencyPartition @2 : List(UInt32);
	adjacentNodeIndices @3 : List(UInt32);
	adjacentBondIndices @4 : List(UInt32);
}

struct UUID
{
	value @0 : Data;
}