# 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; }